@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,86 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §5.1 / §5.8 / Phase 3 — assemble the
3
+ * complete `OpencodeRuntimeConfig` envelope a session needs.
4
+ *
5
+ * Inputs (already normalised by caller):
6
+ * - `modelId`: provider/model composite from the BackendRouter.
7
+ * - `executionMode`: per-backend Safe/Allow posture.
8
+ * - `disallowedTools`: per-session denylist (Claude-shaped).
9
+ * - `allowedToolsOverride`: dashboard widen list (Claude-shaped) or null.
10
+ * - `mcpRender`: result of `renderOpencodeMcp` — the per-session `mcp`
11
+ * map plus warnings the dashboard surfaces.
12
+ *
13
+ * Outputs:
14
+ * - `config`: the envelope to pass through to `serverManager.ensureConfig()`
15
+ * (which hashes it and bounces the server if it differs from the
16
+ * running hash). Per §5.1 the daemon ALWAYS emits a full self-contained
17
+ * JSON — no field is left to the merge layer.
18
+ * - `warnings`: collected from both translators so the dashboard can
19
+ * show the operator which entries opencode can't express verbatim.
20
+ *
21
+ * Self-contained invariant: every field on `OpencodeRuntimeConfig` is
22
+ * explicit (or deliberately omitted) so the daemon's behaviour does not
23
+ * depend on the merge-vs-replace semantics of `OPENCODE_CONFIG_CONTENT`
24
+ * (§10 D1, deferred). This means a same-envelope second turn produces a
25
+ * bit-identical config and skips the bounce (§5.1 cost model).
26
+ *
27
+ * Pure function — no I/O, no DB reads. Wired into `OpencodeCore.execute()`
28
+ * after `materializeMcpForSession` resolves the per-backend MCP list.
29
+ */
30
+ import { type ExecutionPermissionMode, type OpencodeMcpServerConfig, type OpencodeRuntimeConfig } from "@aitne/shared";
31
+ export interface OpencodeConfigBuilderInput {
32
+ modelId: string;
33
+ executionMode: ExecutionPermissionMode;
34
+ disallowedTools: readonly string[];
35
+ allowedToolsOverride: readonly string[] | null;
36
+ mcpDisallowed: readonly string[];
37
+ /**
38
+ * Per-session MCP map (already filtered to enabled + opencode-targeted
39
+ * + name-linted by `renderOpencodeMcp`). Empty when no MCP targets the
40
+ * session.
41
+ */
42
+ mcp: Record<string, OpencodeMcpServerConfig>;
43
+ /**
44
+ * V1+V2 — `AGENTS.md` and `.claude/skills/<name>/SKILL.md` are
45
+ * auto-discovered from the session cwd. The default is therefore an
46
+ * EMPTY instructions array; the daemon explicitly omits the field.
47
+ * Operators set `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` to force-emit
48
+ * the defensive glob list.
49
+ */
50
+ defensiveInstructions?: boolean;
51
+ /**
52
+ * Extra hard-disable tool entries (e.g. `read: false` when a session
53
+ * must have zero read capability). Composed with the V8 subagent
54
+ * suppression (`task: false`) the builder always emits.
55
+ */
56
+ extraHardDisable?: Record<string, boolean>;
57
+ }
58
+ export interface OpencodeConfigBuilderResult {
59
+ config: OpencodeRuntimeConfig;
60
+ /**
61
+ * Operator-facing notices from the permission translator and the MCP
62
+ * renderer. Dashboard surfaces these inline on the runtime-config
63
+ * preview tile.
64
+ */
65
+ warnings: string[];
66
+ }
67
+ /**
68
+ * Build the complete `OpencodeRuntimeConfig` for a session.
69
+ *
70
+ * Ordering invariants (locked by `opencode-config-builder.test.ts`):
71
+ * 1. The per-session translator's output is built FIRST (so warnings
72
+ * reflect what the operator configured).
73
+ * 2. The absolute-block layer is merged on top — its denies always win
74
+ * over any per-session allow.
75
+ * 3. `tools` is composed as `{ task: false, …caller-extras, …read-hard-
76
+ * disable }` — the order matches the JSON serialisation order and
77
+ * keeps the hash stable across same-envelope turns.
78
+ */
79
+ export declare function buildOpencodeRuntimeConfig(input: OpencodeConfigBuilderInput): OpencodeConfigBuilderResult;
80
+ /**
81
+ * `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` opts in to the defensive
82
+ * `instructions` glob list. Centralised here so callers don't repeat
83
+ * the env-var-name string.
84
+ */
85
+ export declare function defensiveInstructionsFromEnv(env?: NodeJS.ProcessEnv): boolean;
86
+ //# sourceMappingURL=opencode-config-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-config-builder.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-config-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAEL,KAAK,uBAAuB,EAE5B,KAAK,uBAAuB,EAG5B,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,uBAAuB,CAAC;IACvC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oBAAoB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC7C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,qBAAqB,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwFD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,GAChC,2BAA2B,CAoD7B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §5.1 / §5.8 / Phase 3 — assemble the
3
+ * complete `OpencodeRuntimeConfig` envelope a session needs.
4
+ *
5
+ * Inputs (already normalised by caller):
6
+ * - `modelId`: provider/model composite from the BackendRouter.
7
+ * - `executionMode`: per-backend Safe/Allow posture.
8
+ * - `disallowedTools`: per-session denylist (Claude-shaped).
9
+ * - `allowedToolsOverride`: dashboard widen list (Claude-shaped) or null.
10
+ * - `mcpRender`: result of `renderOpencodeMcp` — the per-session `mcp`
11
+ * map plus warnings the dashboard surfaces.
12
+ *
13
+ * Outputs:
14
+ * - `config`: the envelope to pass through to `serverManager.ensureConfig()`
15
+ * (which hashes it and bounces the server if it differs from the
16
+ * running hash). Per §5.1 the daemon ALWAYS emits a full self-contained
17
+ * JSON — no field is left to the merge layer.
18
+ * - `warnings`: collected from both translators so the dashboard can
19
+ * show the operator which entries opencode can't express verbatim.
20
+ *
21
+ * Self-contained invariant: every field on `OpencodeRuntimeConfig` is
22
+ * explicit (or deliberately omitted) so the daemon's behaviour does not
23
+ * depend on the merge-vs-replace semantics of `OPENCODE_CONFIG_CONTENT`
24
+ * (§10 D1, deferred). This means a same-envelope second turn produces a
25
+ * bit-identical config and skips the bounce (§5.1 cost model).
26
+ *
27
+ * Pure function — no I/O, no DB reads. Wired into `OpencodeCore.execute()`
28
+ * after `materializeMcpForSession` resolves the per-backend MCP list.
29
+ */
30
+ import { buildOpencodePermission, } from "@aitne/shared";
31
+ import { buildOpencodeAbsoluteBlockPermission } from "../../safety/always-disallowed.js";
32
+ /**
33
+ * Defensive `instructions` glob list (V12 — only useful when the
34
+ * session cwd is symlinked or chrooted in a way that defeats
35
+ * auto-discovery). Skills are intentionally NOT listed here — including
36
+ * `.claude/skills/**\/SKILL.md` would inflate the system prompt with
37
+ * every skill body. Skills auto-discover separately via opencode's
38
+ * `skill` tool (§5.5).
39
+ */
40
+ const DEFENSIVE_INSTRUCTIONS = [
41
+ "AGENTS.md",
42
+ ".opencode/agent/*.md",
43
+ ];
44
+ /**
45
+ * Merge two `OpencodePermissionConfig` blocks. The second argument
46
+ * **wins** for whole-key collisions — absolute-block entries override
47
+ * any user-configured allow/deny. For the `bash` pattern-map, the merge
48
+ * is per-pattern with `b` winning.
49
+ *
50
+ * Why per-pattern merge: a Phase-3 acceptance gate requires that an
51
+ * operator who explicitly allows `Bash(npm *)` does not have their
52
+ * allow erased by the absolute-block layer (which has no `npm *` deny).
53
+ * Same-pattern collisions deny-wins because the absolute-block layer
54
+ * is non-negotiable.
55
+ */
56
+ function mergePermissions(base, override) {
57
+ const out = { ...base };
58
+ // bash — pattern-map vs triple merge
59
+ if (override.bash !== undefined) {
60
+ out.bash = mergeBash(base.bash, override.bash);
61
+ }
62
+ // triple-only keys — override wins (absolute-block layer never emits
63
+ // these today, but kept future-proof).
64
+ if (override.edit !== undefined)
65
+ out.edit = override.edit;
66
+ if (override.webfetch !== undefined)
67
+ out.webfetch = override.webfetch;
68
+ if (override.doom_loop !== undefined)
69
+ out.doom_loop = override.doom_loop;
70
+ if (override.external_directory !== undefined) {
71
+ out.external_directory = override.external_directory;
72
+ }
73
+ return out;
74
+ }
75
+ function mergeBash(base, override) {
76
+ // Override is a triple: it is by definition the strongest expression on
77
+ // this key, so it wins wholesale.
78
+ if (typeof override === "string")
79
+ return override;
80
+ if (base === undefined) {
81
+ return { ...override };
82
+ }
83
+ if (typeof base === "string") {
84
+ // Base is a wholesale triple ("deny" / "ask" / "allow" — only "deny"
85
+ // is reachable today via bare `Bash` in disallowedTools, but the
86
+ // future-proof branches stay so a per-session translator gaining
87
+ // bash:"ask"/"allow" emission later does not silently regress).
88
+ //
89
+ // The override is a pattern map of absolute-block denies. We MUST
90
+ // preserve base's wholesale semantic, otherwise a user who said
91
+ // "deny all bash" (bare `Bash`) would see their policy silently
92
+ // widened to "deny only the absolute-block patterns" once those
93
+ // patterns merge in. Encode the wholesale semantic as a `"*"`
94
+ // catch-all on the merged pattern map — opencode's pattern matcher
95
+ // prefers specific patterns over `*`, so the absolute-block entries
96
+ // remain enforceable AND the catch-all carries the base value for
97
+ // every unlisted command.
98
+ const merged = { ...override };
99
+ if (merged["*"] === undefined) {
100
+ merged["*"] = base;
101
+ }
102
+ return merged;
103
+ }
104
+ // Both are pattern-maps. Merge — override wins per-key.
105
+ const merged = { ...base };
106
+ for (const [pat, value] of Object.entries(override)) {
107
+ merged[pat] = value;
108
+ }
109
+ return merged;
110
+ }
111
+ /**
112
+ * Build the complete `OpencodeRuntimeConfig` for a session.
113
+ *
114
+ * Ordering invariants (locked by `opencode-config-builder.test.ts`):
115
+ * 1. The per-session translator's output is built FIRST (so warnings
116
+ * reflect what the operator configured).
117
+ * 2. The absolute-block layer is merged on top — its denies always win
118
+ * over any per-session allow.
119
+ * 3. `tools` is composed as `{ task: false, …caller-extras, …read-hard-
120
+ * disable }` — the order matches the JSON serialisation order and
121
+ * keeps the hash stable across same-envelope turns.
122
+ */
123
+ export function buildOpencodeRuntimeConfig(input) {
124
+ const warnings = [];
125
+ const perSession = buildOpencodePermission({
126
+ disallowedTools: input.disallowedTools,
127
+ allowedToolsOverride: input.allowedToolsOverride ?? null,
128
+ mcpDisallowed: input.mcpDisallowed,
129
+ mode: input.executionMode,
130
+ });
131
+ warnings.push(...perSession.warnings);
132
+ const absolute = buildOpencodeAbsoluteBlockPermission();
133
+ warnings.push(...absolute.warnings);
134
+ // mergePermissions: per-session is the base, absolute-block is the
135
+ // override. This produces "absolute wins" semantics for any same-key
136
+ // collision in the bash pattern map.
137
+ const permission = mergePermissions(perSession.permission, absolute.permission);
138
+ const tools = {
139
+ // V8 — subagent suppression. opencode's `task` tool spawns subagents
140
+ // outside the daemon's audit/stream surface; we always disable it.
141
+ task: false,
142
+ ...(input.extraHardDisable ?? {}),
143
+ ...perSession.toolsHardDisable,
144
+ };
145
+ const config = {
146
+ tools,
147
+ permission,
148
+ };
149
+ // Only emit `model` when the composite parses as provider/model. The
150
+ // server falls back to its own configured default when the field is
151
+ // omitted; this keeps the bounce-hash stable when callers (tests)
152
+ // pass an ad-hoc model id.
153
+ if (input.modelId.includes("/")) {
154
+ config.model = input.modelId;
155
+ }
156
+ if (Object.keys(input.mcp).length > 0) {
157
+ config.mcp = input.mcp;
158
+ }
159
+ if (input.defensiveInstructions) {
160
+ config.instructions = [...DEFENSIVE_INSTRUCTIONS];
161
+ }
162
+ return { config, warnings };
163
+ }
164
+ /**
165
+ * `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` opts in to the defensive
166
+ * `instructions` glob list. Centralised here so callers don't repeat
167
+ * the env-var-name string.
168
+ */
169
+ export function defensiveInstructionsFromEnv(env = process.env) {
170
+ return env.PA_OPENCODE_DEFENSIVE_INSTRUCTIONS === "1";
171
+ }
172
+ //# sourceMappingURL=opencode-config-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-config-builder.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-config-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,316 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §6.2 — `IAgentCore` implementation backed by
3
+ * the `@opencode-ai/sdk` HTTP server.
4
+ *
5
+ * Surface:
6
+ * - `execute()` end-to-end against the managed server (loopback)
7
+ * - `executeResume()` reuses an existing opencode session id so the
8
+ * dispatcher's multi-turn DM / dashboard-chat / docs-QA path can
9
+ * own opencode as main backend (see
10
+ * `docs/design/appendices/opencode-execute-resume.md`)
11
+ * - Streaming text deltas relayed through the StreamCallbacks
12
+ * - Cost / token telemetry from `client.session.get(...).data`,
13
+ * scoped to a per-turn delta when resuming (pre-turn snapshot
14
+ * subtracted from post-turn cumulative)
15
+ * - `summarize()` V11 round-trip
16
+ * - `runDelegatedTask()` via spawnEphemeral (Path A)
17
+ * - Stub for `runDelegatedTool` (by design — opencode delegation
18
+ * routes through `runDelegatedTask`)
19
+ * - Per-execute wall-clock abort via `AbortController` →
20
+ * `client.session.abort()`
21
+ */
22
+ import { type AgentResult, type BackendModel } from "@aitne/shared";
23
+ import type { AgentConfig } from "../../config.js";
24
+ import type { AgentWriteTracker } from "../../safety/agent-write-tracker.js";
25
+ import type { AgentExecuteParams, AgentResumeParams, AuthCheckResult, DelegatedTaskInvokeParams, DelegatedTaskResultRaw, DelegatedToolInvokeParams, DelegatedToolResult, IAgentCore, McpSessionContext, ReadSensitiveTokenManager, StreamCallbacks } from "../agent-core.js";
26
+ import { PriceFetcher } from "./price-fetcher.js";
27
+ import { extractToolUsesFromParts } from "./opencode-event-mapper.js";
28
+ import type { OpencodeServerManager } from "./opencode-server-manager.js";
29
+ /**
30
+ * Provider/model parse for the SDK's `body.model = { providerID, modelID }`
31
+ * shape. opencode encodes the composite as `providerID/modelID` — note
32
+ * the model id itself may contain slashes (e.g. `openai/gpt-oss-20b:free`
33
+ * on OpenRouter), so we only split on the FIRST `/`.
34
+ */
35
+ export declare function parseModelComposite(composite: string): {
36
+ providerID: string;
37
+ modelID: string;
38
+ } | null;
39
+ export interface LiveOpencodeModel {
40
+ /** Composite the daemon stores in `process_backend_config.main_model`. */
41
+ modelId: string;
42
+ /** Model id without the provider prefix, for display. */
43
+ shortId: string;
44
+ name: string;
45
+ family: string;
46
+ tier: "lite" | "medium" | "high";
47
+ supportsToolUse: boolean;
48
+ supportsAttachment: boolean;
49
+ supportsReasoning: boolean;
50
+ maxInputTokens: number | null;
51
+ maxOutputTokens: number | null;
52
+ usdPer1kIn: number | null;
53
+ usdPer1kOut: number | null;
54
+ isFree: boolean;
55
+ status: string;
56
+ }
57
+ export interface LiveOpencodeProviderGroup {
58
+ id: string;
59
+ name: string;
60
+ source: string;
61
+ models: LiveOpencodeModel[];
62
+ }
63
+ export interface LiveOpencodeModelsResponse {
64
+ providers: LiveOpencodeProviderGroup[];
65
+ fetchedAt: string;
66
+ cached: boolean;
67
+ }
68
+ export declare class OpencodeCore implements IAgentCore {
69
+ private readonly config;
70
+ private readonly writeTracker;
71
+ private readonly serverManager;
72
+ private readonly priceFetcher;
73
+ readonly backendId: "opencode";
74
+ private liveModelsCache;
75
+ /** Coalesce parallel `listLiveModels()` calls onto a single SDK round-trip.
76
+ * Mirrors the inflight pattern in `ManagedOpencodeServerManager.spawn()`
77
+ * so a dashboard burst (picker open + RQ background refresh) doesn't
78
+ * multiply `client.config.providers()` calls. */
79
+ private liveModelsInflight;
80
+ private readToken;
81
+ private readTokenManager;
82
+ private mcpContext;
83
+ constructor(config: AgentConfig, writeTracker: AgentWriteTracker, serverManager: OpencodeServerManager, priceFetcher?: PriceFetcher);
84
+ setReadToken(token: string): void;
85
+ setReadTokenManager(manager: ReadSensitiveTokenManager): void;
86
+ setMcpContext(context: McpSessionContext): void;
87
+ /**
88
+ * Materialises a session workdir, ensures the server is running with
89
+ * the desired runtime config, opens a fresh session via the SDK, then
90
+ * runs prompt + event-stream consumption in parallel. Per-execute
91
+ * timeout cancels the inflight prompt via `client.session.abort()`.
92
+ */
93
+ execute(params: AgentExecuteParams, streamCallbacks?: StreamCallbacks): Promise<AgentResult>;
94
+ /**
95
+ * Resume a prior turn against an existing opencode session id. The
96
+ * dispatcher reaches this when `conversation_sessions.backend_session_id`
97
+ * was previously written by `execute()`. opencode persists sessions on
98
+ * disk, so the same id stays addressable across server restarts; we
99
+ * skip `session.create` and re-enter via `session.prompt({ path: { id } })`.
100
+ *
101
+ * Design: `docs/design/appendices/opencode-execute-resume.md`.
102
+ */
103
+ executeResume(params: AgentResumeParams, streamCallbacks?: StreamCallbacks): Promise<AgentResult>;
104
+ /**
105
+ * docs/design/appendices/opencode-backend.md §6.2 / §10 D5 / V11 — opencode-side
106
+ * summarisation flow.
107
+ *
108
+ * 1. Open a transient session so the server has a conversation it
109
+ * can summarise (opencode requires non-empty message history
110
+ * before `session.summarize` will produce a body).
111
+ * 2. Prompt with the conversation text under the lite-tier model
112
+ * (`DEFAULT_OPENCODE_LITE_MODEL`) — small_model isn't honoured
113
+ * here because Aitne disables `task` (V8) so opencode's own
114
+ * subagent path never picks small_model up. Cheap & quick on the
115
+ * same provider as the active turn.
116
+ * 3. Call `client.session.summarize({ path: { id }, body: { providerID, modelID } })`
117
+ * — body is FLAT, NOT nested in a `model` wrapper (V11 contract).
118
+ * Returns `{ data: true }` on HTTP 200; the actual summary lands
119
+ * as a new assistant message with `info.summary === true`.
120
+ * 4. Read `client.session.messages({ path: { id } })` and pick the
121
+ * LAST assistant message with `info.summary === true`. Join its
122
+ * text parts as the markdown summary. (Do NOT read
123
+ * `session.get(...).data.summary` — V11 fixture confirms that
124
+ * field is the diff stat block `{ additions, deletions, files }`,
125
+ * not text.)
126
+ * 5. Best-effort `session.delete()` in a `finally` so the transient
127
+ * session row doesn't accumulate on disk.
128
+ *
129
+ * Falls back to a truncated slice on any failure so a caller flowing
130
+ * through a fallback chain still gets *something* — matching the
131
+ * Codex/Gemini summarize contract (return string, never throw).
132
+ */
133
+ summarize(text: string): Promise<string>;
134
+ /**
135
+ * Lightweight auth presence check. Mirrors Codex's pattern: prefer a
136
+ * keychain-mirrored env var (`OPENCODE_SERVER_PASSWORD` for remote);
137
+ * for the managed loopback server, the daemon owns the credentials so
138
+ * "configured" is sufficient. The deeper "is the provider key
139
+ * accepted?" check is exercised by `checkAuthDetailed`.
140
+ */
141
+ checkAuth(): Promise<{
142
+ ok: true;
143
+ method: "cli_login" | "api_key" | "oauth" | "vertex";
144
+ } | {
145
+ ok: false;
146
+ reason: string;
147
+ }>;
148
+ checkAuthDetailed(): Promise<AuthCheckResult>;
149
+ /**
150
+ * Phase 5 §4.11 — opencode does NOT expose namespaced `mcp__*` tool
151
+ * names through `client.tool.ids()` in 1.14.50 (V7 fixture confirms).
152
+ * Live probe is therefore unsupported on this backend in v1; the
153
+ * route surfaces this as a 501 with a targeted message. Phase 5+ may
154
+ * unlock once `mcp.status()`/`tool.list()` surfaces MCP tools.
155
+ */
156
+ probeTools(): Promise<string[]>;
157
+ /**
158
+ * Static-registry first; Phase 6 (§6.6.2 wizard probe) extends this
159
+ * via `serverManager.listModels()` once the live-server enumeration
160
+ * lands. Today the registry seed is sufficient for `BackendRouter`
161
+ * bindings.
162
+ */
163
+ listModels(): ReadonlyArray<BackendModel>;
164
+ /**
165
+ * Live model enumeration over `client.config.providers()`. Returns the
166
+ * full catalogue an operator can pick from — every provider the live
167
+ * opencode server has credentials for, with capability + cost metadata.
168
+ * Cached in-memory for 5 minutes so the picker doesn't re-bounce the
169
+ * server on every keystroke.
170
+ *
171
+ * Security: the raw `client.config.providers()` response includes
172
+ * `provider.key` (plaintext API key). This method NEVER returns that
173
+ * field — the caller surfaces what's projected here, not the raw SDK
174
+ * response.
175
+ */
176
+ listLiveModels(options?: {
177
+ forceRefresh?: boolean;
178
+ }): Promise<LiveOpencodeModelsResponse>;
179
+ private fetchLiveModels;
180
+ runDelegatedTool(_params: DelegatedToolInvokeParams): Promise<DelegatedToolResult>;
181
+ runDelegatedTask(params: DelegatedTaskInvokeParams): Promise<DelegatedTaskResultRaw>;
182
+ private runTurn;
183
+ /**
184
+ * docs/design/appendices/opencode-backend.md §5.9 / Phase 4 — opencode delegated-task
185
+ * execution.
186
+ *
187
+ * Implementation choice (v1): spawn an isolated ephemeral server
188
+ * with tight permission JSON for each delegated call. The design's
189
+ * preferred default is Path B (long-lived primary + per-agent
190
+ * permission frontmatter written mid-session), but Phase 0's V5
191
+ * fixture left the agent-file hot-reload behaviour an open question
192
+ * (§5.9 "Open item" — agent file was pre-created in V5). spawnEphemeral
193
+ * sidesteps the hot-reload concern entirely with a deterministic
194
+ * ~900 ms p50 spawn cost (V6 measurement); volume on delegated paths
195
+ * is low enough that the cost-isolation trade-off favours
196
+ * predictability. The router's `params.isolation === "ephemeral"`
197
+ * intent is the same as our default here, so callers that explicitly
198
+ * request ephemeral isolation get exactly what they asked for.
199
+ *
200
+ * Path B (long-lived primary + per-agent file reuse) can land
201
+ * incrementally once V5's open question is resolved against a real
202
+ * opencode server — see §5.9 Phase 3-blocked checklist row.
203
+ *
204
+ * Per-call envelope:
205
+ * - Tight `permission` JSON: every triple-keyed write tool
206
+ * (`edit`, `bash`, `webfetch`, `doom_loop`, `external_directory`)
207
+ * defaults to `deny`. The absolute-block layer's bash
208
+ * pattern-map merges on top so destructive shapes stay denied.
209
+ * - `tools.task: false` (V8 — kill subagent spawning) plus
210
+ * `tools.read: false` and `tools.write: false` for the
211
+ * non-MCP read/write tools (no permission triple exists for
212
+ * `read`; hard-disable is the only opencode 1.14.50 surface).
213
+ * - MCP map carries only the integration's connectors per
214
+ * `setMcpContext`; per-tool MCP deny is server-level only in v1
215
+ * (§5.6 v1 strategy) — disallowed connectors are simply not
216
+ * materialised.
217
+ * - `model` set to `params.modelId`.
218
+ *
219
+ * Stream pre-emption: opencode 1.14.50 does NOT emit
220
+ * `message.part.updated` events during a turn (V9 — see §5.3), so
221
+ * tool-call data is only available from the FINAL `session.prompt`
222
+ * response. The pre-emption check therefore happens AFTER the turn
223
+ * completes — `policy_violation` / `loop_aborted` classifications
224
+ * still surface, but the subprocess has already executed any
225
+ * out-of-envelope MCP call by the time we see it. Mitigation:
226
+ * 1. Server-level permission denies non-MCP write tools at
227
+ * enforcement time (the model receives a tool error and stops).
228
+ * 2. The MCP map only carries the integration's allowed
229
+ * connectors, so non-allowed MCP tools are unreachable.
230
+ * 3. The post-turn pre-emption check is the audit layer — it
231
+ * classifies whether the turn violated policy for telemetry.
232
+ * If opencode begins emitting streamed tool-call events, this method
233
+ * migrates to the live pre-emption pattern Codex uses; the post-
234
+ * extraction check stays as the back-stop.
235
+ */
236
+ private runDelegatedTaskAgainstEphemeral;
237
+ /**
238
+ * OPENCODE_BACKEND_DESIGN §5.1 / §5.8 — assemble the full per-session
239
+ * `OpencodeRuntimeConfig` envelope. Async because MCP materialization
240
+ * resolves secrets via the encrypted blob store.
241
+ *
242
+ * Self-contained: every field is set explicitly (or deliberately
243
+ * omitted), so the server-manager's bounce hash is stable across
244
+ * same-envelope turns. The §5.1 invariant.
245
+ */
246
+ private buildRuntimeConfig;
247
+ /**
248
+ * Per-session MCP materialization. Unlike Claude / Codex / Gemini —
249
+ * which write a backend-specific file under `<sessionDir>/.mcp.json`
250
+ * or `.codex/config.toml` — OpenCode receives MCP servers inline via
251
+ * `OPENCODE_CONFIG_CONTENT` (§5.1). The daemon therefore renders
252
+ * directly into a `Record<string, McpLocalConfig | McpRemoteConfig>`
253
+ * map and feeds it into `buildOpencodeRuntimeConfig`.
254
+ *
255
+ * Returns the rendered map + the autonomous-strip disallowedTools so
256
+ * the config builder can surface those as MCP-server warnings
257
+ * (per-tool MCP deny isn't expressible in opencode 1.14.50 — §5.6).
258
+ */
259
+ private materializeMcp;
260
+ private consumeEventStream;
261
+ private assertPromptWithinMaxBudget;
262
+ private assertWithinMaxBudget;
263
+ }
264
+ /**
265
+ * docs/design/appendices/opencode-backend.md §5.8 synthetic absolute-block audit. For
266
+ * every tool call extracted from the final `session.prompt` response,
267
+ * route through the shared `auditStreamObservation` chokepoint so a
268
+ * `blocked_absolute` row with `result='partial'` is written on a match.
269
+ *
270
+ * Two-step pipeline keeps the classifier centralised:
271
+ * 1. `extractOpencodeToolUseTarget` — opencode-specific tool/arg
272
+ * normalisation (`bash` / `read` / `write` / `edit` / `apply_patch`).
273
+ * 2. `auditStreamObservation` — runs `classifyAbsoluteBlock` against
274
+ * the normalised target and writes the audit row when matched.
275
+ *
276
+ * Why the `partial` result code: opencode enforces the deny inside the
277
+ * permission JSON at server side, which the daemon does not directly
278
+ * observe. The audit row records *that the agent attempted* a pattern
279
+ * the absolute-block layer covers — useful even if the underlying
280
+ * enforcement happened correctly server-side, and *critical* if a future
281
+ * permission-JSON regression silently let the call through.
282
+ *
283
+ * Exported for `opencode-core.test.ts` so the synthetic audit can be
284
+ * exercised without spinning up a full server.
285
+ */
286
+ export declare function auditOpencodeTools(tools: ReturnType<typeof extractToolUsesFromParts>, deps: {
287
+ db: import("better-sqlite3").Database | undefined;
288
+ mode: import("@aitne/shared").ExecutionPermissionMode;
289
+ sessionId: number | null;
290
+ }): void;
291
+ /**
292
+ * docs/design/appendices/opencode-backend.md Phase 4 — Stage 2 hourly-check triage
293
+ * schema. Mirrors the `parseStage2Verdict` text contract
294
+ * (`dispatcher-types.ts`): the agent must return exactly
295
+ * `{ "action": "log_only" | "escalate", "reason": string }`. Opencode
296
+ * validates against this schema with `retryCount: 2` server-side, then
297
+ * surfaces the parsed object at `info.structured`.
298
+ *
299
+ * Exported for the regression test that exercises the json_schema
300
+ * round-trip without spinning up a real opencode server.
301
+ */
302
+ export declare const STAGE2_TRIAGE_JSON_SCHEMA: {
303
+ readonly type: "object";
304
+ readonly properties: {
305
+ readonly action: {
306
+ readonly type: "string";
307
+ readonly enum: readonly ["log_only", "escalate"];
308
+ };
309
+ readonly reason: {
310
+ readonly type: "string";
311
+ };
312
+ };
313
+ readonly required: readonly ["action", "reason"];
314
+ readonly additionalProperties: false;
315
+ };
316
+ //# sourceMappingURL=opencode-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-core.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-core.ts"],"names":[],"mappings":"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"}