@xopcai/xopc 0.0.247 → 0.0.249

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 (509) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/src/update-offset-store.js +17 -54
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/extensions/weixin/src/auth/accounts.js +3 -5
  5. package/dist/extensions/weixin/src/monitor/monitor.js +3 -5
  6. package/dist/extensions/weixin/src/storage/sync-buf.d.ts +3 -6
  7. package/dist/extensions/weixin/src/storage/sync-buf.js +9 -22
  8. package/dist/gateway/static/root/assets/{activity-store-BlxqErph.js → activity-store-B759R_qf.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DmaFeojS.js → agent-avatar-dicebear-BUu7EnwM.js} +1 -1
  10. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-C1rXNUAG.js +1 -0
  11. package/dist/gateway/static/root/assets/agents-DK9HjHO0.js +1 -0
  12. package/dist/gateway/static/root/assets/{api-BbXzyQMj.js → api-Cg0v7Lpn.js} +1 -1
  13. package/dist/gateway/static/root/assets/app-management-settings-panel-C9DkCW_d.js +1 -0
  14. package/dist/gateway/static/root/assets/appearance-settings-CFggS95Y.js +1 -0
  15. package/dist/gateway/static/root/assets/apps-page-jOvT-fzU.js +1 -0
  16. package/dist/gateway/static/root/assets/{archive-plugin-DD2SweEH.js → archive-plugin-BQrilVVv.js} +1 -1
  17. package/dist/gateway/static/root/assets/{attachment-load-BG82bNBQ.js → attachment-load-BG0BliqV.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automations-page-CqBZ89He.js → automations-page-Bo4RiTkh.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-workspace-BKjKTlW8.js +6 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-B6LKm5Zv.js → binary-plugins-BCnyNU0C.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-BJKvGVXd.js → block-editor-Db8DlVvg.js} +50 -50
  22. package/dist/gateway/static/root/assets/browser-settings-page-Dzq18pO1.js +8 -0
  23. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BAAc151l.js → browser-workflow-inputs-C71vfl0b.js} +1 -1
  24. package/dist/gateway/static/root/assets/{browser-workflows-page-DoE4Uuns.js → browser-workflows-page-vvmSYKsO.js} +2 -2
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-DW4SBQf4.js +7 -0
  26. package/dist/gateway/static/root/assets/channels-settings-57OGuewD.js +1 -0
  27. package/dist/gateway/static/root/assets/{channels-status-swr-CCBCtLDg.js → channels-status-swr-CKyV3jY5.js} +1 -1
  28. package/dist/gateway/static/root/assets/{chat-terminal-dock-BsRWnz7M.js → chat-terminal-dock-B1Xd6OFB.js} +2 -2
  29. package/dist/gateway/static/root/assets/connectors-page-CT_I3kbR.js +2 -0
  30. package/dist/gateway/static/root/assets/{cron-expression-DdCgsH2c.js → cron-expression-D-F9vjtE.js} +1 -1
  31. package/dist/gateway/static/root/assets/{date-picker-dt37Lt8e.js → date-picker-B2OoYvic.js} +1 -1
  32. package/dist/gateway/static/root/assets/dependency-picker-BiGx9Sbj.js +1 -0
  33. package/dist/gateway/static/root/assets/{desktop-pet-Nw_Pgkk3.js → desktop-pet-BNMRqipe.js} +1 -1
  34. package/dist/gateway/static/root/assets/desktop-pet-settings-DeYbIV7A.js +1 -0
  35. package/dist/gateway/static/root/assets/{extension-debug-page-BHSst0WN.js → extension-debug-page-COyn05ub.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-page-DXbL4cQZ.js → extension-page-oH43chS2.js} +1 -1
  37. package/dist/gateway/static/root/assets/extension-settings-page-BMO59994.js +1 -0
  38. package/dist/gateway/static/root/assets/gateway-config-api-cimpViGk.js +1 -0
  39. package/dist/gateway/static/root/assets/{gateway-config-swr-826dipyU.js → gateway-config-swr-BGdHwT4e.js} +1 -1
  40. package/dist/gateway/static/root/assets/gateway-settings-BHJtnSic.js +1 -0
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-DyvcAIMm.js → gateway-startup-retry-CuaM3b4c.js} +1 -1
  42. package/dist/gateway/static/root/assets/heartbeat-settings-DNhrZHqx.js +1 -0
  43. package/dist/gateway/static/root/assets/home-page-BiHwiBnQ.js +1 -0
  44. package/dist/gateway/static/root/assets/{image-generation-api-D7cyfks6.js → image-generation-api-D7duj7Uj.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-DGeGmj4k.css +2 -0
  46. package/dist/gateway/static/root/assets/index-aBs0EfQB.js +72 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-EY4cu-6W.js → keyboard-shortcuts-settings-D8Zw_lYd.js} +1 -1
  48. package/dist/gateway/static/root/assets/local-app-workbench-page-eBFVWmtH.js +2 -0
  49. package/dist/gateway/static/root/assets/{local-apps-page-Dh7OxX0S.js → local-apps-page-CvPDPRwb.js} +1 -1
  50. package/dist/gateway/static/root/assets/{locale-store-CBoCuIMx.js → locale-store-zEL8bkwx.js} +1 -1
  51. package/dist/gateway/static/root/assets/logs-page-ClvcWlL6.js +2 -0
  52. package/dist/gateway/static/root/assets/{management-settings-ZjiL3A-S.js → management-settings-D8moh99U.js} +1 -1
  53. package/dist/gateway/static/root/assets/{markdown-split-B4BxkTpU.js → markdown-split-D7V3j0vE.js} +1 -1
  54. package/dist/gateway/static/root/assets/{markdown-view-BXsHghJd.js → markdown-view-DGRN-8wP.js} +1 -1
  55. package/dist/gateway/static/root/assets/{media-plugins-D15XBiEo.js → media-plugins-BLaE5b1Y.js} +1 -1
  56. package/dist/gateway/static/root/assets/messages-W5P19VTF.js +11 -0
  57. package/dist/gateway/static/root/assets/mobile-pairing-wizard-DiVDuCxl.js +1 -0
  58. package/dist/gateway/static/root/assets/note-detail-panel-CEEvR-fV.js +5 -0
  59. package/dist/gateway/static/root/assets/notes-page-BLqgXNCx.js +8 -0
  60. package/dist/gateway/static/root/assets/page-tabs-BFMGjA60.js +1 -0
  61. package/dist/gateway/static/root/assets/preview-open-alternatives-DNEWZN7H.js +1 -0
  62. package/dist/gateway/static/root/assets/{product-open-page-CAJeUXeU.js → product-open-page-Co5u7asH.js} +1 -1
  63. package/dist/gateway/static/root/assets/project-detail-page-CIiFJ5tk.js +1 -0
  64. package/dist/gateway/static/root/assets/projects-page-B3UF-Pfm.js +1 -0
  65. package/dist/gateway/static/root/assets/{registry-api-BhGKnvLP.js → registry-api-Cg92zSod.js} +1 -1
  66. package/dist/gateway/static/root/assets/remote-access-hub-BUtpkJPG.js +1 -0
  67. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BhKcyEId.js → runtime-tools-settings-panel-C0ByNmlV.js} +2 -2
  68. package/dist/gateway/static/root/assets/{schema-form-L0s7RWCi.js → schema-form-Dq_VQpuY.js} +1 -1
  69. package/dist/gateway/static/root/assets/sessions-page-UgJmG-V4.js +1 -0
  70. package/dist/gateway/static/root/assets/settings-advanced-gate-DDCzpdkl.js +1 -0
  71. package/dist/gateway/static/root/assets/settings-form-section-CZu6FX4k.js +1 -0
  72. package/dist/gateway/static/root/assets/{settings-page-CTKoztlF.js → settings-page-S8ekeUZd.js} +1 -1
  73. package/dist/gateway/static/root/assets/setup-status-panel-BdVmwXMv.js +1 -0
  74. package/dist/gateway/static/root/assets/{share-preview-page-CiiLLz5A.js → share-preview-page-D2fEidbn.js} +1 -1
  75. package/dist/gateway/static/root/assets/shares-settings-BdsqnCYj.js +1 -0
  76. package/dist/gateway/static/root/assets/skill-reload-api-ghzAQKna.js +1 -0
  77. package/dist/gateway/static/root/assets/skills-page-AYiPlgZE.js +2 -0
  78. package/dist/gateway/static/root/assets/{skills-page.utils-CwRekJSJ.js → skills-page.utils-DGzl-ib-.js} +1 -1
  79. package/dist/gateway/static/root/assets/system-settings-panel-5Xd5mIiR.js +1 -0
  80. package/dist/gateway/static/root/assets/task-detail-page-BQAUaCDD.js +1 -0
  81. package/dist/gateway/static/root/assets/{theme-store-hybK3oC9.js → theme-store-ZVClZKQ0.js} +1 -1
  82. package/dist/gateway/static/root/assets/tunnel-api-CdZN1Jin.js +1 -0
  83. package/dist/gateway/static/root/assets/{use-autosave-DX5YZ3Nn.js → use-autosave-czRI0NBc.js} +1 -1
  84. package/dist/gateway/static/root/assets/user-model-page-W3GTm6nA.js +2 -0
  85. package/dist/gateway/static/root/assets/{voice-api-key-field-ocnZbAyi.js → voice-api-key-field-8YEvA3cU.js} +1 -1
  86. package/dist/gateway/static/root/assets/{voice-config-api-CBbiF1T3.js → voice-config-api-CopF64lY.js} +1 -1
  87. package/dist/gateway/static/root/assets/work-discovery-overlay-keLtqYYJ.js +1 -0
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DaErGvxO.js → workflow-run-setup-panel-Dy5WgYMO.js} +2 -2
  89. package/dist/gateway/static/root/assets/workflows-page-BbAV3h7n.js +5 -0
  90. package/dist/gateway/static/root/index.html +10 -26
  91. package/dist/package.js +1 -1
  92. package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
  93. package/dist/src/agent/agent-manager.d.ts +4 -4
  94. package/dist/src/agent/agent-manager.js +31 -15
  95. package/dist/src/agent/background-review/coordinator.d.ts +2 -4
  96. package/dist/src/agent/background-review/coordinator.js +5 -30
  97. package/dist/src/agent/background-review/prompts.d.ts +4 -2
  98. package/dist/src/agent/background-review/prompts.js +24 -19
  99. package/dist/src/agent/background-review/run-background-review.d.ts +6 -7
  100. package/dist/src/agent/background-review/run-background-review.js +47 -41
  101. package/dist/src/agent/background-review/settings.d.ts +0 -1
  102. package/dist/src/agent/background-review/settings.js +6 -7
  103. package/dist/src/agent/commands/command-registry.d.ts +1 -0
  104. package/dist/src/agent/commands/command-registry.js +12 -22
  105. package/dist/src/agent/context/audit.d.ts +36 -0
  106. package/dist/src/agent/context/audit.js +97 -0
  107. package/dist/src/agent/context/coordinator.d.ts +26 -0
  108. package/dist/src/agent/context/coordinator.js +72 -0
  109. package/dist/src/agent/context/execution-context.d.ts +54 -0
  110. package/dist/src/agent/context/execution-context.js +147 -0
  111. package/dist/src/agent/context/execution-scope.js +1 -1
  112. package/dist/src/agent/context/prepend.d.ts +2 -0
  113. package/dist/src/agent/context/prepend.js +28 -0
  114. package/dist/src/agent/context/project-context.d.ts +3 -3
  115. package/dist/src/agent/context/project-context.js +26 -23
  116. package/dist/src/agent/embedded/index.js +1 -1
  117. package/dist/src/agent/embedded/run-for-session.js +1 -0
  118. package/dist/src/agent/embedded/run-turn.js +22 -2
  119. package/dist/src/agent/embedded/types.d.ts +1 -25
  120. package/dist/src/agent/external-tools/composio-provider.js +87 -92
  121. package/dist/src/agent/external-tools/gateway-tools.d.ts +4 -1
  122. package/dist/src/agent/external-tools/gateway-tools.js +153 -41
  123. package/dist/src/agent/external-tools/index.js +1 -1
  124. package/dist/src/agent/external-tools/search-error.d.ts +12 -0
  125. package/dist/src/agent/external-tools/search-error.js +29 -0
  126. package/dist/src/agent/external-tools/service.d.ts +4 -0
  127. package/dist/src/agent/external-tools/service.js +22 -2
  128. package/dist/src/agent/ipc/inbox.d.ts +8 -31
  129. package/dist/src/agent/ipc/inbox.js +64 -133
  130. package/dist/src/agent/memory/compaction-policy.js +1 -1
  131. package/dist/src/agent/memory/compaction-promotion.js +45 -77
  132. package/dist/src/agent/memory/create-memory-manager.js +1 -3
  133. package/dist/src/agent/memory/index.d.ts +0 -5
  134. package/dist/src/agent/memory/index.js +2 -5
  135. package/dist/src/agent/memory/manager.d.ts +0 -16
  136. package/dist/src/agent/memory/manager.js +11 -40
  137. package/dist/src/agent/memory/memory-config.js +1 -1
  138. package/dist/src/agent/memory/runtime.d.ts +2 -2
  139. package/dist/src/agent/memory/runtime.js +9 -19
  140. package/dist/src/agent/memory/types.d.ts +1 -1
  141. package/dist/src/agent/orchestration/agent-orchestrator.js +13 -21
  142. package/dist/src/agent/prompt/sections/memory-skills.js +25 -36
  143. package/dist/src/agent/prompt/sections/tooling.js +10 -4
  144. package/dist/src/agent/prompt/service-prompt-builder.js +4 -3
  145. package/dist/src/agent/service/direct-turn-helpers.js +6 -23
  146. package/dist/src/agent/service/process-direct-one-shot.js +15 -10
  147. package/dist/src/agent/service/process-direct-streaming.js +5 -3
  148. package/dist/src/agent/service.js +4 -3
  149. package/dist/src/agent/tasks/task-judge-service.js +1 -1
  150. package/dist/src/agent/tools/clarify-tool.d.ts +1 -0
  151. package/dist/src/agent/tools/delegate-tool.js +5 -2
  152. package/dist/src/agent/tools/factory.js +36 -19
  153. package/dist/src/agent/tools/index.d.ts +3 -2
  154. package/dist/src/agent/tools/index.js +4 -3
  155. package/dist/src/agent/tools/knowledge-memory-tool.d.ts +9 -0
  156. package/dist/src/agent/tools/knowledge-memory-tool.js +129 -0
  157. package/dist/src/agent/tools/{dreaming-tool.d.ts → memory-maintenance-tool.d.ts} +2 -2
  158. package/dist/src/agent/tools/memory-maintenance-tool.js +31 -0
  159. package/dist/src/agent/tools/user-context-tool.d.ts +8 -0
  160. package/dist/src/agent/tools/user-context-tool.js +81 -0
  161. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  162. package/dist/src/agent/workflow/catalog.d.ts +1 -8
  163. package/dist/src/agent/workflow/catalog.js +44 -102
  164. package/dist/src/agent/workflow/index.d.ts +1 -1
  165. package/dist/src/agent/workflow/index.js +2 -2
  166. package/dist/src/automations/domain/types.d.ts +1 -0
  167. package/dist/src/automations/service/action-executor.js +2 -2
  168. package/dist/src/automations/service/automation-service.js +2 -2
  169. package/dist/src/channels/manager.d.ts +1 -1
  170. package/dist/src/channels/manager.js +2 -2
  171. package/dist/src/channels/outbound/persist-store.d.ts +2 -8
  172. package/dist/src/channels/outbound/persist-store.js +11 -38
  173. package/dist/src/channels/outbound-sender.d.ts +1 -1
  174. package/dist/src/channels/outbound-sender.js +2 -2
  175. package/dist/src/chat-commands/builtins/understanding.js +24 -6
  176. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  177. package/dist/src/config/schema.d.ts +68 -75
  178. package/dist/src/config/schema.js +31 -20
  179. package/dist/src/config/web-patch.d.ts +1 -1
  180. package/dist/src/connectors/composio-managed-client.js +6 -2
  181. package/dist/src/connectors/composio-triggers.d.ts +2 -2
  182. package/dist/src/connectors/composio-triggers.js +8 -15
  183. package/dist/src/connectors/connected-source-understanding.d.ts +1 -3
  184. package/dist/src/connectors/connected-source-understanding.js +86 -99
  185. package/dist/src/connectors/connection-candidates.d.ts +11 -0
  186. package/dist/src/connectors/connection-candidates.js +58 -0
  187. package/dist/src/connectors/connection-capabilities.d.ts +4 -0
  188. package/dist/src/connectors/connection-capabilities.js +37 -0
  189. package/dist/src/connectors/connection-recovery-service.d.ts +42 -0
  190. package/dist/src/connectors/connection-recovery-service.js +396 -0
  191. package/dist/src/connectors/learning-coordinator.d.ts +0 -2
  192. package/dist/src/connectors/learning-coordinator.js +6 -7
  193. package/dist/src/connectors/principal.d.ts +5 -0
  194. package/dist/src/connectors/principal.js +18 -0
  195. package/dist/src/gateway/agent-builtin-tools.d.ts +28 -10
  196. package/dist/src/gateway/agent-builtin-tools.js +30 -9
  197. package/dist/src/gateway/automation-agent-session.js +3 -0
  198. package/dist/src/gateway/chat-stream/mapper.js +1 -28
  199. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -24
  200. package/dist/src/gateway/clarify-bridge.d.ts +4 -0
  201. package/dist/src/gateway/clarify-bridge.js +9 -4
  202. package/dist/src/gateway/heartbeat/service.js +1 -1
  203. package/dist/src/gateway/hono/lib/config-payload.d.ts +52 -30
  204. package/dist/src/gateway/hono/lib/config-payload.js +4 -4
  205. package/dist/src/gateway/hono/lib/extension-store.js +8 -25
  206. package/dist/src/gateway/hono/middleware/auth.js +1 -2
  207. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  208. package/dist/src/gateway/hono/routes/config-patch/misc.js +72 -28
  209. package/dist/src/gateway/hono/routes/connection-waits.d.ts +3 -0
  210. package/dist/src/gateway/hono/routes/connection-waits.js +58 -0
  211. package/dist/src/gateway/hono/routes/connectors.js +4 -12
  212. package/dist/src/gateway/hono/routes/context-sources.d.ts +4 -0
  213. package/dist/src/gateway/hono/routes/context-sources.js +159 -0
  214. package/dist/src/gateway/hono/routes/index.js +4 -2
  215. package/dist/src/gateway/hono/routes/lazy-bundles.js +9 -4
  216. package/dist/src/gateway/hono/routes/notes.js +22 -7
  217. package/dist/src/gateway/hono/routes/projects.js +37 -45
  218. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +15 -1
  219. package/dist/src/gateway/hono/routes/side-chats.js +13 -2
  220. package/dist/src/gateway/hono/routes/tasks.js +2 -2
  221. package/dist/src/gateway/hono/routes/user-model.d.ts +3 -0
  222. package/dist/src/gateway/hono/routes/user-model.js +480 -0
  223. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  224. package/dist/src/gateway/memory-maintenance-automation-reconciler.d.ts +11 -0
  225. package/dist/src/gateway/memory-maintenance-automation-reconciler.js +72 -0
  226. package/dist/src/gateway/service/agent-runner.d.ts +9 -1
  227. package/dist/src/gateway/service/agent-runner.js +25 -1
  228. package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
  229. package/dist/src/gateway/service/config-coordinator.js +4 -4
  230. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
  231. package/dist/src/gateway/service/run-gateway-agent.js +18 -14
  232. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  233. package/dist/src/gateway/service/session-input-coordinator.js +12 -2
  234. package/dist/src/gateway/service.d.ts +3 -1
  235. package/dist/src/gateway/service.js +49 -19
  236. package/dist/src/gateway/side-chat/manager.d.ts +16 -3
  237. package/dist/src/gateway/side-chat/manager.js +117 -28
  238. package/dist/src/gateway/side-chat/run-service.d.ts +2 -0
  239. package/dist/src/gateway/side-chat/run-service.js +28 -5
  240. package/dist/src/gateway/side-chat/types.d.ts +9 -1
  241. package/dist/src/heartbeat/index.js +1 -1
  242. package/dist/src/knowledge/connected-knowledge-pipeline.d.ts +0 -2
  243. package/dist/src/knowledge/connected-knowledge-pipeline.js +46 -217
  244. package/dist/src/knowledge-memory/domain.d.ts +35 -0
  245. package/dist/src/knowledge-memory/index.d.ts +2 -0
  246. package/dist/src/knowledge-memory/index.js +2 -0
  247. package/dist/src/knowledge-memory/repository.d.ts +45 -0
  248. package/dist/src/knowledge-memory/repository.js +154 -0
  249. package/dist/src/memory-maintenance/index.d.ts +2 -0
  250. package/dist/src/memory-maintenance/index.js +3 -0
  251. package/dist/src/memory-maintenance/schedule.d.ts +13 -0
  252. package/dist/src/memory-maintenance/schedule.js +51 -0
  253. package/dist/src/memory-maintenance/service.d.ts +28 -0
  254. package/dist/src/memory-maintenance/service.js +216 -0
  255. package/dist/src/notes/index.d.ts +1 -1
  256. package/dist/src/notes/index.js +2 -2
  257. package/dist/src/notes/paths.d.ts +0 -3
  258. package/dist/src/notes/paths.js +1 -10
  259. package/dist/src/notes/service.d.ts +1 -1
  260. package/dist/src/notes/service.js +7 -4
  261. package/dist/src/notes/store.d.ts +0 -2
  262. package/dist/src/notes/store.js +33 -80
  263. package/dist/src/notes/types.d.ts +16 -0
  264. package/dist/src/proactive/execution/context.d.ts +2 -2
  265. package/dist/src/proactive/execution/context.js +16 -11
  266. package/dist/src/proactive/index.d.ts +1 -1
  267. package/dist/src/proactive/index.js +2 -2
  268. package/dist/src/projects/index.d.ts +1 -1
  269. package/dist/src/projects/index.js +2 -2
  270. package/dist/src/projects/knowledge-bind.d.ts +1 -0
  271. package/dist/src/projects/knowledge-bind.js +15 -0
  272. package/dist/src/projects/project-loop.d.ts +3 -3
  273. package/dist/src/projects/project-loop.js +4 -4
  274. package/dist/src/projects/project-store.js +2 -1
  275. package/dist/src/realtime/runtime.js +1 -0
  276. package/dist/src/runtime-tools/manager.js +1 -1
  277. package/dist/src/share/hosted-session-share.d.ts +1 -4
  278. package/dist/src/share/hosted-session-share.js +14 -47
  279. package/dist/src/share/share-auto.d.ts +1 -1
  280. package/dist/src/share/share-auto.js +2 -2
  281. package/dist/src/share/share-store.d.ts +2 -7
  282. package/dist/src/share/share-store.js +153 -195
  283. package/dist/src/share/share-types.d.ts +0 -4
  284. package/dist/src/share/site-share-store.d.ts +3 -8
  285. package/dist/src/share/site-share-store.js +94 -153
  286. package/dist/src/share/site-share-types.d.ts +0 -4
  287. package/dist/src/storage/sqlite/collaboration-rule-repository.d.ts +17 -0
  288. package/dist/src/storage/sqlite/collaboration-rule-repository.js +54 -0
  289. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +30 -0
  290. package/dist/src/storage/sqlite/connection-wait-repository.js +338 -0
  291. package/dist/src/storage/sqlite/connection.d.ts +1 -2
  292. package/dist/src/storage/sqlite/connection.js +50 -47
  293. package/dist/src/storage/sqlite/connector-account-repository.js +1 -1
  294. package/dist/src/storage/sqlite/context-evidence-repository.d.ts +24 -0
  295. package/dist/src/storage/sqlite/context-evidence-repository.js +52 -0
  296. package/dist/src/storage/sqlite/durable-queue.d.ts +16 -0
  297. package/dist/src/storage/sqlite/durable-queue.js +52 -0
  298. package/dist/src/storage/sqlite/durable-state.d.ts +16 -0
  299. package/dist/src/storage/sqlite/durable-state.js +43 -0
  300. package/dist/src/storage/sqlite/index.d.ts +3 -5
  301. package/dist/src/storage/sqlite/index.js +4 -6
  302. package/dist/src/storage/sqlite/knowledge-repository.d.ts +0 -19
  303. package/dist/src/storage/sqlite/knowledge-repository.js +1 -90
  304. package/dist/src/storage/sqlite/migrations/146_understanding_focus_exclusions.sql +9 -0
  305. package/dist/src/storage/sqlite/migrations/147_durable_application_state.sql +39 -0
  306. package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +554 -0
  307. package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +18 -0
  308. package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +47 -0
  309. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  310. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  311. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  312. package/dist/src/storage/sqlite/notes-repository.d.ts +2 -1
  313. package/dist/src/storage/sqlite/notes-repository.js +37 -3
  314. package/dist/src/storage/sqlite/schema.js +1 -1
  315. package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -2
  316. package/dist/src/storage/sqlite/session-input-repository.js +16 -13
  317. package/dist/src/storage/sqlite/session-repository.js +4 -1
  318. package/dist/src/storage/sqlite/transcript-repository.js +1 -1
  319. package/dist/src/tasks/index.js +2 -2
  320. package/dist/src/tasks/project-operating-view-service.js +1 -1
  321. package/dist/src/tasks/task-application-service.js +6 -1
  322. package/dist/src/tasks/task-context-assembler.js +1 -1
  323. package/dist/src/tasks/task-context-repository.d.ts +0 -1
  324. package/dist/src/tasks/task-context-repository.js +1 -1
  325. package/dist/src/tasks/task-deletion-service.js +1 -1
  326. package/dist/src/tasks/task-handoff-service.js +1 -1
  327. package/dist/src/tasks/task-read-model-projector.js +1 -1
  328. package/dist/src/tasks/task-run-coordinator.js +1 -1
  329. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  330. package/dist/src/tasks/task-run-repository.js +1 -0
  331. package/dist/src/tasks/task-signal-service.js +1 -1
  332. package/dist/src/tui/tool-summary.js +2 -1
  333. package/dist/src/tui/tui-scoped-models.js +9 -6
  334. package/dist/src/user-context/changes.d.ts +1 -1
  335. package/dist/src/user-context/config.d.ts +135 -153
  336. package/dist/src/user-context/config.js +94 -99
  337. package/dist/src/user-context/relationship-continuity.d.ts +2 -2
  338. package/dist/src/user-context/relationship-continuity.js +34 -24
  339. package/dist/src/user-context/sources/activity-clustering.d.ts +9 -3
  340. package/dist/src/user-context/sources/index.js +2 -2
  341. package/dist/src/user-context/sources/repository.d.ts +1 -21
  342. package/dist/src/user-context/sources/repository.js +1 -183
  343. package/dist/src/user-context/sources/types.d.ts +0 -23
  344. package/dist/src/user-model/capture/executor.d.ts +40 -0
  345. package/dist/src/user-model/capture/executor.js +134 -0
  346. package/dist/src/user-model/capture/index.d.ts +2 -0
  347. package/dist/src/user-model/capture/index.js +3 -0
  348. package/dist/src/user-model/capture/semantic.d.ts +21 -0
  349. package/dist/src/user-model/capture/semantic.js +197 -0
  350. package/dist/src/user-model/domain.d.ts +93 -0
  351. package/dist/src/user-model/domain.js +33 -0
  352. package/dist/src/user-model/goals.d.ts +58 -0
  353. package/dist/src/user-model/goals.js +89 -0
  354. package/dist/src/user-model/importance.d.ts +11 -0
  355. package/dist/src/user-model/importance.js +17 -0
  356. package/dist/src/user-model/index.d.ts +5 -0
  357. package/dist/src/user-model/index.js +6 -0
  358. package/dist/src/user-model/repository.d.ts +23 -0
  359. package/dist/src/user-model/repository.js +268 -0
  360. package/dist/src/user-model/temporal.d.ts +10 -0
  361. package/dist/src/user-model/temporal.js +44 -0
  362. package/dist/src/voice/realtime/agentEngine.js +63 -18
  363. package/dist/src/voice/realtime/conversationTurn.d.ts +20 -0
  364. package/dist/src/voice/realtime/conversationTurn.js +83 -0
  365. package/dist/src/voice/realtime/memory-context.d.ts +7 -2
  366. package/dist/src/voice/realtime/memory-context.js +39 -51
  367. package/dist/src/voice/realtime/omniEngine.js +72 -18
  368. package/dist/src/work-discovery/service.d.ts +3 -14
  369. package/dist/src/work-discovery/service.js +138 -99
  370. package/dist/src/work-discovery/types.d.ts +3 -3
  371. package/dist/src/workflows/authoring/workflow-draft-store.d.ts +1 -5
  372. package/dist/src/workflows/authoring/workflow-draft-store.js +23 -43
  373. package/dist/src/workflows/index.js +2 -2
  374. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  375. package/dist/src/workflows/service/workflow-session-bridge.js +12 -20
  376. package/dist/src/workflows/store/event-store.d.ts +1 -2
  377. package/dist/src/workflows/store/event-store.js +19 -64
  378. package/dist/src/workflows/store/paths.d.ts +0 -2
  379. package/dist/src/workflows/store/paths.js +1 -7
  380. package/dist/src/workflows/store/run-store.d.ts +0 -1
  381. package/dist/src/workflows/store/run-store.js +1 -24
  382. package/package.json +3 -3
  383. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-eG49pM-z.js +0 -1
  384. package/dist/gateway/static/root/assets/agents-CZwf1mgZ.js +0 -1
  385. package/dist/gateway/static/root/assets/app-management-settings-panel-BODskFTb.js +0 -1
  386. package/dist/gateway/static/root/assets/appearance-settings-DeaVvaYZ.js +0 -1
  387. package/dist/gateway/static/root/assets/apps-page-BZG3BK7f.js +0 -1
  388. package/dist/gateway/static/root/assets/automations-workspace-CB7Yl2_B.js +0 -6
  389. package/dist/gateway/static/root/assets/browser-settings-page-Bu42Ljfw.js +0 -8
  390. package/dist/gateway/static/root/assets/capabilities-settings-panel-Cg7zCxEH.js +0 -7
  391. package/dist/gateway/static/root/assets/channels-settings-EDTZ8P3y.js +0 -1
  392. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
  393. package/dist/gateway/static/root/assets/connectors-page-kh7PEkSS.js +0 -2
  394. package/dist/gateway/static/root/assets/dependency-picker-oi7cdv2C.js +0 -1
  395. package/dist/gateway/static/root/assets/desktop-pet-settings-D9OO-exo.js +0 -1
  396. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +0 -1
  397. package/dist/gateway/static/root/assets/extension-settings-page-FTD7nE8v.js +0 -1
  398. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +0 -1
  399. package/dist/gateway/static/root/assets/eye-off-DEAzt3g1.js +0 -1
  400. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +0 -1
  401. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
  402. package/dist/gateway/static/root/assets/gateway-config-api-c-8ENciH.js +0 -1
  403. package/dist/gateway/static/root/assets/gateway-settings-BxvyTRl0.js +0 -1
  404. package/dist/gateway/static/root/assets/heartbeat-settings-C1S2Ccui.js +0 -1
  405. package/dist/gateway/static/root/assets/home-page-Bqx-SMWV.js +0 -1
  406. package/dist/gateway/static/root/assets/index-Cif1_3Jx.js +0 -71
  407. package/dist/gateway/static/root/assets/index-Dbh5SXyV.css +0 -2
  408. package/dist/gateway/static/root/assets/interaction-BmQogeqz.js +0 -1
  409. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
  410. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +0 -1
  411. package/dist/gateway/static/root/assets/local-app-workbench-page-sDdw7Y3Q.js +0 -2
  412. package/dist/gateway/static/root/assets/logs-page-DUsxXdDp.js +0 -2
  413. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
  414. package/dist/gateway/static/root/assets/messages-BbdwoxVo.js +0 -3
  415. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
  416. package/dist/gateway/static/root/assets/mobile-pairing-wizard-Dv87XewB.js +0 -1
  417. package/dist/gateway/static/root/assets/models-hub-cache-88f4fzYS.js +0 -1
  418. package/dist/gateway/static/root/assets/notes-page-DOe0lOcQ.js +0 -1
  419. package/dist/gateway/static/root/assets/notes-workbench-Cy0oYbWP.js +0 -4
  420. package/dist/gateway/static/root/assets/oauth-api-BjSUDIgq.js +0 -1
  421. package/dist/gateway/static/root/assets/oauth-authorization-window-Cdolr2wE.js +0 -1
  422. package/dist/gateway/static/root/assets/page-tabs-BaEQMYm_.js +0 -1
  423. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
  424. package/dist/gateway/static/root/assets/preview-open-alternatives-CsNVTKC0.js +0 -1
  425. package/dist/gateway/static/root/assets/project-detail-page-fgD1xc4O.js +0 -1
  426. package/dist/gateway/static/root/assets/projects-page-CiTiEcOc.js +0 -1
  427. package/dist/gateway/static/root/assets/remote-access-hub-Dc0GrNSp.js +0 -1
  428. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
  429. package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
  430. package/dist/gateway/static/root/assets/sessions-page-BPOW3yaM.js +0 -1
  431. package/dist/gateway/static/root/assets/settings-advanced-gate-Bz4s9BBY.js +0 -1
  432. package/dist/gateway/static/root/assets/settings-form-section-DjWzRk4z.js +0 -1
  433. package/dist/gateway/static/root/assets/setup-status-panel-rllj-j7k.js +0 -1
  434. package/dist/gateway/static/root/assets/shares-settings-DMj7onCX.js +0 -1
  435. package/dist/gateway/static/root/assets/skill-reload-api-DRB366nS.js +0 -1
  436. package/dist/gateway/static/root/assets/skills-page-cBT9jCof.js +0 -2
  437. package/dist/gateway/static/root/assets/system-settings-panel-Byrk4DQy.js +0 -1
  438. package/dist/gateway/static/root/assets/task-detail-page-CheX3zmK.js +0 -1
  439. package/dist/gateway/static/root/assets/tunnel-api-jKzujxFU.js +0 -1
  440. package/dist/gateway/static/root/assets/user-context-page-CWy3Pqtk.js +0 -1
  441. package/dist/gateway/static/root/assets/work-discovery-overlay-DE4_YpDn.js +0 -1
  442. package/dist/gateway/static/root/assets/workflows-page-y4O9-BTf.js +0 -5
  443. package/dist/src/agent/memory/builtin-provider.d.ts +0 -37
  444. package/dist/src/agent/memory/builtin-provider.js +0 -225
  445. package/dist/src/agent/memory/context/types.d.ts +0 -40
  446. package/dist/src/agent/memory/understanding/quality.d.ts +0 -8
  447. package/dist/src/agent/memory/understanding/quality.js +0 -18
  448. package/dist/src/agent/memory/understanding/service.d.ts +0 -19
  449. package/dist/src/agent/memory/understanding/service.js +0 -209
  450. package/dist/src/agent/memory/understanding/types.d.ts +0 -34
  451. package/dist/src/agent/memory/understanding/types.js +0 -1
  452. package/dist/src/agent/memory/user-context-coordinator.d.ts +0 -23
  453. package/dist/src/agent/memory/user-context-coordinator.js +0 -113
  454. package/dist/src/agent/tools/dreaming-tool.js +0 -37
  455. package/dist/src/agent/tools/memory-tool.d.ts +0 -9
  456. package/dist/src/agent/tools/memory-tool.js +0 -119
  457. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -11
  458. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -63
  459. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +0 -21
  460. package/dist/src/gateway/hono/routes/understanding-sources.js +0 -387
  461. package/dist/src/gateway/hono/routes/you.d.ts +0 -3
  462. package/dist/src/gateway/hono/routes/you.js +0 -443
  463. package/dist/src/projects/memory-bind.d.ts +0 -1
  464. package/dist/src/projects/memory-bind.js +0 -14
  465. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +0 -37
  466. package/dist/src/storage/sqlite/context-consolidation-repository.js +0 -64
  467. package/dist/src/storage/sqlite/memory-records-repository.d.ts +0 -217
  468. package/dist/src/storage/sqlite/memory-records-repository.js +0 -715
  469. package/dist/src/storage/sqlite/remote-context-repository.d.ts +0 -3
  470. package/dist/src/storage/sqlite/remote-context-repository.js +0 -40
  471. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +0 -49
  472. package/dist/src/storage/sqlite/user-context-quality-repository.js +0 -118
  473. package/dist/src/storage/sqlite/user-context-repository.d.ts +0 -85
  474. package/dist/src/storage/sqlite/user-context-repository.js +0 -535
  475. package/dist/src/user-context/automatic-context.d.ts +0 -17
  476. package/dist/src/user-context/automatic-context.js +0 -85
  477. package/dist/src/user-context/consolidation.d.ts +0 -27
  478. package/dist/src/user-context/consolidation.js +0 -187
  479. package/dist/src/user-context/context-objects.d.ts +0 -17
  480. package/dist/src/user-context/context-objects.js +0 -99
  481. package/dist/src/user-context/evaluation/harness.d.ts +0 -13
  482. package/dist/src/user-context/evaluation/harness.js +0 -31
  483. package/dist/src/user-context/extraction/executor.d.ts +0 -22
  484. package/dist/src/user-context/extraction/executor.js +0 -142
  485. package/dist/src/user-context/extraction/repair.d.ts +0 -19
  486. package/dist/src/user-context/extraction/repair.js +0 -71
  487. package/dist/src/user-context/extraction/semantic.d.ts +0 -18
  488. package/dist/src/user-context/extraction/semantic.js +0 -148
  489. package/dist/src/user-context/focus-lifecycle.d.ts +0 -2
  490. package/dist/src/user-context/focus-lifecycle.js +0 -26
  491. package/dist/src/user-context/manual-understanding.d.ts +0 -12
  492. package/dist/src/user-context/manual-understanding.js +0 -37
  493. package/dist/src/user-context/planner.d.ts +0 -17
  494. package/dist/src/user-context/planner.js +0 -465
  495. package/dist/src/user-context/relationships/indexer.d.ts +0 -13
  496. package/dist/src/user-context/relationships/indexer.js +0 -185
  497. package/dist/src/user-context/relationships/service.d.ts +0 -22
  498. package/dist/src/user-context/relationships/service.js +0 -50
  499. package/dist/src/user-context/retriever.d.ts +0 -15
  500. package/dist/src/user-context/retriever.js +0 -124
  501. package/dist/src/user-context/scope.d.ts +0 -7
  502. package/dist/src/user-context/scope.js +0 -9
  503. package/dist/src/user-context/selection-policy.d.ts +0 -20
  504. package/dist/src/user-context/selection-policy.js +0 -33
  505. package/dist/src/user-context/understanding.d.ts +0 -15
  506. package/dist/src/user-context/understanding.js +0 -24
  507. package/dist/src/user-context/understandingQuality.d.ts +0 -5
  508. package/dist/src/user-context/understandingQuality.js +0 -48
  509. /package/dist/src/{agent/memory/context/types.js → knowledge-memory/domain.js} +0 -0
@@ -0,0 +1,159 @@
1
+ import { getSqliteDatabase } from "../../../storage/sqlite/transaction.js";
2
+ import { countKnowledgeSourceItems, deleteKnowledgeSourceItems } from "../../../storage/sqlite/knowledge-repository.js";
3
+ import { getConnectorAccount } from "../../../storage/sqlite/connector-account-repository.js";
4
+ import "../../../storage/sqlite/index.js";
5
+ import { init_agent_scope, resolveDefaultAgentId } from "../../../agent/agent-scope.js";
6
+ import { setAssertionStatus } from "../../../user-model/repository.js";
7
+ import "../../../user-model/index.js";
8
+ import { listConnectedContentCandidates, readConnectedContent } from "../../../connectors/content-enrichment.js";
9
+ import { getUnderstandingSourceGrant, listUnderstandingSourceGrants, listUnderstandingSourceRuns, revokeUnderstandingSourceGrant, updateUnderstandingSourceGrantPolicies } from "../../../user-context/sources/repository.js";
10
+ import { getWorkDiscoveryService } from "./work-discovery.js";
11
+ import { listUnderstandingSourceDefinitions } from "../../../user-context/sources/catalog.js";
12
+ import { randomUUID } from "node:crypto";
13
+ //#region src/gateway/hono/routes/context-sources.ts
14
+ init_agent_scope();
15
+ function stringField(value, field) {
16
+ if (!value || typeof value !== "object") return "";
17
+ const fieldValue = value[field];
18
+ return typeof fieldValue === "string" ? fieldValue.trim() : "";
19
+ }
20
+ function sourceInstanceId(grant) {
21
+ const accountId = typeof grant.config.accountId === "string" ? grant.config.accountId : void 0;
22
+ const connectorId = typeof grant.config.connectorId === "string" ? grant.config.connectorId : void 0;
23
+ return accountId && connectorId ? `composio:${connectorId}:${accountId}` : void 0;
24
+ }
25
+ function assertionIdsForSource(instanceId) {
26
+ return getSqliteDatabase().prepare(`SELECT DISTINCT ae.assertion_id
27
+ FROM user_assertion_evidence ae JOIN context_evidence e ON e.evidence_id = ae.evidence_id
28
+ WHERE e.source_instance_id = ?`).all(instanceId).map((row) => row.assertion_id);
29
+ }
30
+ function markContextSourceAssertionsForReview(grantId) {
31
+ const grant = getUnderstandingSourceGrant(grantId);
32
+ const instanceId = grant ? sourceInstanceId(grant) : void 0;
33
+ const ids = instanceId ? assertionIdsForSource(instanceId) : [];
34
+ for (const id of ids) setAssertionStatus(id, "needs_review", {
35
+ actor: "runtime",
36
+ reason: "Its context source was revoked."
37
+ });
38
+ return ids.length;
39
+ }
40
+ function registerContextSourceRoutes(authenticated, deps) {
41
+ const service = getWorkDiscoveryService(deps);
42
+ const limited = deps.strictRateLimitMiddleware;
43
+ authenticated.get("/api/context-sources/catalog", (c) => {
44
+ const requested = c.req.query("platform");
45
+ const platform = requested === "darwin" || requested === "win32" || requested === "linux" ? requested : process.platform;
46
+ return c.json({ sources: listUnderstandingSourceDefinitions(platform) });
47
+ });
48
+ authenticated.get("/api/context-sources/grants", (c) => {
49
+ const grants = listUnderstandingSourceGrants({ includeRevoked: c.req.query("includeRevoked") === "true" });
50
+ return c.json({
51
+ grants,
52
+ latestRuns: Object.fromEntries(grants.flatMap((grant) => {
53
+ const run = listUnderstandingSourceRuns(grant.id, 1)[0];
54
+ return run ? [[grant.id, run]] : [];
55
+ }))
56
+ });
57
+ });
58
+ authenticated.patch("/api/context-sources/grants/:grantId", limited, async (c) => {
59
+ const input = await c.req.json().catch(() => null);
60
+ if (!input) return c.json({ error: "Invalid JSON" }, 400);
61
+ const accessMode = input.accessMode;
62
+ const retentionPolicy = input.retentionPolicy;
63
+ const processingPolicy = input.processingPolicy;
64
+ if (accessMode !== void 0 && accessMode !== "once" && accessMode !== "continuous") return c.json({ error: "Invalid access mode" }, 400);
65
+ if (retentionPolicy !== void 0 && ![
66
+ "metadata_only",
67
+ "derived_only",
68
+ "bounded_raw"
69
+ ].includes(String(retentionPolicy))) return c.json({ error: "Invalid retention policy" }, 400);
70
+ if (processingPolicy !== void 0 && processingPolicy !== "local_only" && processingPolicy !== "remote_allowed") return c.json({ error: "Invalid processing policy" }, 400);
71
+ const grant = updateUnderstandingSourceGrantPolicies(c.req.param("grantId"), {
72
+ ...accessMode ? { accessMode } : {},
73
+ ...retentionPolicy ? { retentionPolicy } : {},
74
+ ...processingPolicy ? { processingPolicy } : {}
75
+ });
76
+ return grant ? c.json({ grant }) : c.json({ error: "Context source not found" }, 404);
77
+ });
78
+ authenticated.delete("/api/context-sources/grants/:grantId", limited, (c) => {
79
+ const current = getUnderstandingSourceGrant(c.req.param("grantId"));
80
+ if (!current) return c.json({ error: "Context source not found" }, 404);
81
+ const instanceId = sourceInstanceId(current);
82
+ const affectedAssertions = markContextSourceAssertionsForReview(current.id);
83
+ const rawDeleted = c.req.query("deleteRaw") === "true" && instanceId ? deleteKnowledgeSourceItems(instanceId) : 0;
84
+ const accountId = typeof current.config.accountId === "string" ? current.config.accountId : void 0;
85
+ const connectionId = accountId ? getConnectorAccount(accountId)?.currentConnectionId : void 0;
86
+ if (connectionId) deps.service.setConnectorLearningPaused(connectionId, true);
87
+ return c.json({
88
+ grant: revokeUnderstandingSourceGrant(current.id),
89
+ affectedAssertions,
90
+ rawDeleted
91
+ });
92
+ });
93
+ authenticated.get("/api/context-sources/content-candidates", (c) => c.json({ candidates: listConnectedContentCandidates({ agentId: resolveDefaultAgentId(deps.service.currentConfig) }) }));
94
+ authenticated.post("/api/context-sources/content-reads", limited, async (c) => {
95
+ const input = await c.req.json().catch(() => null);
96
+ const sourceItemIds = input && typeof input === "object" && Array.isArray(input.sourceItemIds) ? input.sourceItemIds.filter((item) => typeof item === "string") : [];
97
+ try {
98
+ return c.json({ result: await readConnectedContent({
99
+ sourceItemIds,
100
+ agentId: resolveDefaultAgentId(deps.service.currentConfig)
101
+ }) });
102
+ } catch (error) {
103
+ return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
104
+ }
105
+ });
106
+ authenticated.post("/api/context-sources/grants/:grantId/refresh", limited, async (c) => {
107
+ const grant = getUnderstandingSourceGrant(c.req.param("grantId"));
108
+ if (!grant || grant.status !== "active") return c.json({ error: "Active context source not found" }, 404);
109
+ try {
110
+ if (grant.adapterId === "local-work-folders") {
111
+ const result = await service.refreshDirectorySourceIfChanged({
112
+ id: grant.id,
113
+ idempotencyKey: randomUUID()
114
+ });
115
+ return c.json({ result }, result.changed ? 202 : 200);
116
+ }
117
+ const accountId = typeof grant.config.accountId === "string" ? grant.config.accountId : "";
118
+ const connectionId = accountId ? getConnectorAccount(accountId)?.currentConnectionId : void 0;
119
+ const job = connectionId ? deps.service.requestConnectorLearning(connectionId, {
120
+ mode: "incremental",
121
+ reason: "manual"
122
+ }) : null;
123
+ return job ? c.json({ job }, 202) : c.json({ error: "Context source cannot be refreshed here" }, 409);
124
+ } catch (error) {
125
+ return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
126
+ }
127
+ });
128
+ authenticated.get("/api/context-sources/work-folders", (c) => c.json({ sources: service.listDirectorySources() }));
129
+ authenticated.post("/api/context-sources/work-folders", limited, async (c) => {
130
+ const input = await c.req.json().catch(() => null);
131
+ const rootPath = stringField(input, "rootPath");
132
+ const processingPolicy = stringField(input, "processingPolicy");
133
+ if (!rootPath || processingPolicy !== "local_only" && processingPolicy !== "remote_allowed") return c.json({ error: "rootPath and an explicit processingPolicy are required" }, 400);
134
+ try {
135
+ return c.json({ source: await service.grantDirectorySource(rootPath, processingPolicy) }, 201);
136
+ } catch (error) {
137
+ return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
138
+ }
139
+ });
140
+ authenticated.post("/api/context-sources/bootstrap", limited, async (c) => {
141
+ const input = await c.req.json().catch(() => null);
142
+ const items = input && typeof input === "object" && Array.isArray(input.items) ? input.items.slice(0, 1200) : [];
143
+ const processingPolicy = stringField(input, "processingPolicy");
144
+ if (!items.length || processingPolicy !== "local_only" && processingPolicy !== "remote_allowed") return c.json({ error: "items and an explicit processingPolicy are required" }, 400);
145
+ try {
146
+ const result = await service.importUnderstandingSources(items, processingPolicy, c.req.raw.signal);
147
+ return c.json(result, 201);
148
+ } catch (error) {
149
+ return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
150
+ }
151
+ });
152
+ authenticated.get("/api/context-sources/:grantId/raw-count", (c) => {
153
+ const grant = getUnderstandingSourceGrant(c.req.param("grantId"));
154
+ const instanceId = grant ? sourceInstanceId(grant) : void 0;
155
+ return grant ? c.json({ count: instanceId ? countKnowledgeSourceItems(instanceId) : 0 }) : c.json({ error: "Context source not found" }, 404);
156
+ });
157
+ }
158
+ //#endregion
159
+ export { markContextSourceAssertionsForReview, registerContextSourceRoutes };
@@ -1,3 +1,4 @@
1
+ import { registerConnectionWaitRoutes } from "./connection-waits.js";
1
2
  import { registerActivityRoutes } from "./activity.js";
2
3
  import { registerAgentStreamRoutes } from "./agent-stream.js";
3
4
  import { registerDiscussionRoutes } from "./discussions.js";
@@ -17,7 +18,7 @@ import { registerRealtimeRoutes } from "./realtime.js";
17
18
  import { registerDeviceRoutes } from "./devices.js";
18
19
  import { registerLocalAppsRoutes } from "./local-apps.js";
19
20
  import { registerWorkDiscoveryRoutes } from "./work-discovery.js";
20
- import { registerUnderstandingSourceRoutes } from "./understanding-sources.js";
21
+ import { registerContextSourceRoutes } from "./context-sources.js";
21
22
  import { registerTaskRoutes } from "./tasks.js";
22
23
  import { registerProactiveRoutes } from "./proactive.js";
23
24
  import { registerMobilePrivacyRoutes } from "./mobile-privacy.js";
@@ -28,6 +29,7 @@ function registerCoreAuthenticatedRoutes(authenticated, deps) {
28
29
  registerMobilePrivacyRoutes(authenticated, deps);
29
30
  registerAgentStreamRoutes(authenticated, deps);
30
31
  registerSessionsRoutes(authenticated, deps);
32
+ registerConnectionWaitRoutes(authenticated, deps);
31
33
  registerExecutionEnvironmentRoutes(authenticated, deps);
32
34
  registerSideChatRoutes(authenticated, deps);
33
35
  registerActivityRoutes(authenticated, deps);
@@ -36,7 +38,7 @@ function registerCoreAuthenticatedRoutes(authenticated, deps) {
36
38
  registerProjectSkillRoutes(authenticated, deps);
37
39
  registerLocalAppsRoutes(authenticated, deps);
38
40
  registerWorkDiscoveryRoutes(authenticated, deps);
39
- registerUnderstandingSourceRoutes(authenticated, deps);
41
+ registerContextSourceRoutes(authenticated, deps);
40
42
  registerTaskRoutes(authenticated, deps);
41
43
  registerProactiveRoutes(authenticated, deps);
42
44
  registerSearchRoutes(authenticated, deps);
@@ -279,11 +279,16 @@ const AUTHENTICATED_LAZY_ROUTE_BUNDLES = [
279
279
  }
280
280
  },
281
281
  {
282
- id: "you",
283
- match: (path) => startsWithAny(path, ["/api/you"]),
282
+ id: "user-model",
283
+ match: (path) => startsWithAny(path, [
284
+ "/api/user-model",
285
+ "/api/knowledge-memory",
286
+ "/api/memory-maintenance",
287
+ "/api/turns"
288
+ ]),
284
289
  load: async () => {
285
- const { registerYouRoutes } = await import("./you.js");
286
- return { register: registerYouRoutes };
290
+ const { registerUserModelRoutes } = await import("./user-model.js");
291
+ return { register: registerUserModelRoutes };
287
292
  }
288
293
  },
289
294
  {
@@ -134,6 +134,8 @@ function registerNotesRoutes(authenticated, deps) {
134
134
  kind: kind && VALID_KINDS.has(kind) ? kind : void 0,
135
135
  tag: tag || void 0,
136
136
  projectId: projectId || void 0,
137
+ unassigned: c.req.query("unassigned") === "true" || void 0,
138
+ agentEdited: c.req.query("agentEdited") === "true" || void 0,
137
139
  search: search || void 0,
138
140
  pinned: pinnedRaw === "true" ? true : pinnedRaw === "false" ? false : void 0,
139
141
  limit: limitRaw ? parseInt(limitRaw, 10) : void 0,
@@ -143,6 +145,9 @@ function registerNotesRoutes(authenticated, deps) {
143
145
  });
144
146
  return c.json(result);
145
147
  });
148
+ authenticated.get("/api/notes/project-summaries", (c) => {
149
+ return c.json({ items: service.notesServiceInstance.listProjectSummaries() });
150
+ });
146
151
  authenticated.post("/api/notes", async (c) => {
147
152
  const contentType = c.req.header("content-type") || "";
148
153
  const idempotencyKey = readIdempotencyKey(c.req.header("idempotency-key"));
@@ -246,7 +251,10 @@ function registerNotesRoutes(authenticated, deps) {
246
251
  if (!note) return c.json(noteNotFound(), 404);
247
252
  const body = await c.req.json().catch(() => ({}));
248
253
  const routingCfg = service.currentConfig;
249
- let agentId = typeof body.agentId === "string" && body.agentId.trim() ? body.agentId.trim().toLowerCase() : getDefaultAgentId(routingCfg);
254
+ const projectId = typeof body.projectId === "string" ? body.projectId.trim() : void 0;
255
+ const project = projectId ? service.projects.get(projectId) : void 0;
256
+ if (projectId && !project) return c.json({ error: "Project not found" }, 400);
257
+ let agentId = typeof body.agentId === "string" && body.agentId.trim() ? body.agentId.trim().toLowerCase() : project?.defaultAgentId ?? getDefaultAgentId(routingCfg);
250
258
  if (!agentExists(agentId, routingCfg)) agentId = getDefaultAgentId(routingCfg);
251
259
  const sourceBinding = {
252
260
  kind: "note",
@@ -260,11 +268,14 @@ function registerNotesRoutes(authenticated, deps) {
260
268
  const existingSession = await service.sessions.getSession(existingKey);
261
269
  if (existingSession) {
262
270
  const meta = await service.sessionIndexInstance.getSessionMetadata(existingKey);
263
- await service.sessionIndexInstance.updateSessionMetadata(existingKey, { customData: {
264
- ...meta?.customData ?? {},
265
- genericNewChatShell: false,
266
- sourceBinding
267
- } });
271
+ await service.sessionIndexInstance.updateSessionMetadata(existingKey, {
272
+ ...projectId ? { projectId } : {},
273
+ customData: {
274
+ ...meta?.customData ?? {},
275
+ genericNewChatShell: false,
276
+ sourceBinding
277
+ }
278
+ });
268
279
  return c.json({
269
280
  session: existingSession,
270
281
  sessionKey: existingKey,
@@ -282,6 +293,7 @@ function registerNotesRoutes(authenticated, deps) {
282
293
  peerId
283
294
  });
284
295
  await service.sessionIndexInstance.saveMessages(sessionKey, [], { metadata: {
296
+ ...projectId ? { projectId } : {},
285
297
  sourceChannel: "webchat",
286
298
  sourceChatId: `default:direct:${peerId}`,
287
299
  sessionType: "chat",
@@ -296,6 +308,7 @@ function registerNotesRoutes(authenticated, deps) {
296
308
  } });
297
309
  const meta = await service.sessionIndexInstance.getSessionMetadata(sessionKey);
298
310
  await service.sessionIndexInstance.updateSessionMetadata(sessionKey, {
311
+ ...projectId ? { projectId } : {},
299
312
  name: noteThreadName(note),
300
313
  tags: Array.from(new Set([...meta?.tags ?? [], "note"])),
301
314
  customData: {
@@ -538,6 +551,8 @@ function registerNotesRoutes(authenticated, deps) {
538
551
  });
539
552
  authenticated.post("/api/notes/:id/media", async (c) => {
540
553
  const noteId = c.req.param("id");
554
+ const idempotencyKey = readIdempotencyKey(c.req.header("idempotency-key"));
555
+ if (idempotencyKey && idempotencyKey.length > 200) return c.json({ error: "Idempotency-Key is too long" }, 400);
541
556
  let body;
542
557
  try {
543
558
  body = await c.req.parseBody({ all: true });
@@ -562,7 +577,7 @@ function registerNotesRoutes(authenticated, deps) {
562
577
  buffer: buf,
563
578
  mimeType,
564
579
  duration: Number.isFinite(duration) ? duration : void 0
565
- });
580
+ }, idempotencyKey);
566
581
  if (!attachment) return c.json(noteNotFound(), 404);
567
582
  return c.json({ attachment }, 201);
568
583
  });
@@ -1,7 +1,6 @@
1
1
  import { getSqliteDatabase } from "../../../storage/sqlite/transaction.js";
2
2
  import { getSessionMetadata } from "../../../storage/sqlite/session-repository.js";
3
3
  import { loadTranscriptRowsForSession } from "../../../storage/sqlite/transcript-repository.js";
4
- import { listMemoryRecords, upsertMemoryRecord } from "../../../storage/sqlite/memory-records-repository.js";
5
4
  import "../../../storage/sqlite/index.js";
6
5
  import { ActivityService } from "../../../activity/service.js";
7
6
  import "../../../activity/index.js";
@@ -9,6 +8,8 @@ import { resolveEffectiveAgentProfile } from "../../../config/agent-profile.js";
9
8
  import { TaskRepository } from "../../../tasks/task-repository.js";
10
9
  import { TaskReadModelProjector } from "../../../tasks/task-read-model-projector.js";
11
10
  import { ExecutionEnvironmentStore } from "../../../execution-environments/store.js";
11
+ import { listKnowledgeItems, writeKnowledgeItem } from "../../../knowledge-memory/repository.js";
12
+ import "../../../knowledge-memory/index.js";
12
13
  import { ProjectWorkspaceConflictError, ProjectWorkspaceMissingError } from "../../../projects/workspace-project.js";
13
14
  import { inferProjectExecutionMode, inferProjectKind } from "../../../projects/project-kind.js";
14
15
  import { isValidProjectAgentId, normalizeProjectAgentId, resolveProjectAgentId } from "../../../projects/project-agent.js";
@@ -34,7 +35,7 @@ function parseLimit(raw, fallback = 50) {
34
35
  return Number.isFinite(n) ? Math.min(500, Math.max(1, n)) : fallback;
35
36
  }
36
37
  function isHiddenEmptyProjectChatShell(session) {
37
- return session.hiddenFromSessionList === true && session.messageCount === 0 && session.customData?.genericNewChatShell !== false && Boolean(session.routing?.peerId?.startsWith("chat_"));
38
+ return session.hiddenFromSessionList === true && session.messageCount === 0 && (session.customData?.origin === "automation" || session.customData?.genericNewChatShell !== false && Boolean(session.routing?.peerId?.startsWith("chat_")));
38
39
  }
39
40
  function textField(body, key) {
40
41
  const value = body[key];
@@ -96,7 +97,7 @@ function textFromTranscriptContent(content) {
96
97
  return typeof record.text === "string" ? record.text : "";
97
98
  }).filter(Boolean).join("\n");
98
99
  }
99
- function buildSessionSummaryMemoryContent(sessionKey, explicitSummary) {
100
+ function buildSessionSummaryKnowledgeContent(sessionKey, explicitSummary) {
100
101
  const summary = explicitSummary?.trim();
101
102
  if (summary) return summary;
102
103
  const lines = loadTranscriptRowsForSession(sessionKey).filter((row) => {
@@ -125,7 +126,7 @@ function listFailedProjectWorkflowRuns(projectId, limit = 5) {
125
126
  errorMessage: row.error_message ?? void 0
126
127
  }));
127
128
  }
128
- function buildProjectDigestMemoryContent(input) {
129
+ function buildProjectDigestKnowledgeContent(input) {
129
130
  const lines = [
130
131
  `Project digest: ${input.projectName}`,
131
132
  `Status: ${input.digest.summary}`,
@@ -141,9 +142,6 @@ function buildProjectDigestMemoryContent(input) {
141
142
  }
142
143
  return lines.join("\n");
143
144
  }
144
- function projectDigestMemoryRecordId(projectId) {
145
- return `project-digest:${projectId}`;
146
- }
147
145
  function registerProjectsRoutes(authenticated, deps) {
148
146
  const { service } = deps;
149
147
  const activity = new ActivityService();
@@ -343,7 +341,7 @@ function registerProjectsRoutes(authenticated, deps) {
343
341
  ...result
344
342
  });
345
343
  });
346
- authenticated.post("/api/projects/:id/digest-memory", async (c) => {
344
+ authenticated.post("/api/projects/:id/digest-knowledge", async (c) => {
347
345
  const project = service.projects.getWithDetails(c.req.param("id"));
348
346
  if (!project) return c.json({
349
347
  ok: false,
@@ -365,40 +363,37 @@ function registerProjectsRoutes(authenticated, deps) {
365
363
  }),
366
364
  recentWorkflowRuns: project.recentWorkflowRuns,
367
365
  failedWorkflowRuns: listFailedProjectWorkflowRuns(project.id),
368
- memoryRecords: listMemoryRecords({
369
- projectId: project.id,
370
- status: "active",
371
- limit: 5
372
- })
366
+ knowledgeItems: listKnowledgeItems({
367
+ statuses: ["active"],
368
+ limit: 500
369
+ }).filter((item) => item.scope.type === "project" && item.scope.id === project.id).slice(0, 5)
373
370
  });
374
- const record = upsertMemoryRecord({
375
- id: projectDigestMemoryRecordId(project.id),
376
- providerId: "local",
377
- kind: "daily_note",
371
+ const record = writeKnowledgeItem({
372
+ kind: "note",
373
+ scope: {
374
+ type: "project",
375
+ id: project.id
376
+ },
378
377
  sourceAgentId: resolveProjectAgentId({
379
378
  config: service.currentConfig,
380
379
  projects: service.projects,
381
380
  projectId: project.id
382
381
  }),
383
- workspaceId: project.workspaceRoot,
384
- projectId: project.id,
385
- content: buildProjectDigestMemoryContent({
382
+ content: buildProjectDigestKnowledgeContent({
386
383
  ...loop,
387
384
  projectName: project.name
388
385
  }),
386
+ canonicalKey: `project-digest:${project.id}`,
389
387
  source: { provider: "project-digest" },
390
388
  confidence: .75,
391
- tags: [
392
- "project",
393
- "project-digest",
394
- project.slug
395
- ],
389
+ importance: .7,
396
390
  status: "active",
397
- sensitivity: "normal"
391
+ originClass: "system",
392
+ replaceExisting: true
398
393
  });
399
394
  return c.json({
400
395
  ok: true,
401
- record
396
+ knowledge: record.item
402
397
  }, 201);
403
398
  });
404
399
  authenticated.post("/api/projects/:id/blockers", async (c) => {
@@ -755,11 +750,10 @@ function registerProjectsRoutes(authenticated, deps) {
755
750
  }, 404);
756
751
  }
757
752
  });
758
- authenticated.post("/api/projects/:id/sessions/:sessionKey/summary-memory", async (c) => {
753
+ authenticated.post("/api/projects/:id/sessions/:sessionKey/summary-knowledge", async (c) => {
759
754
  const projectId = c.req.param("id");
760
755
  const sessionKey = c.req.param("sessionKey");
761
- const project = service.projects.get(projectId);
762
- if (!project) return c.json({
756
+ if (!service.projects.get(projectId)) return c.json({
763
757
  ok: false,
764
758
  error: "Project not found"
765
759
  }, 404);
@@ -773,32 +767,30 @@ function registerProjectsRoutes(authenticated, deps) {
773
767
  error: "Session is not attached to this project"
774
768
  }, 409);
775
769
  const body = await c.req.json().catch(() => ({}));
776
- const content = buildSessionSummaryMemoryContent(sessionKey, typeof body.summary === "string" ? body.summary : void 0);
777
- const record = upsertMemoryRecord({
778
- providerId: "local",
779
- kind: "session_summary",
770
+ const content = buildSessionSummaryKnowledgeContent(sessionKey, typeof body.summary === "string" ? body.summary : void 0);
771
+ const record = writeKnowledgeItem({
772
+ kind: "episode",
773
+ scope: {
774
+ type: "project",
775
+ id: projectId
776
+ },
780
777
  sourceAgentId: session.routing?.agentId ?? "main",
781
- workspaceId: session.cwd,
782
- sessionKey,
783
- projectId,
778
+ sourceSessionId: sessionKey,
784
779
  content,
780
+ canonicalKey: `project-session-summary:${projectId}:${sessionKey}`,
785
781
  source: {
786
782
  provider: "project-summary",
787
783
  sessionEntryId: sessionKey
788
784
  },
789
785
  confidence: typeof body.confidence === "number" ? body.confidence : .7,
790
- tags: [
791
- "project",
792
- "session-summary",
793
- project.slug
794
- ],
786
+ importance: .6,
795
787
  status: "active",
796
- sensitivity: "normal",
797
- evidence: [{ sessionKey }]
788
+ originClass: "agent",
789
+ replaceExisting: true
798
790
  });
799
791
  return c.json({
800
792
  ok: true,
801
- record
793
+ knowledge: record.item
802
794
  }, 201);
803
795
  });
804
796
  }
@@ -21,7 +21,7 @@ export declare function submitSessionInput(c: Context, deps: AuthenticatedRouteD
21
21
  }, 409, "json">) | (Response & import("hono").TypedResponse<{
22
22
  ok: false;
23
23
  error: {
24
- code: "BAD_REQUEST" | "QUEUE_FULL" | "CONTEXT_UNAVAILABLE" | "SESSION_CHANGED";
24
+ code: "SESSION_CHANGED" | "BAD_REQUEST" | "QUEUE_FULL" | "CONTEXT_UNAVAILABLE";
25
25
  message: string;
26
26
  };
27
27
  }, 400 | 409, "json">) | (Response & import("hono").TypedResponse<{
@@ -44,6 +44,13 @@ export declare function submitSessionInput(c: Context, deps: AuthenticatedRouteD
44
44
  effectiveDelivery: import("../../../storage/sqlite/session-input-repository.js").SessionInputDelivery;
45
45
  status: import("../../../storage/sqlite/session-input-repository.js").SessionInputStatus;
46
46
  content: string;
47
+ taskRunId?: string;
48
+ kind: "message" | "connection_resume";
49
+ payload?: {
50
+ waitId: string;
51
+ objectiveRevision: number;
52
+ resolution: "continued" | "skipped";
53
+ };
47
54
  attachments?: import("hono/dist/types/utils/types.js").JSONValue[];
48
55
  contextRefs?: {
49
56
  kind: import("../../../agent/source-context/types.js").AgentSourceContext["kind"];
@@ -133,6 +140,13 @@ export declare function replaceLatestSessionTurn(c: Context, deps: Authenticated
133
140
  effectiveDelivery: import("../../../storage/sqlite/session-input-repository.js").SessionInputDelivery;
134
141
  status: import("../../../storage/sqlite/session-input-repository.js").SessionInputStatus;
135
142
  content: string;
143
+ taskRunId?: string;
144
+ kind: "message" | "connection_resume";
145
+ payload?: {
146
+ waitId: string;
147
+ objectiveRevision: number;
148
+ resolution: "continued" | "skipped";
149
+ };
136
150
  attachments?: import("hono/dist/types/utils/types.js").JSONValue[];
137
151
  contextRefs?: {
138
152
  kind: import("../../../agent/source-context/types.js").AgentSourceContext["kind"];
@@ -87,6 +87,16 @@ function registerSideChatRoutes(authenticated, deps) {
87
87
  return respondSideChatError(c, error);
88
88
  }
89
89
  });
90
+ authenticated.post("/api/side-chats/:sideChatId/extend", deps.chatRateLimitMiddleware, (c) => {
91
+ try {
92
+ return c.json({
93
+ ok: true,
94
+ sideChat: service.sideChats.extend(c.req.param("sideChatId"), readClientInstanceId(c))
95
+ });
96
+ } catch (error) {
97
+ return respondSideChatError(c, error);
98
+ }
99
+ });
90
100
  authenticated.post("/api/side-chats/:sideChatId/inputs", deps.chatRateLimitMiddleware, async (c) => {
91
101
  try {
92
102
  const body = await c.req.json().catch(() => ({}));
@@ -162,11 +172,12 @@ function respondSideChatError(c, error) {
162
172
  code: "INTERNAL_ERROR"
163
173
  }, 500);
164
174
  }
165
- const status = error.code === "NOT_FOUND" ? 404 : error.code === "CONFLICT" ? 409 : error.code === "LIMIT_REACHED" ? 429 : 400;
175
+ const status = error.code === "EXPIRED" ? 410 : error.code === "NOT_FOUND" || error.code === "PARENT_NOT_FOUND" ? 404 : error.code === "CONFLICT" ? 409 : error.code === "CAPACITY_REACHED" ? 503 : error.code === "LIMIT_REACHED" ? 429 : 400;
166
176
  return c.json({
167
177
  ok: false,
168
178
  error: error.message,
169
- code: error.code
179
+ code: error.code,
180
+ reason: error.reason
170
181
  }, status);
171
182
  }
172
183
  //#endregion
@@ -2,10 +2,10 @@ import { runSqliteWriteTransaction } from "../../../storage/sqlite/transaction.j
2
2
  import { TaskPhaseSchema } from "../../../../packages/gateway-contract/src/task-lifecycle.js";
3
3
  import { TaskBoardPositionRequestSchema, TaskCommandRequestSchema, TaskContextInputSchema, TaskCreateRequestSchema, TaskDependencyUpdateRequestSchema, TaskHandoffRequestSchema, TaskPatchRequestSchema } from "../../../../packages/gateway-contract/src/tasks.js";
4
4
  import { ProjectMonitoringUpdateSchema } from "../../../../packages/gateway-contract/src/project-monitoring.js";
5
- import { TaskRepository } from "../../../tasks/task-repository.js";
6
- import { TaskConversationRepository } from "../../../tasks/task-conversation-repository.js";
7
5
  import { enqueueTaskChangedEvent } from "../../../tasks/task-change-events.js";
8
6
  import { TaskRunRepository } from "../../../tasks/task-run-repository.js";
7
+ import { TaskRepository } from "../../../tasks/task-repository.js";
8
+ import { TaskConversationRepository } from "../../../tasks/task-conversation-repository.js";
9
9
  import { TaskReadModelProjector } from "../../../tasks/task-read-model-projector.js";
10
10
  import { resolveProjectAgentId } from "../../../projects/project-agent.js";
11
11
  import { TaskContextRepository } from "../../../tasks/task-context-repository.js";
@@ -0,0 +1,3 @@
1
+ import type { Hono } from 'hono';
2
+ import type { AuthenticatedRouteDeps } from './deps.js';
3
+ export declare function registerUserModelRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void;