@aitne/daemon 0.1.2 → 0.1.4

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 (253) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
  3. package/dist/adapters/whatsapp-adapter.js +0 -1
  4. package/dist/adapters/whatsapp-adapter.js.map +1 -1
  5. package/dist/api/integration-route-gate.d.ts +15 -11
  6. package/dist/api/integration-route-gate.d.ts.map +1 -1
  7. package/dist/api/integration-route-gate.js +60 -23
  8. package/dist/api/integration-route-gate.js.map +1 -1
  9. package/dist/api/json-body.d.ts +22 -7
  10. package/dist/api/json-body.d.ts.map +1 -1
  11. package/dist/api/json-body.js +27 -8
  12. package/dist/api/json-body.js.map +1 -1
  13. package/dist/api/routes/agent.d.ts.map +1 -1
  14. package/dist/api/routes/agent.js +18 -0
  15. package/dist/api/routes/agent.js.map +1 -1
  16. package/dist/api/routes/backends.d.ts.map +1 -1
  17. package/dist/api/routes/backends.js +96 -1
  18. package/dist/api/routes/backends.js.map +1 -1
  19. package/dist/api/routes/books.js +1 -1
  20. package/dist/api/routes/books.js.map +1 -1
  21. package/dist/api/routes/context.d.ts.map +1 -1
  22. package/dist/api/routes/context.js +13 -1
  23. package/dist/api/routes/context.js.map +1 -1
  24. package/dist/api/routes/dashboard.d.ts.map +1 -1
  25. package/dist/api/routes/dashboard.js +75 -5
  26. package/dist/api/routes/dashboard.js.map +1 -1
  27. package/dist/api/routes/github.d.ts.map +1 -1
  28. package/dist/api/routes/github.js +38 -5
  29. package/dist/api/routes/github.js.map +1 -1
  30. package/dist/api/routes/integrations.d.ts +35 -6
  31. package/dist/api/routes/integrations.d.ts.map +1 -1
  32. package/dist/api/routes/integrations.js +191 -16
  33. package/dist/api/routes/integrations.js.map +1 -1
  34. package/dist/api/routes/mail.d.ts.map +1 -1
  35. package/dist/api/routes/mail.js +112 -46
  36. package/dist/api/routes/mail.js.map +1 -1
  37. package/dist/api/routes/observations.d.ts.map +1 -1
  38. package/dist/api/routes/observations.js +161 -8
  39. package/dist/api/routes/observations.js.map +1 -1
  40. package/dist/api/routes/setup-migrate.d.ts +9 -1
  41. package/dist/api/routes/setup-migrate.d.ts.map +1 -1
  42. package/dist/api/routes/setup-migrate.js +4 -2
  43. package/dist/api/routes/setup-migrate.js.map +1 -1
  44. package/dist/api/routes/skills.d.ts.map +1 -1
  45. package/dist/api/routes/skills.js +39 -1
  46. package/dist/api/routes/skills.js.map +1 -1
  47. package/dist/api/routes/voice.d.ts.map +1 -1
  48. package/dist/api/routes/voice.js +154 -14
  49. package/dist/api/routes/voice.js.map +1 -1
  50. package/dist/bootstrap/adapters.d.ts +109 -0
  51. package/dist/bootstrap/adapters.d.ts.map +1 -0
  52. package/dist/bootstrap/adapters.js +237 -0
  53. package/dist/bootstrap/adapters.js.map +1 -0
  54. package/dist/bootstrap/catchup.d.ts +23 -0
  55. package/dist/bootstrap/catchup.d.ts.map +1 -0
  56. package/dist/bootstrap/catchup.js +124 -0
  57. package/dist/bootstrap/catchup.js.map +1 -0
  58. package/dist/bootstrap/schedule-helpers.d.ts +18 -0
  59. package/dist/bootstrap/schedule-helpers.d.ts.map +1 -0
  60. package/dist/bootstrap/schedule-helpers.js +96 -0
  61. package/dist/bootstrap/schedule-helpers.js.map +1 -0
  62. package/dist/bootstrap/services.d.ts +60 -0
  63. package/dist/bootstrap/services.d.ts.map +1 -0
  64. package/dist/bootstrap/services.js +209 -0
  65. package/dist/bootstrap/services.js.map +1 -0
  66. package/dist/core/backends/backend-router.d.ts +23 -0
  67. package/dist/core/backends/backend-router.d.ts.map +1 -1
  68. package/dist/core/backends/backend-router.js +48 -3
  69. package/dist/core/backends/backend-router.js.map +1 -1
  70. package/dist/core/backends/claude-auth.d.ts +70 -0
  71. package/dist/core/backends/claude-auth.d.ts.map +1 -0
  72. package/dist/core/backends/claude-auth.js +198 -0
  73. package/dist/core/backends/claude-auth.js.map +1 -0
  74. package/dist/core/backends/claude-code-core.d.ts +47 -119
  75. package/dist/core/backends/claude-code-core.d.ts.map +1 -1
  76. package/dist/core/backends/claude-code-core.js +112 -1565
  77. package/dist/core/backends/claude-code-core.js.map +1 -1
  78. package/dist/core/backends/claude-delegated.d.ts +86 -0
  79. package/dist/core/backends/claude-delegated.d.ts.map +1 -0
  80. package/dist/core/backends/claude-delegated.js +801 -0
  81. package/dist/core/backends/claude-delegated.js.map +1 -0
  82. package/dist/core/backends/claude-errors.d.ts +39 -0
  83. package/dist/core/backends/claude-errors.d.ts.map +1 -0
  84. package/dist/core/backends/claude-errors.js +71 -0
  85. package/dist/core/backends/claude-errors.js.map +1 -0
  86. package/dist/core/backends/claude-probe.d.ts +103 -0
  87. package/dist/core/backends/claude-probe.d.ts.map +1 -0
  88. package/dist/core/backends/claude-probe.js +336 -0
  89. package/dist/core/backends/claude-probe.js.map +1 -0
  90. package/dist/core/backends/claude-tool-collection.d.ts +135 -0
  91. package/dist/core/backends/claude-tool-collection.d.ts.map +1 -0
  92. package/dist/core/backends/claude-tool-collection.js +831 -0
  93. package/dist/core/backends/claude-tool-collection.js.map +1 -0
  94. package/dist/core/backends/gemini-cli-core.d.ts +21 -0
  95. package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
  96. package/dist/core/backends/gemini-cli-core.js +84 -6
  97. package/dist/core/backends/gemini-cli-core.js.map +1 -1
  98. package/dist/core/backends/prompt-utils.d.ts +1 -0
  99. package/dist/core/backends/prompt-utils.d.ts.map +1 -1
  100. package/dist/core/backends/prompt-utils.js +60 -3
  101. package/dist/core/backends/prompt-utils.js.map +1 -1
  102. package/dist/core/context-builder.d.ts +36 -12
  103. package/dist/core/context-builder.d.ts.map +1 -1
  104. package/dist/core/context-builder.js +179 -89
  105. package/dist/core/context-builder.js.map +1 -1
  106. package/dist/core/dispatcher-date-utils.d.ts +49 -0
  107. package/dist/core/dispatcher-date-utils.d.ts.map +1 -0
  108. package/dist/core/dispatcher-date-utils.js +132 -0
  109. package/dist/core/dispatcher-date-utils.js.map +1 -0
  110. package/dist/core/dispatcher-error-handling.d.ts +159 -0
  111. package/dist/core/dispatcher-error-handling.d.ts.map +1 -0
  112. package/dist/core/dispatcher-error-handling.js +393 -0
  113. package/dist/core/dispatcher-error-handling.js.map +1 -0
  114. package/dist/core/dispatcher-hourly-check.d.ts +150 -0
  115. package/dist/core/dispatcher-hourly-check.d.ts.map +1 -0
  116. package/dist/core/dispatcher-hourly-check.js +665 -0
  117. package/dist/core/dispatcher-hourly-check.js.map +1 -0
  118. package/dist/core/dispatcher-message-handler.d.ts +170 -0
  119. package/dist/core/dispatcher-message-handler.d.ts.map +1 -0
  120. package/dist/core/dispatcher-message-handler.js +1054 -0
  121. package/dist/core/dispatcher-message-handler.js.map +1 -0
  122. package/dist/core/dispatcher-morning-routine.d.ts +169 -0
  123. package/dist/core/dispatcher-morning-routine.d.ts.map +1 -0
  124. package/dist/core/dispatcher-morning-routine.js +434 -0
  125. package/dist/core/dispatcher-morning-routine.js.map +1 -0
  126. package/dist/core/dispatcher-prompt.d.ts +107 -0
  127. package/dist/core/dispatcher-prompt.d.ts.map +1 -0
  128. package/dist/core/dispatcher-prompt.js +227 -0
  129. package/dist/core/dispatcher-prompt.js.map +1 -0
  130. package/dist/core/dispatcher-repository-helpers.d.ts +39 -0
  131. package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -0
  132. package/dist/core/dispatcher-repository-helpers.js +86 -0
  133. package/dist/core/dispatcher-repository-helpers.js.map +1 -0
  134. package/dist/core/dispatcher-result-processor.d.ts +145 -0
  135. package/dist/core/dispatcher-result-processor.d.ts.map +1 -0
  136. package/dist/core/dispatcher-result-processor.js +414 -0
  137. package/dist/core/dispatcher-result-processor.js.map +1 -0
  138. package/dist/core/dispatcher-scheduled-tasks.d.ts +406 -0
  139. package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -0
  140. package/dist/core/dispatcher-scheduled-tasks.js +998 -0
  141. package/dist/core/dispatcher-scheduled-tasks.js.map +1 -0
  142. package/dist/core/dispatcher-types.d.ts +296 -0
  143. package/dist/core/dispatcher-types.d.ts.map +1 -0
  144. package/dist/core/dispatcher-types.js +106 -0
  145. package/dist/core/dispatcher-types.js.map +1 -0
  146. package/dist/core/dispatcher.d.ts +86 -610
  147. package/dist/core/dispatcher.d.ts.map +1 -1
  148. package/dist/core/dispatcher.js +293 -3542
  149. package/dist/core/dispatcher.js.map +1 -1
  150. package/dist/core/integration-health.d.ts +18 -10
  151. package/dist/core/integration-health.d.ts.map +1 -1
  152. package/dist/core/integration-health.js +31 -1
  153. package/dist/core/integration-health.js.map +1 -1
  154. package/dist/core/integration-lifecycle.d.ts +65 -0
  155. package/dist/core/integration-lifecycle.d.ts.map +1 -1
  156. package/dist/core/integration-lifecycle.js +167 -16
  157. package/dist/core/integration-lifecycle.js.map +1 -1
  158. package/dist/core/integration-main-backend.d.ts +40 -0
  159. package/dist/core/integration-main-backend.d.ts.map +1 -1
  160. package/dist/core/integration-main-backend.js +89 -2
  161. package/dist/core/integration-main-backend.js.map +1 -1
  162. package/dist/core/management-md.d.ts +51 -17
  163. package/dist/core/management-md.d.ts.map +1 -1
  164. package/dist/core/management-md.js +233 -56
  165. package/dist/core/management-md.js.map +1 -1
  166. package/dist/core/output-language-policy.d.ts +74 -0
  167. package/dist/core/output-language-policy.d.ts.map +1 -0
  168. package/dist/core/output-language-policy.js +194 -0
  169. package/dist/core/output-language-policy.js.map +1 -0
  170. package/dist/core/prompts.d.ts +1 -0
  171. package/dist/core/prompts.d.ts.map +1 -1
  172. package/dist/core/prompts.js +121 -3
  173. package/dist/core/prompts.js.map +1 -1
  174. package/dist/core/repository-management-docs.d.ts +24 -0
  175. package/dist/core/repository-management-docs.d.ts.map +1 -1
  176. package/dist/core/repository-management-docs.js +210 -26
  177. package/dist/core/repository-management-docs.js.map +1 -1
  178. package/dist/core/routine-acquisition-plan.d.ts +131 -0
  179. package/dist/core/routine-acquisition-plan.d.ts.map +1 -0
  180. package/dist/core/routine-acquisition-plan.js +268 -0
  181. package/dist/core/routine-acquisition-plan.js.map +1 -0
  182. package/dist/core/routine-fetch-window-runner.d.ts +201 -0
  183. package/dist/core/routine-fetch-window-runner.d.ts.map +1 -0
  184. package/dist/core/routine-fetch-window-runner.js +661 -0
  185. package/dist/core/routine-fetch-window-runner.js.map +1 -0
  186. package/dist/core/routine-windows.d.ts +156 -0
  187. package/dist/core/routine-windows.d.ts.map +1 -0
  188. package/dist/core/routine-windows.js +330 -0
  189. package/dist/core/routine-windows.js.map +1 -0
  190. package/dist/core/skills-compiler.d.ts +11 -0
  191. package/dist/core/skills-compiler.d.ts.map +1 -1
  192. package/dist/core/skills-compiler.js +102 -13
  193. package/dist/core/skills-compiler.js.map +1 -1
  194. package/dist/core/skills-manifest.d.ts.map +1 -1
  195. package/dist/core/skills-manifest.js +26 -0
  196. package/dist/core/skills-manifest.js.map +1 -1
  197. package/dist/core/system-reset.d.ts.map +1 -1
  198. package/dist/core/system-reset.js +25 -2
  199. package/dist/core/system-reset.js.map +1 -1
  200. package/dist/db/observations.d.ts +45 -2
  201. package/dist/db/observations.d.ts.map +1 -1
  202. package/dist/db/observations.js +112 -14
  203. package/dist/db/observations.js.map +1 -1
  204. package/dist/db/schema.d.ts.map +1 -1
  205. package/dist/db/schema.js +13 -25
  206. package/dist/db/schema.js.map +1 -1
  207. package/dist/index.js +83 -610
  208. package/dist/index.js.map +1 -1
  209. package/dist/observers/delegated-sync-worker.d.ts +45 -2
  210. package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
  211. package/dist/observers/delegated-sync-worker.js +71 -21
  212. package/dist/observers/delegated-sync-worker.js.map +1 -1
  213. package/dist/observers/mail-poller.d.ts +12 -5
  214. package/dist/observers/mail-poller.d.ts.map +1 -1
  215. package/dist/observers/mail-poller.js +36 -14
  216. package/dist/observers/mail-poller.js.map +1 -1
  217. package/dist/observers/manager.d.ts +37 -5
  218. package/dist/observers/manager.d.ts.map +1 -1
  219. package/dist/observers/manager.js +28 -10
  220. package/dist/observers/manager.js.map +1 -1
  221. package/dist/safety/risk-classifier.d.ts.map +1 -1
  222. package/dist/safety/risk-classifier.js +5 -0
  223. package/dist/safety/risk-classifier.js.map +1 -1
  224. package/dist/services/delegated-backend-invoker.d.ts +1 -51
  225. package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
  226. package/dist/services/delegated-backend-invoker.js +41 -480
  227. package/dist/services/delegated-backend-invoker.js.map +1 -1
  228. package/dist/services/delegated-invoker-audit.d.ts +94 -0
  229. package/dist/services/delegated-invoker-audit.d.ts.map +1 -0
  230. package/dist/services/delegated-invoker-audit.js +238 -0
  231. package/dist/services/delegated-invoker-audit.js.map +1 -0
  232. package/dist/services/delegated-invoker-cache-hits.d.ts +34 -0
  233. package/dist/services/delegated-invoker-cache-hits.d.ts.map +1 -0
  234. package/dist/services/delegated-invoker-cache-hits.js +104 -0
  235. package/dist/services/delegated-invoker-cache-hits.js.map +1 -0
  236. package/dist/services/delegated-invoker-janitors.d.ts +28 -0
  237. package/dist/services/delegated-invoker-janitors.d.ts.map +1 -0
  238. package/dist/services/delegated-invoker-janitors.js +104 -0
  239. package/dist/services/delegated-invoker-janitors.js.map +1 -0
  240. package/dist/services/delegated-invoker-utils.d.ts +42 -0
  241. package/dist/services/delegated-invoker-utils.d.ts.map +1 -0
  242. package/dist/services/delegated-invoker-utils.js +100 -0
  243. package/dist/services/delegated-invoker-utils.js.map +1 -0
  244. package/dist/services/delegated-task-runtime.d.ts +1 -1
  245. package/dist/services/delegated-task-runtime.js +1 -1
  246. package/dist/services/integrations/snapshot-partitions.d.ts +5 -0
  247. package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -1
  248. package/dist/services/integrations/snapshot-partitions.js +12 -0
  249. package/dist/services/integrations/snapshot-partitions.js.map +1 -1
  250. package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
  251. package/dist/services/voice/transcriber-impl.js +46 -0
  252. package/dist/services/voice/transcriber-impl.js.map +1 -1
  253. package/package.json +12 -12
@@ -25,23 +25,47 @@ export declare class ContextBuilder implements IContextBuilder {
25
25
  */
26
26
  private computeCalendarWindow;
27
27
  /**
28
- * Build a `<calendar_events_…>` context block, honouring Google Calendar
29
- * integration mode:
28
+ * Build a `<calendar_events_…>` context block honouring every active
29
+ * calendar provider × mode cell.
30
30
  *
31
- * - **direct + service available** → embed the formatted event list (prior
32
- * behaviour).
33
- * - **delegated** the daemon has no local CalendarService to call. Emit
34
- * a structured directive telling the task-flow agent to fetch the same
35
- * window itself via its backend's Google Calendar MCP tool and treat the
36
- * response as the contents of this block.
37
- * - **direct but service broken / disabled** → emit the legacy
38
- * `<calendar_status>` unavailable line so the flow degrades gracefully.
31
+ * ROUTINE_DATA_ACQUISITION_DESIGN.md §6.6 the block wraps one
32
+ * `<provider key="…" mode="…">…</provider>` sub-block per active
33
+ * provider so the parent routine sees a uniform shape regardless of
34
+ * which provider(s) the operator has configured. Per-provider body:
35
+ *
36
+ * - **direct + matching service available** → inline formatted event
37
+ * list fetched by the daemon's `services.calendar` (Google today;
38
+ * Outlook gets the same path once a dedicated `services.outlookCalendar`
39
+ * lands — for now Outlook direct mode emits a service-unavailable
40
+ * note so the flow degrades gracefully).
41
+ * - **delegated** → a structured directive instructing the agent to
42
+ * call the relevant MCP tool (same-backend) or the daemon's
43
+ * `/api/integrations/<key>/exec` proxy (cross-backend). For
44
+ * `userManagedConnector` providers (Outlook today) the proxy
45
+ * branch is suppressed — same-backend and cross-backend collapse
46
+ * onto the session's MCP.
47
+ * - **native** → directive that points at the session backend's MCP
48
+ * only. No daemon proxy: native bindings never fall back to the
49
+ * daemon (R7 from the design doc).
50
+ * - **disabled** → provider sub-block omitted entirely.
51
+ *
52
+ * When no provider is active, emit the legacy
53
+ * `<calendar_status>not available</calendar_status>` so routine flows
54
+ * that branch on the unavailable marker keep working.
39
55
  *
40
56
  * All callers funnel through this method so the three surfaces
41
- * (morning / evening / weekly+monthly and the agent-task path) stay in
42
- * lock-step when delegated-mode handling changes.
57
+ * (morning / evening / weekly+monthly and the agent-task path) stay
58
+ * in lock-step when integration handling changes.
43
59
  */
44
60
  private buildCalendarBlock;
61
+ /**
62
+ * Emit one provider sub-block for `buildCalendarBlock`. Returns null
63
+ * when the provider is disabled (or, for native mode, the binding
64
+ * does not apply to a meaningful path — the agent reads
65
+ * `<integration_modes>` to decide whether its session backend is the
66
+ * native one).
67
+ */
68
+ private buildCalendarProviderBlock;
45
69
  /**
46
70
  * Fetch calendar events for the next N days and format as markdown.
47
71
  * Groups events by date with day-of-week and Today/Tomorrow labels.
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,KAAK,EAEN,MAAM,eAAe,CAAC;AAiBvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAYhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAiBvE,qBAAa,cAAe,YAAW,eAAe;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,eAAe;IAG5C;;;;;;;OAOG;IACH,OAAO,KAAK,kBAAkB,GAK7B;IAEK,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAsa1C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;;;;;;;;;;;;;OAgBG;YACW,kBAAkB;IAkDhC;;;;OAIG;YACW,mBAAmB;IAsBjC,6CAA6C;IAC7C,OAAO,CAAC,oBAAoB;IAwD5B,4DAA4D;IAC5D,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAKvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,+BAA+B;IAsCvC,OAAO,CAAC,sBAAsB;IAkH9B,OAAO,CAAC,4BAA4B;IAmGpC,OAAO,CAAC,2BAA2B;YAuCrB,QAAQ;YAYR,0BAA0B;IAmDxC;;;;;;;;;OASG;IACH,OAAO,CAAC,4BAA4B;YAsDtB,2BAA2B;IA+GzC;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;CA8E/B"}
1
+ {"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,KAAK,EAEN,MAAM,eAAe,CAAC;AAkBvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAahD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAgBvE,qBAAa,cAAe,YAAW,eAAe;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,eAAe;IAG5C;;;;;;;OAOG;IACH,OAAO,KAAK,kBAAkB,GAK7B;IAEK,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IA8b1C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;YACW,kBAAkB;IAoChC;;;;;;OAMG;YACW,0BAA0B;IA4FxC;;;;OAIG;YACW,mBAAmB;IAsBjC,6CAA6C;IAC7C,OAAO,CAAC,oBAAoB;IAwD5B,4DAA4D;IAC5D,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAKvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,+BAA+B;IAsCvC,OAAO,CAAC,sBAAsB;IAkH9B,OAAO,CAAC,4BAA4B;IAmGpC,OAAO,CAAC,2BAA2B;YAuCrB,QAAQ;YAYR,0BAA0B;IAmDxC;;;;;;;;;OASG;IACH,OAAO,CAAC,4BAA4B;YAsDtB,2BAA2B;IA+GzC;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;CA8E/B"}
@@ -1,16 +1,16 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { existsSync, readdirSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- import { AGENT_ROLE_DESCRIPTOR, APP_NAME, formatAgentOutboundLabel, formatSqliteDatetime, isRoutineEvent, isMessageEvent, isScheduledDmEvent, isScheduledEvent, localDateStr, normalizeAgentDisplayName, nowInTimezone, getAgentDayBoundsUtc, getAgentDayDateStr, parseSqliteUtcMs, } from "@aitne/shared";
4
+ import { AGENT_ROLE_DESCRIPTOR, APP_NAME, formatAgentOutboundLabel, formatSqliteDatetime, isRoutineEvent, isMessageEvent, isScheduledDmEvent, isScheduledEvent, localDateStr, normalizeAgentDisplayName, nowInTimezone, getAgentDayBoundsUtc, getAgentDayDateStr, getIntegrationDescriptor, parseSqliteUtcMs, } from "@aitne/shared";
5
5
  import { getContextDir } from "../config.js";
6
6
  import { getDegradedMode } from "../db/runtime-state.js";
7
7
  import { readIntegrations } from "../db/integrations-store.js";
8
8
  import { CONTEXT_RELATIVE_PATHS } from "./context-paths.js";
9
+ import { renderOutputLanguagePolicyBlock } from "./output-language-policy.js";
9
10
  import { OWNER_DM_SCOPE, OWNER_SCOPE_KEY, DASHBOARD_CHAT_SCOPE, DASHBOARD_SCOPE_KEY, getConversationScope, } from "../messaging/constants.js";
10
11
  import { getProactiveForwardType, isProactiveForwardMetadata, metadataDispatchIds, parseMessageMetadata, } from "./channel-timeline.js";
11
12
  import { createLogger } from "../logging.js";
12
13
  import { truncateRoadmap } from "./roadmap-truncate.js";
13
- import { isIntegrationDelegated } from "./integration-lifecycle.js";
14
14
  const logger = createLogger("context-builder");
15
15
  const YESTERDAY_AGENT_ACTION_LIMIT = 40;
16
16
  const YESTERDAY_MESSAGE_LIMIT = 60;
@@ -132,6 +132,27 @@ export class ContextBuilder {
132
132
  typeof event.data.gateDecision.block === "string") {
133
133
  sections.push(event.data.gateDecision.block);
134
134
  }
135
+ // ROUTINE_DATA_ACQUISITION_DESIGN.md §6.4 — the pre-pass fetcher
136
+ // (`routine.fetch_window`) receives an `<acquisition-plan>` block
137
+ // assembled by the dispatcher before this session is spawned. The
138
+ // block carries one `<fetch>` element per (integration × mode ×
139
+ // account) tuple the routine needs. Injected verbatim so the
140
+ // fetcher's task-flow body and acquisition partials can iterate
141
+ // over the rows. Always emitted when present, regardless of event
142
+ // type — the surrounding task-flow is the only consumer.
143
+ if (typeof event.data?.acquisitionPlanBlock === "string") {
144
+ sections.push(event.data.acquisitionPlanBlock);
145
+ }
146
+ // ROUTINE_DATA_ACQUISITION_DESIGN.md §6.4 / Phase 4 D1 — the parent
147
+ // routine session receives a `<fetch_report>` block summarising the
148
+ // pre-pass run that immediately preceded it. The block carries the
149
+ // JSON return shape (`fetched`/`posted`/`duplicates`/`errors`) so
150
+ // the routine knows whether to trust pending observations or to
151
+ // proceed cautiously. Injected verbatim — the dispatcher owns the
152
+ // block's wire format.
153
+ if (typeof event.data?.fetchReportBlock === "string") {
154
+ sections.push(event.data.fetchReportBlock);
155
+ }
135
156
  // The <obsidian_vault_path> prompt fragment always points at the EXTERNAL
136
157
  // Obsidian vault (CLI skill target), never the agent's primary vault.
137
158
  // Kept verbatim for skill compatibility even after the field rename.
@@ -145,15 +166,20 @@ export class ContextBuilder {
145
166
  const primaryLanguage = this.config.primaryLanguage ?? "en";
146
167
  const vaultMode = this.config.vaultMode ?? "plain";
147
168
  sections.push(`<settings primary_language="${primaryLanguage}" vault_mode="${vaultMode}" />`);
148
- // Integration modes expose the current `direct | delegated | disabled`
169
+ // Single source of truth for the output-language rule (design
170
+ // `output-language-policy.md`). Refreshed per-turn so it tracks
171
+ // runtime `PATCH /api/config` changes to `primaryLanguage`. Task-flows
172
+ // and skills reference `<output_language_policy>` instead of restating
173
+ // the rule themselves.
174
+ sections.push(renderOutputLanguagePolicyBlock(primaryLanguage));
175
+ // Integration modes — expose the current `direct | delegated | native | disabled`
149
176
  // state of every registered integration so task-flows can branch without
150
177
  // re-reading the DB or relying on "is this MCP tool in my allowed-tools
151
178
  // list" self-introspection, which is unreliable across backends. For
152
- // delegated keys, also emit `<key>_delegated_to="<backend>"` so the
153
- // hourly_check delegated variants can pick the cross-backend proxy path
154
- // vs the same-backend native MCP path per integration without reading
155
- // `~/.personal-agent/integrations.md` themselves
156
- // (DELEGATED-MODE-V2-DESIGN.md §5.4).
179
+ // delegated keys we emit `<key>_delegated_to="<backend>"`; for native
180
+ // keys we emit `<key>_native_backend="<backend>"` so the native variants
181
+ // can route per integration without reading `~/.personal-agent/integrations.md`
182
+ // themselves (DELEGATED-MODE-V2-DESIGN.md §5.4 + INTEGRATION_NATIVE_MODE_DESIGN.md §8.2).
157
183
  const integrationsSnapshot = readIntegrations(this.db);
158
184
  const integrationAttrs = Object.entries(integrationsSnapshot)
159
185
  .flatMap(([key, state]) => {
@@ -161,6 +187,9 @@ export class ContextBuilder {
161
187
  if (state.mode === "delegated" && state.delegatedBackend) {
162
188
  attrs.push(`${key}_delegated_to="${state.delegatedBackend}"`);
163
189
  }
190
+ if (state.mode === "native" && state.nativeBackend) {
191
+ attrs.push(`${key}_native_backend="${state.nativeBackend}"`);
192
+ }
164
193
  return attrs;
165
194
  })
166
195
  .join(" ");
@@ -225,21 +254,19 @@ export class ContextBuilder {
225
254
  // cheapest source (already AI-condensed by the dispatcher).
226
255
  const dmLog7d = this.buildRecentDmConversationLog(7);
227
256
  sections.push(`<recent_dm_conversation_log days="7">\n${dmLog7d}\n</recent_dm_conversation_log>`);
228
- // Signal calendar availabilityagent fetches 90-day events itself.
229
- // The delegated variant of this task flow bypasses `<calendar_status>`
230
- // and goes straight to the backend connector's list_events / search
231
- // tool; the delegated branch below keeps the hint informational so
232
- // the prompt stays legible when the variant isn't loaded for some
233
- // reason (e.g. hot-switch in progress).
234
- if (isIntegrationDelegated(this.db, "google_calendar")) {
235
- sections.push(`<calendar_status>Google Calendar is delegated. Use the backend connector's list_events / search tool for the 90-day window — direct /api/calendar/* returns 410.</calendar_status>`);
236
- }
237
- else if (this.services.calendar?.available) {
238
- sections.push(`<calendar_status>Calendar service available. Use GET /api/calendar/events?date=today&days=90 to fetch events.</calendar_status>`);
239
- }
240
- else {
241
- sections.push(`<calendar_status>Calendar service not available. Skip calendar-based sections — preserve existing roadmap content.</calendar_status>`);
242
- }
257
+ // 90-day multi-provider calendar windowsame shape as morning /
258
+ // evening / weekly / monthly so every review-style routine sees one
259
+ // uniform, mode-aware surface. The block embeds per-(provider, mode)
260
+ // directives: direct mode inlines events, delegated / native mode
261
+ // emit MCP / proxy fetch directives, disabled providers are
262
+ // omitted, and when zero providers are active the helper falls back
263
+ // to the legacy `<calendar_status>not available>` form — which the
264
+ // task-flow prose recognises as the "skip calendar steps" signal.
265
+ // This unification eliminates the pre-fix asymmetry where the
266
+ // 3-arm hardcoded conditional silently filed native bindings under
267
+ // the else branch and emitted "preserve existing roadmap content",
268
+ // bricking roadmap.md generation for native-mode operators.
269
+ sections.push(await this.buildCalendarBlock(90, "calendar_events_90d"));
243
270
  }
244
271
  else if (event.routine === "evening_review") {
245
272
  const [roadmapMd, activeProjects] = await Promise.all([
@@ -275,20 +302,22 @@ export class ContextBuilder {
275
302
  }
276
303
  }
277
304
  else if (event.routine === "today_refresh") {
278
- // Dashboard-triggered manual refresh of today.md's User Schedule
279
- // section. The task flow fetches calendar events itself (so the
280
- // flow body works uniformly across direct and delegated modes);
281
- // this status hint is informational and mainly helps the direct
282
- // path distinguish configured-but-unavailable from delegated.
283
- if (isIntegrationDelegated(this.db, "google_calendar")) {
284
- sections.push(`<calendar_status>Google Calendar is delegated. Fetch today's events via the backend connector's list_events / search tool — direct /api/calendar/* returns 410.</calendar_status>`);
285
- }
286
- else if (this.services.calendar?.available) {
287
- sections.push(`<calendar_status>Calendar service available. Use GET /api/calendar/events?date=today&days=1 to fetch today's events.</calendar_status>`);
288
- }
289
- else {
290
- sections.push(`<calendar_status>Calendar service not available. If direct /api/calendar returns 503 or 410, log and skip the User Schedule rewrite.</calendar_status>`);
291
- }
305
+ // ROUTINE_DATA_ACQUISITION_DESIGN.md Phase 4 / Phase 3 R3 —
306
+ // dashboard-triggered manual refresh. The pre-pass fetcher
307
+ // (`routine.fetch_window`) acquires the day's calendar window
308
+ // for every active calendar provider ahead of this session and
309
+ // POSTs results to `/api/observations`; the `<fetch_report>`
310
+ // block injected just above tells the routine whether the
311
+ // pre-pass succeeded. The legacy per-mode REST recipe in this
312
+ // hint encouraged the routine to re-fetch on its own — wasteful
313
+ // since the server's `contentHash` would 409 every row, and
314
+ // misleading after partials were lifted to the pre-pass per
315
+ // §6.8. The narrowed hint below documents the post-Phase-4
316
+ // contract: read pending observations, consult `<fetch_report>`
317
+ // for status, skip the rewrite when no calendar provider is
318
+ // configured at all (covered by `<integration_modes>` already,
319
+ // but kept here as a one-line breadcrumb for the routine prose).
320
+ sections.push(`<calendar_status>Pre-pass populated calendar observations ahead of this session. Read GET /api/observations?pending=true&source_prefix=google_calendar:,outlook_calendar: and consult <fetch_report> for pre-pass status. If <fetch_report status="failed"> or no rows, log a one-line skip to ## Agent Log and leave User Schedule untouched.</calendar_status>`);
292
321
  }
293
322
  else if (event.routine === "weekly_review" ||
294
323
  event.routine === "monthly_review") {
@@ -379,68 +408,129 @@ export class ContextBuilder {
379
408
  };
380
409
  }
381
410
  /**
382
- * Build a `<calendar_events_…>` context block, honouring Google Calendar
383
- * integration mode:
411
+ * Build a `<calendar_events_…>` context block honouring every active
412
+ * calendar provider × mode cell.
413
+ *
414
+ * ROUTINE_DATA_ACQUISITION_DESIGN.md §6.6 — the block wraps one
415
+ * `<provider key="…" mode="…">…</provider>` sub-block per active
416
+ * provider so the parent routine sees a uniform shape regardless of
417
+ * which provider(s) the operator has configured. Per-provider body:
384
418
  *
385
- * - **direct + service available** → embed the formatted event list (prior
386
- * behaviour).
387
- * - **delegated** → the daemon has no local CalendarService to call. Emit
388
- * a structured directive telling the task-flow agent to fetch the same
389
- * window itself via its backend's Google Calendar MCP tool and treat the
390
- * response as the contents of this block.
391
- * - **direct but service broken / disabled** → emit the legacy
392
- * `<calendar_status>` unavailable line so the flow degrades gracefully.
419
+ * - **direct + matching service available** → inline formatted event
420
+ * list fetched by the daemon's `services.calendar` (Google today;
421
+ * Outlook gets the same path once a dedicated `services.outlookCalendar`
422
+ * lands for now Outlook direct mode emits a service-unavailable
423
+ * note so the flow degrades gracefully).
424
+ * - **delegated** a structured directive instructing the agent to
425
+ * call the relevant MCP tool (same-backend) or the daemon's
426
+ * `/api/integrations/<key>/exec` proxy (cross-backend). For
427
+ * `userManagedConnector` providers (Outlook today) the proxy
428
+ * branch is suppressed — same-backend and cross-backend collapse
429
+ * onto the session's MCP.
430
+ * - **native** → directive that points at the session backend's MCP
431
+ * only. No daemon proxy: native bindings never fall back to the
432
+ * daemon (R7 from the design doc).
433
+ * - **disabled** → provider sub-block omitted entirely.
434
+ *
435
+ * When no provider is active, emit the legacy
436
+ * `<calendar_status>not available</calendar_status>` so routine flows
437
+ * that branch on the unavailable marker keep working.
393
438
  *
394
439
  * All callers funnel through this method so the three surfaces
395
- * (morning / evening / weekly+monthly and the agent-task path) stay in
396
- * lock-step when delegated-mode handling changes.
440
+ * (morning / evening / weekly+monthly and the agent-task path) stay
441
+ * in lock-step when integration handling changes.
397
442
  */
398
443
  async buildCalendarBlock(days, blockName) {
399
444
  const integrations = readIntegrations(this.db);
400
- const calendarMode = integrations.google_calendar?.mode ?? "disabled";
401
- // Delegated mode wins over a live `services.calendar` — if the user
402
- // set the integration to delegated, respect that even if Google
403
- // credentials are still resident. Using the direct path here would
404
- // silently violate the mode invariant and leave the MCP tool surface
405
- // (exposed to the session) out of sync with the data surface.
406
- if (calendarMode === "delegated") {
407
- const { timeMin, timeMax } = this.computeCalendarWindow(days);
445
+ const { timeMin, timeMax } = this.computeCalendarWindow(days);
446
+ const subblocks = [];
447
+ const googleSub = await this.buildCalendarProviderBlock("google_calendar", "Google Calendar", integrations.google_calendar?.mode ?? "disabled", days, timeMin, timeMax);
448
+ if (googleSub)
449
+ subblocks.push(googleSub);
450
+ const outlookSub = await this.buildCalendarProviderBlock("outlook_calendar", "Outlook Calendar", integrations.outlook_calendar?.mode ?? "disabled", days, timeMin, timeMax);
451
+ if (outlookSub)
452
+ subblocks.push(outlookSub);
453
+ if (subblocks.length === 0) {
454
+ // Match the legacy single-line shape so existing prose that greps
455
+ // for `<calendar_status>not available` keeps matching.
456
+ return `<calendar_status>Calendar service not available. No calendar provider is configured for this window.</calendar_status>`;
457
+ }
458
+ return [
459
+ `<${blockName} days="${days}" timeMin="${timeMin}" timeMax="${timeMax}">`,
460
+ ...subblocks,
461
+ `</${blockName}>`,
462
+ ].join("\n");
463
+ }
464
+ /**
465
+ * Emit one provider sub-block for `buildCalendarBlock`. Returns null
466
+ * when the provider is disabled (or, for native mode, the binding
467
+ * does not apply to a meaningful path — the agent reads
468
+ * `<integration_modes>` to decide whether its session backend is the
469
+ * native one).
470
+ */
471
+ async buildCalendarProviderBlock(key, displayName, mode, days, timeMin, timeMax) {
472
+ if (mode === "disabled")
473
+ return null;
474
+ const open = ` <provider key="${key}" mode="${mode}">`;
475
+ const close = " </provider>";
476
+ if (mode === "direct") {
477
+ // Today only `services.calendar` (Google) is wired. Outlook direct
478
+ // mode reaches `GET /api/calendar/outlook` from the task flow; the
479
+ // context block surfaces a service-status hint until a daemon-side
480
+ // CalendarService for Outlook lands. Either way the agent can fall
481
+ // back to its own direct REST call from the task flow.
482
+ if (key === "google_calendar" && this.services.calendar) {
483
+ const inline = await this.fetchCalendarEvents(days);
484
+ if (inline !== null) {
485
+ return [open, inline, close].join("\n");
486
+ }
487
+ }
408
488
  return [
409
- `<${blockName} mode="delegated" timeMin="${timeMin}" timeMax="${timeMax}" days="${days}">`,
410
- "Calendar is delegated see `<integration_modes>`. Fetch this",
411
- "window yourself, then treat the returned events as the contents",
412
- "of this block for the rest of the task flow. Pick the path by",
413
- "your session backend vs `<integration_modes>.google_calendar_delegated_to`:",
414
- "",
415
- " Same-backend (delegated_to == your session backend) — use your",
416
- " native Google Calendar MCP tool:",
417
- ` Claude: mcp__claude_ai_Google_Calendar__list_events(calendarId="primary", timeMin="${timeMin}", timeMax="${timeMax}", maxResults=50)`,
418
- ` Codex: mcp__codex_apps__google_calendar._search(timeMin="${timeMin}", timeMax="${timeMax}")`,
419
- ` Gemini: mcp_google-workspace_calendar.listEvents(timeMin="${timeMin}", timeMax="${timeMax}", maxResults=50)`,
420
- "",
421
- " Cross-backend (delegated_to != your session backend) — call the",
422
- " daemon's task-mode endpoint with a natural-language `task` and",
423
- " `outputSchema`, so the configured account is used (your own",
424
- " backend's Google MCP would query the wrong account):",
425
- " curl -s -X POST http://localhost:8321/api/integrations/google_calendar/exec \\",
426
- " -H 'Content-Type: application/json' \\",
427
- ` -d '{"task":"List every event on my primary calendar between ${timeMin} and ${timeMax}. Return id, title, start, end, attendees.","outputSchema":{"type":"object","required":["events"],"properties":{"events":{"type":"array","items":{"type":"object","required":["id","title","start","end"]}}}},"maxToolCalls":3,"cacheable":true}'`,
428
- " Do NOT call `/api/calendar/events` (returns 410 in delegated mode).",
429
- "",
430
- "If the call errors out, log one line to ## Agent Log and proceed",
431
- "as if the window were empty. Do NOT emit `(calendar unavailable)`",
432
- "as a user-visible marker — that string is reserved for the case",
433
- "where the tool itself is missing (mode misconfigured).",
434
- `</${blockName}>`,
489
+ open,
490
+ `${displayName}: direct mode, daemon service not initialized for this window.`,
491
+ `Fetch yourself via the task flow's direct-mode endpoint (Google: /api/calendar/events; Outlook: /api/calendar/outlook).`,
492
+ close,
435
493
  ].join("\n");
436
494
  }
437
- if (this.services.calendar) {
438
- const section = await this.fetchCalendarEvents(days);
439
- if (section !== null)
440
- return `<${blockName}>\n${section}\n</${blockName}>`;
495
+ if (mode === "delegated") {
496
+ // CLAUDE.md: "Never hardcode an integration reference outside the
497
+ // registry." `userManagedConnector` is the registry's source of
498
+ // truth for whether the daemon ships a `/api/integrations/<key>/
499
+ // exec` proxy. Reading it from the descriptor means a future
500
+ // user-managed integration (Proton, custom MCP, etc.) inherits
501
+ // the right branch without touching this method.
502
+ const isUserManaged = getIntegrationDescriptor(key).userManagedConnector === true;
503
+ const lines = [
504
+ open,
505
+ `${displayName} is delegated — see \`<integration_modes>\`. Fetch the window`,
506
+ `(timeMin=${timeMin}, timeMax=${timeMax}) and treat the returned events as`,
507
+ `the contents of this provider block for the rest of the task flow.`,
508
+ "",
509
+ " Same-backend (delegated_to == your session backend) — use your",
510
+ ` session's ${displayName} MCP tool (whichever your skills document).`,
511
+ ];
512
+ if (!isUserManaged) {
513
+ lines.push("", " Cross-backend (delegated_to != your session backend) — call", " the daemon's task-mode endpoint so the configured account is used:", ` POST http://localhost:8321/api/integrations/${key}/exec`, ` task: List every event between ${timeMin} and ${timeMax}.`, ` outputSchema: { events: [ { id, title, start, end } ] }`, ` Do NOT call /api/calendar/* (returns 410 in delegated mode).`);
514
+ }
515
+ else {
516
+ lines.push("", " Cross-backend: not available for Outlook (user-managed connector,", " no daemon proxy). Fall through to the session's MCP regardless.");
517
+ }
518
+ lines.push("", "If the call errors out, log one line to `## Agent Log` and proceed", "as if the window were empty.", close);
519
+ return lines.join("\n");
441
520
  }
442
- // Direct mode with no service (not configured / init failed) or disabled.
443
- return `<calendar_status>Calendar service not available. Google Calendar is not configured or failed to initialize.</calendar_status>`;
521
+ // mode === "native"
522
+ return [
523
+ open,
524
+ `${displayName} is in native mode — see \`<integration_modes>.${key}_native_to\`.`,
525
+ `Fetch this window (timeMin=${timeMin}, timeMax=${timeMax}) yourself via your`,
526
+ `session backend's ${displayName} MCP surface. Do NOT call /api/calendar/*`,
527
+ `or /api/integrations/*/exec — native mode has no daemon proxy.`,
528
+ "",
529
+ `If the native binding does not match your session backend (check`,
530
+ `\`${key}_native_to\`), treat this provider as unavailable for this turn`,
531
+ `and log one line to \`## Agent Log\`.`,
532
+ close,
533
+ ].join("\n");
444
534
  }
445
535
  /**
446
536
  * Fetch calendar events for the next N days and format as markdown.
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/core/context-builder.ts"],"names":[],"mappings":"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"}