@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,165 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §5.1 / §5.6 / §6.x — render the daemon's
3
+ * `McpServer` rows into `OpencodeRuntimeConfig.mcp`.
4
+ *
5
+ * Unlike Claude / Codex / Gemini which read on-disk MCP config files
6
+ * (`.mcp.json`, `.codex/config.toml`, `.gemini/settings.json`),
7
+ * OpenCode receives MCP config inline via `OPENCODE_CONFIG_CONTENT`
8
+ * consumed at server-spawn time (§5.1). The daemon therefore produces
9
+ * the `Record<string, McpLocalConfig | McpRemoteConfig>` map directly
10
+ * instead of writing a file under the session workdir.
11
+ *
12
+ * Pure function — DB / blob-store access happens upstream in
13
+ * `materializeMcpForSession`'s sibling caller. The renderer takes the
14
+ * already-filtered server list + resolved secrets and produces:
15
+ * - `mcp`: the runtime-config map.
16
+ * - `env`: env vars the spawned `opencode serve` process must export
17
+ * so the `environment` placeholders resolve at MCP-spawn time.
18
+ * OpenCode does NOT do `${VAR}` expansion on stdio env values
19
+ * (V7 fixture), so we inline concrete values into `environment` —
20
+ * `env` stays empty for stdio servers. For remote servers, header
21
+ * values are inlined directly into the `headers` map.
22
+ * - `warnings`: server-name lint failures (`_`-containing ids) and
23
+ * unsupported-transport notices. Surfaced via dashboard.
24
+ *
25
+ * Server-name lint (§5.6): the documented mangling rule
26
+ * `mcp__<server>__<tool>` → `<server>_<tool>`
27
+ * is ambiguous when `<server>` contains `_`. Until the SDK exposes
28
+ * MCP tool ids (V7 deferred), we reject `_`-containing server names at
29
+ * config-build time so the daemon never produces a config whose
30
+ * server→tool boundary cannot be reconstructed.
31
+ */
32
+ import { createLogger } from "../../logging.js";
33
+ const logger = createLogger("opencode-mcp");
34
+ /**
35
+ * V5/§5.6 server-name lint. Returns null when the id is acceptable,
36
+ * otherwise a human-readable reason that explains why the server was
37
+ * dropped. Mirrors Codex's stricter `lowercase + dash only` rule
38
+ * extended with the opencode-specific `_` prohibition.
39
+ */
40
+ export function isAcceptableOpencodeServerName(id) {
41
+ return /^[a-z0-9][a-z0-9-]*$/.test(id);
42
+ }
43
+ function joinCommand(server) {
44
+ const cmd = server.command?.trim();
45
+ if (!cmd)
46
+ return [];
47
+ const argv = server.args ? server.args.filter((a) => typeof a === "string") : [];
48
+ return [cmd, ...argv];
49
+ }
50
+ /**
51
+ * Render the stdio-transport variant: opencode treats every entry in
52
+ * `command` as one argv element (it does not run through a shell). We
53
+ * pass `environment` inline because opencode's stdio launcher does NOT
54
+ * expand `${VAR}` references at runtime (V7).
55
+ */
56
+ function renderLocal(server, secrets, defaultTimeoutMs) {
57
+ const command = joinCommand(server);
58
+ if (command.length === 0)
59
+ return null;
60
+ const environment = {};
61
+ for (const key of server.envKeys) {
62
+ const raw = secrets[`${server.id}:${key}`];
63
+ if (raw !== undefined)
64
+ environment[key] = raw;
65
+ }
66
+ const local = {
67
+ type: "local",
68
+ command,
69
+ enabled: true,
70
+ };
71
+ if (Object.keys(environment).length > 0)
72
+ local.environment = environment;
73
+ if (typeof defaultTimeoutMs === "number" && defaultTimeoutMs > 0) {
74
+ local.timeout = defaultTimeoutMs;
75
+ }
76
+ return local;
77
+ }
78
+ /**
79
+ * Render http / sse transport. The SDK's `McpRemoteConfig` does not
80
+ * distinguish — both flow through the same shape; opencode's remote
81
+ * dispatcher negotiates transport. Header values are inlined.
82
+ */
83
+ function renderRemote(server, secrets, defaultTimeoutMs) {
84
+ if (!server.url)
85
+ return null;
86
+ const headers = {};
87
+ for (const key of server.headerKeys) {
88
+ const raw = secrets[`${server.id}:${key}`];
89
+ if (raw !== undefined)
90
+ headers[key] = raw;
91
+ }
92
+ const remote = {
93
+ type: "remote",
94
+ url: server.url,
95
+ enabled: true,
96
+ };
97
+ if (Object.keys(headers).length > 0)
98
+ remote.headers = headers;
99
+ if (typeof defaultTimeoutMs === "number" && defaultTimeoutMs > 0) {
100
+ remote.timeout = defaultTimeoutMs;
101
+ }
102
+ return remote;
103
+ }
104
+ /**
105
+ * Main entry point. Pure — no I/O, deterministic given the same input.
106
+ *
107
+ * Servers whose name fails the lint OR whose required transport field
108
+ * is missing (stdio without command, http/sse without url) are dropped
109
+ * with a warning. The daemon then proceeds without that server — same
110
+ * fail-soft posture as the Claude / Codex / Gemini generators.
111
+ */
112
+ export function renderOpencodeMcp(input) {
113
+ const mcp = {};
114
+ const warnings = [];
115
+ for (const server of input.servers) {
116
+ if (!server.enabled)
117
+ continue;
118
+ if (!isAcceptableOpencodeServerName(server.id)) {
119
+ warnings.push(`opencode-mcp: server '${server.id}' rejected — opencode-mangled tool ids (mcp__<server>__<tool> → <server>_<tool>) become ambiguous when the server id contains '_'. Rename to lowercase kebab-case.`);
120
+ continue;
121
+ }
122
+ if (server.transport === "stdio") {
123
+ const local = renderLocal(server, input.secrets, input.defaultTimeoutMs);
124
+ if (!local) {
125
+ warnings.push(`opencode-mcp: stdio server '${server.id}' has no 'command'; skipped`);
126
+ continue;
127
+ }
128
+ mcp[server.id] = local;
129
+ continue;
130
+ }
131
+ /* c8 ignore start — McpTransport is closed-set; the http/sse branch
132
+ always covers the remaining transports after the stdio early-return
133
+ above, so the false-branch + unknown fallthrough below are
134
+ unreachable unless a future transport ships without updating the
135
+ renderer. */
136
+ if (server.transport === "http" || server.transport === "sse") {
137
+ /* c8 ignore stop */
138
+ const remote = renderRemote(server, input.secrets, input.defaultTimeoutMs);
139
+ if (!remote) {
140
+ warnings.push(`opencode-mcp: ${server.transport} server '${server.id}' has no 'url'; skipped`);
141
+ continue;
142
+ }
143
+ mcp[server.id] = remote;
144
+ continue;
145
+ }
146
+ /* c8 ignore start — see note above. */
147
+ const unknown = server.transport;
148
+ warnings.push(`opencode-mcp: unsupported transport '${String(unknown)}' for server '${server.id}'`);
149
+ }
150
+ /* c8 ignore stop */
151
+ if (Object.keys(mcp).length > 0) {
152
+ logger.debug({ serverIds: Object.keys(mcp), warningCount: warnings.length }, "rendered opencode mcp map");
153
+ }
154
+ return {
155
+ mcp,
156
+ // OpenCode's `environment` map already carries inlined values for
157
+ // stdio servers, and `headers` for remote servers, so no separate
158
+ // env vector needs to flow into the spawn env. Reserved here so a
159
+ // future opencode version that supports `${VAR}` expansion can fill
160
+ // this in without a signature change.
161
+ env: {},
162
+ warnings,
163
+ };
164
+ }
165
+ //# sourceMappingURL=opencode-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-mcp.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §5.1 / §6.4 — server lifecycle manager.
3
+ *
4
+ * Phase 2 ships only the Managed implementation: one long-lived
5
+ * `opencode serve` child process per backend slot, with config-diff
6
+ * triggered bounce. The Remote implementation lands in Phase 5; Phase 2
7
+ * exposes the interface so wiring is stable.
8
+ *
9
+ * Concurrency model: a single `BackendRouter` slot is serialised by the
10
+ * router's per-backend in-flight gate. Within that gate `ensureConfig`
11
+ * may block on a bounce, then `client()` returns the live SDK client.
12
+ * `shutdown()` is wired into `ObserverManager` so graceful daemon exit
13
+ * stops the child process and releases the loopback port.
14
+ */
15
+ import { createOpencode, type OpencodeClient } from "@opencode-ai/sdk";
16
+ import type { OpencodeRuntimeConfig } from "@aitne/shared";
17
+ export type OpencodeServerMode = "managed" | "remote";
18
+ /**
19
+ * docs/design/appendices/opencode-backend.md §5.9 / Phase 4 — handle to a short-lived
20
+ * isolated server spawned for one tight-permission task. Caller is
21
+ * responsible for `close()`-ing it in a `finally` so the loopback port
22
+ * is released even when the inner work throws.
23
+ */
24
+ export interface EphemeralOpencodeServerHandle {
25
+ client: OpencodeClient;
26
+ close: () => Promise<void>;
27
+ }
28
+ export interface OpencodeServerManager {
29
+ readonly mode: OpencodeServerMode;
30
+ /**
31
+ * Ensure the underlying server is running with `desiredConfig`.
32
+ * Managed: bounces when the canonical-hash of the desired config
33
+ * differs from the running server's hash. Idempotent on same input.
34
+ * Remote: no-op in Phase 5+.
35
+ */
36
+ ensureConfig(desiredConfig: OpencodeRuntimeConfig): Promise<void>;
37
+ /** Resolve the live SDK client. Lazily spawns the server on first call. */
38
+ client(): Promise<OpencodeClient>;
39
+ /**
40
+ * docs/design/appendices/opencode-backend.md §5.9 Path A — spawn an isolated ephemeral
41
+ * server for a single tight-permission task. Used by
42
+ * `runDelegatedTask` when the operator opts into `isolation: "ephemeral"`
43
+ * (rare path: operator-supplied MCP context the primary server's
44
+ * connections cannot be trusted with). Returns an
45
+ * {@link EphemeralOpencodeServerHandle} the caller MUST close in
46
+ * `finally` to release the loopback port.
47
+ *
48
+ * Managed: spawns a fresh `createOpencode()` independent of the
49
+ * long-lived primary server's state. Remote: throws — Path A is
50
+ * unavailable on a server the daemon does not own.
51
+ */
52
+ spawnEphemeral(config: OpencodeRuntimeConfig): Promise<EphemeralOpencodeServerHandle>;
53
+ /** Stop the server child process and release resources. */
54
+ shutdown(): Promise<void>;
55
+ }
56
+ /**
57
+ * Hash a desired `OpencodeRuntimeConfig` deterministically so two
58
+ * equivalent configs (regardless of key ordering or undefined fields)
59
+ * produce the same hash. Reused for bounce-vs-noop decision.
60
+ */
61
+ export declare function hashRuntimeConfig(config: OpencodeRuntimeConfig): string;
62
+ export interface ManagedOpencodeServerManagerOptions {
63
+ /** Loopback host. Default `127.0.0.1`. */
64
+ hostname?: string;
65
+ /** Port. `0` ⇒ OS chooses. Default `0`. */
66
+ port?: number;
67
+ /** Cold-start timeout per spawn (ms). Default 15 000. */
68
+ spawnTimeoutMs?: number;
69
+ /**
70
+ * Inject the SDK's `createOpencode` for tests. Production code wires
71
+ * this to the real export. The wrapper signature matches the real
72
+ * SDK so the production path is type-safe.
73
+ */
74
+ createOpencodeImpl?: typeof createOpencode;
75
+ }
76
+ /**
77
+ * Managed-mode lifecycle. Owns a single child process; bounces on
78
+ * config-diff.
79
+ *
80
+ * Crash recovery: V6 fixtures show `server.close()` is synchronous and
81
+ * does not throw on a stopped process. The manager treats a missing /
82
+ * already-stopped server as "respawn on next ensureConfig". We don't
83
+ * subscribe to `child_process` signals here because the SDK abstracts
84
+ * them away; the next inbound `ensureConfig` will pay the cost of
85
+ * detection if the server died.
86
+ */
87
+ export declare class ManagedOpencodeServerManager implements OpencodeServerManager {
88
+ readonly mode: "managed";
89
+ private state;
90
+ /** Coalesce concurrent ensureConfig / client calls onto a single spawn. */
91
+ private inflight;
92
+ private readonly hostname;
93
+ private readonly port;
94
+ private readonly spawnTimeoutMs;
95
+ private readonly createOpencodeImpl;
96
+ private shutdownRequested;
97
+ constructor(options?: ManagedOpencodeServerManagerOptions);
98
+ ensureConfig(desiredConfig: OpencodeRuntimeConfig): Promise<void>;
99
+ client(): Promise<OpencodeClient>;
100
+ spawnEphemeral(config: OpencodeRuntimeConfig): Promise<EphemeralOpencodeServerHandle>;
101
+ shutdown(): Promise<void>;
102
+ /** Lifecycle introspection — useful for diagnostics and tests. */
103
+ get isRunning(): boolean;
104
+ get currentHash(): string | null;
105
+ private spawn;
106
+ private doSpawn;
107
+ }
108
+ /**
109
+ * Phase 2 factory: only the Managed variant exists today. Phase 5 adds
110
+ * a `RemoteOpencodeServerManager` branch keyed on a runtime setting.
111
+ * The factory contract keeps callers backend-shape-agnostic.
112
+ */
113
+ export declare function createOpencodeServerManager(options?: ManagedOpencodeServerManagerOptions): OpencodeServerManager;
114
+ //# sourceMappingURL=opencode-server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-server-manager.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-server-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,cAAc,EAEd,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAa3D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,2EAA2E;IAC3E,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAIvE;AAiBD,MAAM,WAAW,mCAAmC;IAClD,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;CAC5C;AAUD;;;;;;;;;;GAUG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,OAAO,CAAC,KAAK,CAA4B;IACzC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,GAAE,mCAAwC;IAOvD,YAAY,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYjC,cAAc,CAClB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,6BAA6B,CAAC;IAqCnC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,kEAAkE;IAClE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;YAEa,KAAK;YAqBL,OAAO;CAsDtB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,mCAAwC,GAChD,qBAAqB,CAEvB"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §5.1 / §6.4 — server lifecycle manager.
3
+ *
4
+ * Phase 2 ships only the Managed implementation: one long-lived
5
+ * `opencode serve` child process per backend slot, with config-diff
6
+ * triggered bounce. The Remote implementation lands in Phase 5; Phase 2
7
+ * exposes the interface so wiring is stable.
8
+ *
9
+ * Concurrency model: a single `BackendRouter` slot is serialised by the
10
+ * router's per-backend in-flight gate. Within that gate `ensureConfig`
11
+ * may block on a bounce, then `client()` returns the live SDK client.
12
+ * `shutdown()` is wired into `ObserverManager` so graceful daemon exit
13
+ * stops the child process and releases the loopback port.
14
+ */
15
+ import { createHash } from "node:crypto";
16
+ import { createOpencode, } from "@opencode-ai/sdk";
17
+ import { stableStringify } from "@aitne/shared";
18
+ import { createLogger } from "../../logging.js";
19
+ const logger = createLogger("opencode-server-manager");
20
+ /** Default cold-start budget — V6 measured p95 ≈ 1222 ms; 15 s headroom
21
+ * for slow CI hosts and the rare MCP-bound bounce. */
22
+ const DEFAULT_SPAWN_TIMEOUT_MS = 15_000;
23
+ /** Default loopback bind. Port 0 lets the OS pick a free port; the SDK
24
+ * echoes the chosen URL back so we never need to probe externally. */
25
+ const DEFAULT_HOSTNAME = "127.0.0.1";
26
+ /**
27
+ * Hash a desired `OpencodeRuntimeConfig` deterministically so two
28
+ * equivalent configs (regardless of key ordering or undefined fields)
29
+ * produce the same hash. Reused for bounce-vs-noop decision.
30
+ */
31
+ export function hashRuntimeConfig(config) {
32
+ // Drop `undefined` so { a: undefined } and {} canonicalise equal.
33
+ const canonical = stableStringify(stripUndefined(config));
34
+ return createHash("sha256").update(canonical).digest("hex");
35
+ }
36
+ function stripUndefined(value) {
37
+ if (Array.isArray(value)) {
38
+ return value.map((item) => stripUndefined(item));
39
+ }
40
+ if (value && typeof value === "object") {
41
+ const out = {};
42
+ for (const [k, v] of Object.entries(value)) {
43
+ if (v === undefined)
44
+ continue;
45
+ out[k] = stripUndefined(v);
46
+ }
47
+ return out;
48
+ }
49
+ return value;
50
+ }
51
+ /**
52
+ * Managed-mode lifecycle. Owns a single child process; bounces on
53
+ * config-diff.
54
+ *
55
+ * Crash recovery: V6 fixtures show `server.close()` is synchronous and
56
+ * does not throw on a stopped process. The manager treats a missing /
57
+ * already-stopped server as "respawn on next ensureConfig". We don't
58
+ * subscribe to `child_process` signals here because the SDK abstracts
59
+ * them away; the next inbound `ensureConfig` will pay the cost of
60
+ * detection if the server died.
61
+ */
62
+ export class ManagedOpencodeServerManager {
63
+ mode = "managed";
64
+ state = null;
65
+ /** Coalesce concurrent ensureConfig / client calls onto a single spawn. */
66
+ inflight = null;
67
+ hostname;
68
+ port;
69
+ spawnTimeoutMs;
70
+ createOpencodeImpl;
71
+ shutdownRequested = false;
72
+ constructor(options = {}) {
73
+ this.hostname = options.hostname ?? DEFAULT_HOSTNAME;
74
+ this.port = options.port ?? 0;
75
+ this.spawnTimeoutMs = options.spawnTimeoutMs ?? DEFAULT_SPAWN_TIMEOUT_MS;
76
+ this.createOpencodeImpl = options.createOpencodeImpl ?? createOpencode;
77
+ }
78
+ async ensureConfig(desiredConfig) {
79
+ if (this.shutdownRequested) {
80
+ throw new Error("OpencodeServerManager has been shut down");
81
+ }
82
+ const desiredHash = hashRuntimeConfig(desiredConfig);
83
+ if (this.state && this.state.runningHash === desiredHash) {
84
+ return;
85
+ }
86
+ await this.spawn(desiredConfig, desiredHash);
87
+ }
88
+ async client() {
89
+ if (this.shutdownRequested) {
90
+ throw new Error("OpencodeServerManager has been shut down");
91
+ }
92
+ if (!this.state) {
93
+ // Lazy first-spawn with an empty config — callers that want
94
+ // specific config should call ensureConfig() first.
95
+ await this.spawn({}, hashRuntimeConfig({}));
96
+ }
97
+ return this.state.client;
98
+ }
99
+ async spawnEphemeral(config) {
100
+ if (this.shutdownRequested) {
101
+ throw new Error("OpencodeServerManager has been shut down");
102
+ }
103
+ const abortController = new AbortController();
104
+ const timeoutId = setTimeout(() => abortController.abort(new Error("opencode ephemeral spawn timeout")), this.spawnTimeoutMs);
105
+ const start = Date.now();
106
+ try {
107
+ const { client, server } = await this.createOpencodeImpl({
108
+ hostname: this.hostname,
109
+ port: 0,
110
+ signal: abortController.signal,
111
+ timeout: this.spawnTimeoutMs,
112
+ config: config,
113
+ });
114
+ logger.info({ url: server.url, spawnMs: Date.now() - start, ephemeral: true }, "opencode ephemeral server spawned");
115
+ return {
116
+ client,
117
+ close: async () => {
118
+ try {
119
+ server.close();
120
+ }
121
+ catch (err) {
122
+ logger.warn({ err }, "opencode ephemeral server close threw");
123
+ }
124
+ },
125
+ };
126
+ }
127
+ finally {
128
+ clearTimeout(timeoutId);
129
+ }
130
+ }
131
+ async shutdown() {
132
+ this.shutdownRequested = true;
133
+ if (this.state) {
134
+ const { server } = this.state;
135
+ try {
136
+ server.close();
137
+ }
138
+ catch (err) {
139
+ logger.warn({ err }, "opencode server close threw");
140
+ }
141
+ this.state = null;
142
+ }
143
+ }
144
+ /** Lifecycle introspection — useful for diagnostics and tests. */
145
+ get isRunning() {
146
+ return this.state !== null;
147
+ }
148
+ get currentHash() {
149
+ return this.state?.runningHash ?? null;
150
+ }
151
+ async spawn(config, hash) {
152
+ // Coalesce concurrent spawn attempts so a flurry of ensureConfig
153
+ // calls (e.g. on first boot) doesn't fire multiple child processes.
154
+ if (this.inflight) {
155
+ const state = await this.inflight;
156
+ if (state.runningHash === hash)
157
+ return state;
158
+ // Different hash — fall through to bounce.
159
+ }
160
+ const spawnPromise = this.doSpawn(config, hash);
161
+ this.inflight = spawnPromise;
162
+ try {
163
+ const state = await spawnPromise;
164
+ return state;
165
+ }
166
+ finally {
167
+ this.inflight = null;
168
+ }
169
+ }
170
+ async doSpawn(config, hash) {
171
+ if (this.state) {
172
+ const previousHash = this.state.runningHash;
173
+ const ageMs = Date.now() - this.state.spawnedAt;
174
+ try {
175
+ this.state.server.close();
176
+ }
177
+ catch (err) {
178
+ logger.warn({ err }, "opencode server close threw during bounce");
179
+ }
180
+ this.state = null;
181
+ logger.info({ previousHash: previousHash.slice(0, 12), newHash: hash.slice(0, 12), ageMs }, "opencode server bounced");
182
+ }
183
+ const abortController = new AbortController();
184
+ const timeoutId = setTimeout(() => abortController.abort(new Error("opencode spawn timeout")), this.spawnTimeoutMs);
185
+ const start = Date.now();
186
+ try {
187
+ const { client, server } = await this.createOpencodeImpl({
188
+ hostname: this.hostname,
189
+ port: this.port,
190
+ signal: abortController.signal,
191
+ timeout: this.spawnTimeoutMs,
192
+ config: config,
193
+ });
194
+ const next = {
195
+ client,
196
+ server,
197
+ runningHash: hash,
198
+ config,
199
+ spawnedAt: Date.now(),
200
+ };
201
+ this.state = next;
202
+ logger.info({
203
+ url: server.url,
204
+ hash: hash.slice(0, 12),
205
+ spawnMs: Date.now() - start,
206
+ }, "opencode server spawned");
207
+ return next;
208
+ }
209
+ finally {
210
+ clearTimeout(timeoutId);
211
+ }
212
+ }
213
+ }
214
+ /**
215
+ * Phase 2 factory: only the Managed variant exists today. Phase 5 adds
216
+ * a `RemoteOpencodeServerManager` branch keyed on a runtime setting.
217
+ * The factory contract keeps callers backend-shape-agnostic.
218
+ */
219
+ export function createOpencodeServerManager(options = {}) {
220
+ return new ManagedOpencodeServerManager(options);
221
+ }
222
+ //# sourceMappingURL=opencode-server-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-server-manager.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-server-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §6.1.0 — local module augmentation + helper
3
+ * types for the four undeclared surfaces that V3/V4/V9 confirmed exist
4
+ * at runtime in opencode 1.14.50 but are missing from the SDK's
5
+ * generated types.
6
+ *
7
+ * The `declare module "@opencode-ai/sdk"` block adds the three runtime
8
+ * fields the SDK omits (format on the prompt body, structured on the
9
+ * assistant message, total on the token block). The helper types below
10
+ * widen the event union so we never compile against the SDK's
11
+ * incomplete `EventSubscribeResponse`.
12
+ */
13
+ declare module "@opencode-ai/sdk" {
14
+ interface SessionPromptBodyAugmented {
15
+ format?: {
16
+ type: "json_schema";
17
+ schema: object;
18
+ retryCount?: number;
19
+ };
20
+ }
21
+ interface AssistantMessageAugmented {
22
+ structured?: unknown;
23
+ }
24
+ interface AssistantTokensAugmented {
25
+ total?: number;
26
+ }
27
+ }
28
+ /**
29
+ * V9-grounded event-input type. The SDK's generated
30
+ * `EventSubscribeResponse` union is **incomplete** (server.heartbeat,
31
+ * permission.asked emit but are not declared) and over-promises
32
+ * (permission.replied, message.part.updated declared but never observed).
33
+ * Defensive code therefore widens to a plain string-key dispatch.
34
+ */
35
+ export type RawOpencodeEvent = {
36
+ type: string;
37
+ properties?: unknown;
38
+ };
39
+ /**
40
+ * Helper for callers that want to thread the structured-output (`format`)
41
+ * option through `client.session.prompt({ body: … })`. The SDK's body
42
+ * type does not list `format`, but the runtime accepts and honors it
43
+ * (V4). Pass the resulting object to the SDK call via a single cast.
44
+ */
45
+ export type OpencodeAugmentedPromptBody = import("@opencode-ai/sdk").SessionPromptData["body"] & Partial<import("@opencode-ai/sdk").SessionPromptBodyAugmented>;
46
+ //# sourceMappingURL=opencode-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-types.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAiB,0BAA0B;QACzC,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,aAAa,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH;IAED,UAAiB,yBAAyB;QACxC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB;IAED,UAAiB,wBAAwB;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;CACF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACrC,OAAO,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAClD,OAAO,CAAC,OAAO,kBAAkB,EAAE,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §6.1.0 — local module augmentation + helper
3
+ * types for the four undeclared surfaces that V3/V4/V9 confirmed exist
4
+ * at runtime in opencode 1.14.50 but are missing from the SDK's
5
+ * generated types.
6
+ *
7
+ * The `declare module "@opencode-ai/sdk"` block adds the three runtime
8
+ * fields the SDK omits (format on the prompt body, structured on the
9
+ * assistant message, total on the token block). The helper types below
10
+ * widen the event union so we never compile against the SDK's
11
+ * incomplete `EventSubscribeResponse`.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=opencode-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-types.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -14,8 +14,10 @@
14
14
  * - Drives the seed model selection from each process key's default
15
15
  * tier (`getDefaultTierForProcessKey`). Lite-tier keys seed Haiku
16
16
  * (Claude) / gpt-5.4-mini (Codex) / flash-lite (Gemini); medium-tier
17
- * keys seed Sonnet / gpt-5.4-mini / 3.1-flash-lite-preview; high-tier keys seed
18
- * Opus / gpt-5.5 / 3.1-pro-preview.
17
+ * keys seed Sonnet / gpt-5.4 / 3.1-flash-lite-preview; high-tier keys seed
18
+ * Opus / gpt-5.4 / 3.1-pro-preview. (Codex's high tier collapses to
19
+ * gpt-5.4 by default via `SEED_HIGH_TIER_OVERRIDE` in model-registry.ts
20
+ * — gpt-5.5 is Opus-priced and operator-pinned, not the silent default.)
19
21
  * - Exposes `setMainBackend(db, backendId)` — writes
20
22
  * `backend_global_defaults.default_backend` only. No preset
21
23
  * application, no per-process row mutation. The dashboard's main-
@@ -29,7 +31,16 @@
29
31
  * Tier-to-model resolution lives in `model-registry.ts:defaultModelForTier`.
30
32
  */
31
33
  import type Database from "better-sqlite3";
32
- import { type BackendId, type ProcessKey, type ProcessModelTier } from "@aitne/shared";
34
+ import { type BackendId, type BackendModelTier, type ProcessKey, type ProcessModelTier } from "@aitne/shared";
35
+ /**
36
+ * Scale a `maxBudgetUsd` for the given backend + tier. Exported so the
37
+ * cross-backend cascade in `process-config-cascade.ts` can apply the
38
+ * same factor to its INHERITOR_DEFAULTS when an operator edits
39
+ * `message.dm` on a non-Claude backend.
40
+ *
41
+ * Rounds to 2 decimals so the DB-stored cents-precision value is stable.
42
+ */
43
+ export declare function applyBackendBudgetFactor(backendId: BackendId, tier: BackendModelTier, baseBudgetUsd: number): number;
33
44
  /**
34
45
  * Resolve the seed `(model, envelope)` for a configurable process key on
35
46
  * the given backend. The model is selected by the process key's default
@@ -79,8 +90,10 @@ export interface ApplyDefaultPresetsOptions {
79
90
  * `backend_global_defaults.default_backend` (claude as last resort).
80
91
  * - Seeds each row with a model resolved by `resolveDefaultBindingFor`
81
92
  * (lite tier seeds Haiku on Claude / gpt-5.4-mini on Codex /
82
- * flash-lite preview on Gemini; medium tier seeds Sonnet / gpt-5.4-mini
83
- * / 3.1-flash-lite-preview; high tier seeds Opus / gpt-5.5 / 3.1-pro-preview).
93
+ * flash-lite preview on Gemini; medium tier seeds Sonnet / gpt-5.4
94
+ * / 3.1-flash-lite-preview; high tier seeds Opus / gpt-5.4 /
95
+ * 3.1-pro-preview — Codex's high tier intentionally collapses to
96
+ * gpt-5.4, see `SEED_HIGH_TIER_OVERRIDE`).
84
97
  * - Updates `default_lite_model` / `default_medium_model` /
85
98
  * `default_high_model` / `default_backend` on the singleton row.
86
99
  * - Skips rows whose `updated_by='user'` unless `force: true`.
@@ -1 +1 @@
1
- {"version":3,"file":"plan-presets.d.ts","sourceRoot":"","sources":["../../../src/core/backends/plan-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAIL,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAuEvB;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAS3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CA0E3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,SAAS,GACnB,IAAI,CA6BN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,SAAS,GACvB;IACD,yBAAyB,EAAE,KAAK,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ,CA6BA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,IAAI,CAGzB"}
1
+ {"version":3,"file":"plan-presets.d.ts","sourceRoot":"","sources":["../../../src/core/backends/plan-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AA4DvB;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAIR;AAuHD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAa3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CA0E3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,SAAS,GACnB,IAAI,CA6BN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,SAAS,GACvB;IACD,yBAAyB,EAAE,KAAK,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ,CA6BA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,IAAI,CAGzB"}