@xopcai/xopc 0.0.189 → 0.0.190

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 (347) hide show
  1. package/README.md +0 -3
  2. package/README.zh-CN.md +0 -3
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{activity-store-DTFKTPs8.js → activity-store-DstnJCS5.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DqO25Qe5.js → agent-avatar-dicebear-9vAbkroX.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-D1t4SfMQ.js +68 -0
  8. package/dist/gateway/static/root/assets/{api-DWeXfwVU.js → api-BTL9kayv.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-BRpV8PXG.js → app-management-settings-panel-DkFeIdBf.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-3ntKM9nQ.js → appearance-settings-Bxs8Fpaj.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-Cgrgu5OW.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-Df7Ycj_7.js → archive-plugin-Ch2RmLCC.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-UHgfZYtj.js → attachment-load-BhMQM_Ky.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-page-CtJxstKh.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-BJah99wE.js → binary-plugins-D6CqlymH.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-DNlY5KqF.js → block-editor-ClL6HEg9.js} +48 -48
  17. package/dist/gateway/static/root/assets/browser-settings-page-DW99iDmD.js +8 -0
  18. package/dist/gateway/static/root/assets/{browser-workflow-inputs-vyUfdzAd.js → browser-workflow-inputs-BYy48VhN.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-C1cKZjx-.js → browser-workflows-page-zgLibuMH.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-CHUrT9EB.js +7 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-BB8t4Ja7.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Cycrv0YV.js +1 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-BGG2kpJB.js → channel-recipient-api-BThDGiO3.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-V96gPUAU.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-Cz7SAAkm.js +1 -0
  26. package/dist/gateway/static/root/assets/connectors-api-DS9ED-EL.js +1 -0
  27. package/dist/gateway/static/root/assets/connectors-page-BhlyQoQI.js +2 -0
  28. package/dist/gateway/static/root/assets/cron-expression-CkgsvhtW.js +2 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-BUuBEJuP.js → desktop-pet-Cv8rGhYW.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-settings-BGfVIJM3.js → desktop-pet-settings-CIeJdwfV.js} +1 -1
  31. package/dist/gateway/static/root/assets/{directory-picker-path-field-DrQFfHH_.js → directory-picker-path-field-D8jXEiAY.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-debug-page-CEnIFOX-.js → extension-debug-page-CCZ9u6TZ.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-page-CCqHbexs.js → extension-page-CV36ILRG.js} +1 -1
  34. package/dist/gateway/static/root/assets/extension-settings-page-IyQrSILY.js +1 -0
  35. package/dist/gateway/static/root/assets/{gateway-config-api-CgUE2Ii1.js → gateway-config-api-D4_r5iJM.js} +1 -1
  36. package/dist/gateway/static/root/assets/gateway-settings-CYlntpBH.js +1 -0
  37. package/dist/gateway/static/root/assets/{gateway-startup-retry-DxhKNiCF.js → gateway-startup-retry-EO9mKvzE.js} +1 -1
  38. package/dist/gateway/static/root/assets/heartbeat-settings-D4SyWob8.js +1 -0
  39. package/dist/gateway/static/root/assets/home-page-B2Kagoh8.js +3 -0
  40. package/dist/gateway/static/root/assets/{image-generation-api-DCFdc-HD.js → image-generation-api-Bu7PyVSh.js} +1 -1
  41. package/dist/gateway/static/root/assets/index-CYT5DOzr.js +150 -0
  42. package/dist/gateway/static/root/assets/index-D6e3tPL-.css +1 -0
  43. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Bf2VLtXW.js → keyboard-shortcuts-settings-BMhCuVBZ.js} +1 -1
  44. package/dist/gateway/static/root/assets/local-app-workbench-page-BHYbFjqy.js +2 -0
  45. package/dist/gateway/static/root/assets/{local-apps-page-Ca1RuI13.js → local-apps-page-ijIe7_y2.js} +1 -1
  46. package/dist/gateway/static/root/assets/locale-store-deR2zRaE.js +1 -0
  47. package/dist/gateway/static/root/assets/logs-page-IIn8Tess.js +2 -0
  48. package/dist/gateway/static/root/assets/{management-settings-B3Eop1zn.js → management-settings--V_fovKD.js} +1 -1
  49. package/dist/gateway/static/root/assets/{markdown-split-BGOYjgnM.js → markdown-split-Dt9-in6W.js} +1 -1
  50. package/dist/gateway/static/root/assets/{media-plugins-CT0txyM4.js → media-plugins-B3pj_iO0.js} +1 -1
  51. package/dist/gateway/static/root/assets/messages-B4XqB8I6.js +3 -0
  52. package/dist/gateway/static/root/assets/{notes-page-DfKgAe78.js → notes-page-DZ366lIT.js} +1 -1
  53. package/dist/gateway/static/root/assets/notes-workbench-S2sBVOLw.js +4 -0
  54. package/dist/gateway/static/root/assets/{page-tabs-DNrbCgmC.js → page-tabs-C5ge434C.js} +1 -1
  55. package/dist/gateway/static/root/assets/{preview-open-alternatives-BTqViDOR.js → preview-open-alternatives-BFa9DgSV.js} +1 -1
  56. package/dist/gateway/static/root/assets/{product-open-page-C_2L4_Iu.js → product-open-page-Dc9CcWdu.js} +1 -1
  57. package/dist/gateway/static/root/assets/project-detail-page-BilzoCJ7.js +1 -0
  58. package/dist/gateway/static/root/assets/projects-page-BoQUyacP.js +1 -0
  59. package/dist/gateway/static/root/assets/remote-access-hub-DUyUaCRF.js +1 -0
  60. package/dist/gateway/static/root/assets/{schema-form-BFLfkDGG.js → schema-form-B84DckWe.js} +1 -1
  61. package/dist/gateway/static/root/assets/sessions-page-Dzxlq1F0.js +1 -0
  62. package/dist/gateway/static/root/assets/settings-advanced-gate-TzwlZxU6.js +1 -0
  63. package/dist/gateway/static/root/assets/settings-form-section-Dp9itvdy.js +1 -0
  64. package/dist/gateway/static/root/assets/{settings-loading-skeleton-C9a-EbTZ.js → settings-loading-skeleton-CCtlhoy7.js} +1 -1
  65. package/dist/gateway/static/root/assets/{settings-page-DI9qDH5x.js → settings-page-DQmMKf8r.js} +1 -1
  66. package/dist/gateway/static/root/assets/{settings-page-layout-D-LWQdI5.js → settings-page-layout-EQIOJa_L.js} +1 -1
  67. package/dist/gateway/static/root/assets/{setup-status-panel-CJwmPvgs.js → setup-status-panel-Cwi-SPja.js} +1 -1
  68. package/dist/gateway/static/root/assets/{share-preview-page-BKSMG9r5.js → share-preview-page-C4_B2jvf.js} +1 -1
  69. package/dist/gateway/static/root/assets/shares-settings-CkyuGlZK.js +1 -0
  70. package/dist/gateway/static/root/assets/skill-reload-api-BJCePQK5.js +1 -0
  71. package/dist/gateway/static/root/assets/skills-page-BYWLfmJi.js +2 -0
  72. package/dist/gateway/static/root/assets/{skills-page.utils-zsz2HIlZ.js → skills-page.utils-Jhm24i4h.js} +1 -1
  73. package/dist/gateway/static/root/assets/{system-settings-panel-IWNDBI1O.js → system-settings-panel-Dpx2ags2.js} +1 -1
  74. package/dist/gateway/static/root/assets/{task-detail-page-CgtK02kP.js → task-detail-page-DLAdxI6e.js} +1 -1
  75. package/dist/gateway/static/root/assets/{theme-store-BkJe7UDo.js → theme-store-DnBOcGXi.js} +1 -1
  76. package/dist/gateway/static/root/assets/{typed-models-lib-C07LGthO.js → typed-models-lib-DULmTHUB.js} +1 -1
  77. package/dist/gateway/static/root/assets/use-autosave-BrjVk5VH.js +1 -0
  78. package/dist/gateway/static/root/assets/user-context-page-9AAFpGAL.js +1 -0
  79. package/dist/gateway/static/root/assets/{voice-api-key-field-Boue1D46.js → voice-api-key-field-BISTPfq_.js} +1 -1
  80. package/dist/gateway/static/root/assets/{work-discovery-overlay-bbmvCmc8.js → work-discovery-overlay-Wr-uF7VA.js} +1 -1
  81. package/dist/gateway/static/root/assets/work-discovery-page-BWds95sL.js +1 -0
  82. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DlHv-GZC.js → workflow-run-setup-panel-DHqHP8_6.js} +2 -2
  83. package/dist/gateway/static/root/assets/workflows-page-0b4_DFHr.js +11 -0
  84. package/dist/gateway/static/root/index.html +7 -7
  85. package/dist/package.js +1 -1
  86. package/dist/packages/gateway-contract/src/tool-activity.js +0 -36
  87. package/dist/packages/realtime-client/src/index.js +105 -48
  88. package/dist/packages/realtime-protocol/src/index.js +6 -1
  89. package/dist/src/agent/agent-manager.d.ts +0 -1
  90. package/dist/src/agent/agent-manager.js +6 -13
  91. package/dist/src/agent/background-review/coordinator.js +1 -1
  92. package/dist/src/agent/background-review/run-background-review.js +5 -7
  93. package/dist/src/agent/bootstrap/bootstrap-cache.d.ts +0 -1
  94. package/dist/src/agent/bootstrap/bootstrap-cache.js +3 -4
  95. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +0 -4
  96. package/dist/src/agent/bootstrap/bootstrap-files.js +3 -4
  97. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -4
  98. package/dist/src/agent/bootstrap/load-bootstrap-files.d.ts +0 -1
  99. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -14
  100. package/dist/src/agent/bootstrap/types.d.ts +1 -1
  101. package/dist/src/agent/context/workspace-templates/SOUL.md +1 -1
  102. package/dist/src/agent/memory/builtin-provider.d.ts +2 -4
  103. package/dist/src/agent/memory/builtin-provider.js +35 -15
  104. package/dist/src/agent/memory/context/types.d.ts +3 -1
  105. package/dist/src/agent/memory/create-memory-manager.js +2 -0
  106. package/dist/src/agent/memory/index.d.ts +1 -1
  107. package/dist/src/agent/memory/index.js +1 -1
  108. package/dist/src/agent/memory/manager.d.ts +9 -1
  109. package/dist/src/agent/memory/manager.js +39 -9
  110. package/dist/src/agent/memory/memory-config.d.ts +1 -1
  111. package/dist/src/agent/memory/memory-config.js +1 -1
  112. package/dist/src/agent/memory/source-origin.js +0 -2
  113. package/dist/src/agent/memory/types.d.ts +5 -1
  114. package/dist/src/agent/memory/understanding/service.d.ts +10 -10
  115. package/dist/src/agent/memory/understanding/service.js +108 -176
  116. package/dist/src/agent/memory/understanding/types.d.ts +7 -8
  117. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  118. package/dist/src/agent/memory/user-context-coordinator.js +27 -41
  119. package/dist/src/agent/orchestration/agent-orchestrator.js +4 -7
  120. package/dist/src/agent/prompt/sections/memory-skills.js +4 -4
  121. package/dist/src/agent/prompt/sections/tooling.js +0 -10
  122. package/dist/src/agent/prompt/service-prompt-builder.d.ts +0 -1
  123. package/dist/src/agent/prompt/service-prompt-builder.js +4 -33
  124. package/dist/src/agent/prompt/system-prompt.js +1 -2
  125. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  126. package/dist/src/agent/service.d.ts +1 -2
  127. package/dist/src/agent/service.js +4 -17
  128. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +1 -1
  129. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -2
  130. package/dist/src/agent/tools/dreaming-tool.js +13 -38
  131. package/dist/src/agent/tools/factory.d.ts +0 -3
  132. package/dist/src/agent/tools/factory.js +1 -10
  133. package/dist/src/agent/tools/index.d.ts +0 -1
  134. package/dist/src/agent/tools/index.js +1 -2
  135. package/dist/src/agent/tools/memory-tool.js +1 -1
  136. package/dist/src/agent/workspace-runtime/registry.d.ts +3 -5
  137. package/dist/src/agent/workspace-runtime/registry.js +2 -15
  138. package/dist/src/agent-manifest/schema.d.ts +17 -17
  139. package/dist/src/agent-runtime/index.js +1 -1
  140. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  141. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  142. package/dist/src/automations/domain/validation.d.ts +28 -28
  143. package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
  144. package/dist/src/chat-commands/builtins/understanding.js +2 -5
  145. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  146. package/dist/src/cli/commands/init.js +3 -22
  147. package/dist/src/cli/templates.js +1 -1
  148. package/dist/src/config/index.js +3 -3
  149. package/dist/src/config/paths.d.ts +0 -5
  150. package/dist/src/config/paths.js +2 -11
  151. package/dist/src/config/schema.d.ts +24 -117
  152. package/dist/src/config/schema.js +9 -39
  153. package/dist/src/connectors/learning-coordinator.js +75 -3
  154. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  155. package/dist/src/gateway/agent-builtin-tools.js +0 -5
  156. package/dist/src/gateway/agents-admin.d.ts +0 -7
  157. package/dist/src/gateway/agents-admin.js +3 -32
  158. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +3 -3
  159. package/dist/src/gateway/dreaming-automation-reconciler.js +48 -88
  160. package/dist/src/gateway/hono/lib/config-payload.d.ts +19 -7
  161. package/dist/src/gateway/hono/lib/config-payload.js +3 -1
  162. package/dist/src/gateway/hono/oauth-async.d.ts +1 -0
  163. package/dist/src/gateway/hono/oauth-async.js +17 -2
  164. package/dist/src/gateway/hono/routes/agents.js +1 -33
  165. package/dist/src/gateway/hono/routes/config-patch/misc.js +17 -1
  166. package/dist/src/gateway/hono/routes/connectors.js +13 -12
  167. package/dist/src/gateway/hono/routes/index.js +2 -2
  168. package/dist/src/gateway/hono/routes/lazy-bundles.js +1 -5
  169. package/dist/src/gateway/hono/routes/status.js +0 -7
  170. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +3 -0
  171. package/dist/src/gateway/hono/routes/understanding-sources.js +203 -0
  172. package/dist/src/gateway/hono/routes/work-discovery.d.ts +2 -0
  173. package/dist/src/gateway/hono/routes/work-discovery.js +3 -134
  174. package/dist/src/gateway/hono/routes/you.d.ts +0 -22
  175. package/dist/src/gateway/hono/routes/you.js +234 -1118
  176. package/dist/src/gateway/service/config-coordinator.d.ts +1 -1
  177. package/dist/src/gateway/service/run-gateway-agent.js +2 -4
  178. package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
  179. package/dist/src/knowledge/connected-understanding-pipeline.d.ts +2 -4
  180. package/dist/src/knowledge/connected-understanding-pipeline.js +31 -81
  181. package/dist/src/knowledge/index.js +2 -2
  182. package/dist/src/knowledge/people-graph.d.ts +22 -25
  183. package/dist/src/knowledge/people-graph.js +76 -43
  184. package/dist/src/proactive/execution/context.js +8 -13
  185. package/dist/src/realtime/broker.d.ts +1 -0
  186. package/dist/src/realtime/broker.js +19 -2
  187. package/dist/src/realtime/runtime.js +6 -1
  188. package/dist/src/storage/sqlite/connector-account-repository.js +0 -1
  189. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +37 -0
  190. package/dist/src/storage/sqlite/context-consolidation-repository.js +64 -0
  191. package/dist/src/storage/sqlite/fts.d.ts +2 -0
  192. package/dist/src/storage/sqlite/fts.js +29 -1
  193. package/dist/src/storage/sqlite/index.d.ts +4 -6
  194. package/dist/src/storage/sqlite/index.js +5 -7
  195. package/dist/src/storage/sqlite/knowledge-repository.d.ts +9 -2
  196. package/dist/src/storage/sqlite/knowledge-repository.js +58 -10
  197. package/dist/src/storage/sqlite/memory-records-repository.d.ts +7 -56
  198. package/dist/src/storage/sqlite/memory-records-repository.js +68 -218
  199. package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +54 -0
  200. package/dist/src/storage/sqlite/migrations/114_user_context_domain.sql +193 -0
  201. package/dist/src/storage/sqlite/migrations/115_remove_legacy_user_context.sql +6 -0
  202. package/dist/src/storage/sqlite/migrations/116_structured_context_consolidation.sql +38 -0
  203. package/dist/src/storage/sqlite/migrations/117_unified_understanding_sources.sql +110 -0
  204. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  205. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  206. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  207. package/dist/src/storage/sqlite/schema.js +1 -1
  208. package/dist/src/storage/sqlite/schema.sql +0 -20
  209. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +34 -0
  210. package/dist/src/storage/sqlite/user-context-quality-repository.js +74 -0
  211. package/dist/src/storage/sqlite/user-context-repository.d.ts +64 -0
  212. package/dist/src/storage/sqlite/user-context-repository.js +383 -0
  213. package/dist/src/tui/tool-summary.js +1 -7
  214. package/dist/src/tui/tui-startup-resources.js +1 -2
  215. package/dist/src/user-context/config.d.ts +17 -210
  216. package/dist/src/user-context/config.js +19 -85
  217. package/dist/src/user-context/consolidation.d.ts +26 -0
  218. package/dist/src/user-context/consolidation.js +115 -0
  219. package/dist/src/user-context/domain.d.ts +75 -0
  220. package/dist/src/user-context/domain.js +4 -0
  221. package/dist/src/user-context/manual-understanding.d.ts +7 -14
  222. package/dist/src/user-context/manual-understanding.js +19 -54
  223. package/dist/src/{agent/memory/context → user-context}/planner.d.ts +5 -6
  224. package/dist/src/user-context/planner.js +311 -0
  225. package/dist/src/user-context/relationship-continuity.d.ts +3 -6
  226. package/dist/src/user-context/relationship-continuity.js +39 -32
  227. package/dist/src/user-context/sources/catalog.d.ts +2 -0
  228. package/dist/src/user-context/sources/catalog.js +149 -0
  229. package/dist/src/user-context/sources/index.d.ts +3 -0
  230. package/dist/src/user-context/sources/index.js +3 -0
  231. package/dist/src/user-context/sources/repository.d.ts +40 -0
  232. package/dist/src/user-context/sources/repository.js +164 -0
  233. package/dist/src/user-context/sources/types.d.ts +83 -0
  234. package/dist/src/work-discovery/analyzer.d.ts +4 -3
  235. package/dist/src/work-discovery/analyzer.js +21 -16
  236. package/dist/src/work-discovery/incremental-repository.js +42 -40
  237. package/dist/src/work-discovery/index.js +3 -3
  238. package/dist/src/work-discovery/service.d.ts +7 -7
  239. package/dist/src/work-discovery/service.js +241 -190
  240. package/dist/src/work-discovery/source-repository.js +42 -53
  241. package/dist/src/work-discovery/types.d.ts +2 -14
  242. package/package.json +3 -8
  243. package/dist/gateway/static/root/assets/agents-BvdqdER9.js +0 -2
  244. package/dist/gateway/static/root/assets/apps-page-nKLsfy6C.js +0 -1
  245. package/dist/gateway/static/root/assets/automations-page-Dh5bdZiN.js +0 -6
  246. package/dist/gateway/static/root/assets/browser-settings-page-CRJ_nAuh.js +0 -8
  247. package/dist/gateway/static/root/assets/capabilities-settings-panel-DeQR5BZt.js +0 -7
  248. package/dist/gateway/static/root/assets/capability-presets-api-D7tkhDMv.js +0 -1
  249. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7uK3q1p.js +0 -1
  250. package/dist/gateway/static/root/assets/channels-settings-Bw6Dniyq.js +0 -1
  251. package/dist/gateway/static/root/assets/channels-status-swr-BrUTz4uU.js +0 -1
  252. package/dist/gateway/static/root/assets/connector-logo-8YU53RUT.js +0 -1
  253. package/dist/gateway/static/root/assets/connectors-page-k9tMiOL5.js +0 -2
  254. package/dist/gateway/static/root/assets/cron-expression-B3B1eqnr.js +0 -2
  255. package/dist/gateway/static/root/assets/extension-settings-page-DEZw_7zN.js +0 -1
  256. package/dist/gateway/static/root/assets/gateway-settings-Dg8qCiIp.js +0 -1
  257. package/dist/gateway/static/root/assets/heartbeat-settings-27tRzDEo.js +0 -1
  258. package/dist/gateway/static/root/assets/home-page-VA511kMr.js +0 -3
  259. package/dist/gateway/static/root/assets/index-BvR-i-m6.js +0 -216
  260. package/dist/gateway/static/root/assets/index-zybP34zk.css +0 -1
  261. package/dist/gateway/static/root/assets/local-app-workbench-page-CaJq4-wV.js +0 -2
  262. package/dist/gateway/static/root/assets/locale-store-DUW5YE3R.js +0 -1
  263. package/dist/gateway/static/root/assets/logs-page-BLTCg69e.js +0 -2
  264. package/dist/gateway/static/root/assets/messages-CMjnbdbn.js +0 -3
  265. package/dist/gateway/static/root/assets/notes-workbench-Bp1w9UM1.js +0 -4
  266. package/dist/gateway/static/root/assets/project-detail-page-CZmbPDQN.js +0 -1
  267. package/dist/gateway/static/root/assets/projects-page-D5pzqfm5.js +0 -1
  268. package/dist/gateway/static/root/assets/remote-access-hub-CC-XhVGI.js +0 -1
  269. package/dist/gateway/static/root/assets/segmented-styles-BL8oLBEp.js +0 -1
  270. package/dist/gateway/static/root/assets/sessions-page-B2eTLVDV.js +0 -1
  271. package/dist/gateway/static/root/assets/settings-advanced-gate-CRuZ_bl0.js +0 -1
  272. package/dist/gateway/static/root/assets/settings-form-section-C4GXGeA4.js +0 -1
  273. package/dist/gateway/static/root/assets/shares-settings-YzSDS4G_.js +0 -1
  274. package/dist/gateway/static/root/assets/skill-reload-api-CwOo8zZk.js +0 -1
  275. package/dist/gateway/static/root/assets/skills-page-xd1cgSGN.js +0 -2
  276. package/dist/gateway/static/root/assets/time-picker-CstQ___Y.js +0 -1
  277. package/dist/gateway/static/root/assets/use-save-bar-registration-CQYE0l6z.js +0 -1
  278. package/dist/gateway/static/root/assets/user-context-page-BnQAWS_B.js +0 -1
  279. package/dist/gateway/static/root/assets/work-discovery-page-CAszL1y8.js +0 -1
  280. package/dist/gateway/static/root/assets/workflows-page-DxGzo3-x.js +0 -11
  281. package/dist/src/agent/code-intelligence/binary.d.ts +0 -15
  282. package/dist/src/agent/code-intelligence/binary.js +0 -372
  283. package/dist/src/agent/code-intelligence/index.d.ts +0 -4
  284. package/dist/src/agent/code-intelligence/index.js +0 -4
  285. package/dist/src/agent/code-intelligence/runtime.d.ts +0 -34
  286. package/dist/src/agent/code-intelligence/runtime.js +0 -280
  287. package/dist/src/agent/code-intelligence/tool-gating.d.ts +0 -5
  288. package/dist/src/agent/code-intelligence/tool-gating.js +0 -6
  289. package/dist/src/agent/code-intelligence/tools.d.ts +0 -6
  290. package/dist/src/agent/code-intelligence/tools.js +0 -266
  291. package/dist/src/agent/code-intelligence/types.d.ts +0 -22
  292. package/dist/src/agent/memory/context/planner.js +0 -286
  293. package/dist/src/agent/memory/dreaming/config.d.ts +0 -48
  294. package/dist/src/agent/memory/dreaming/config.js +0 -98
  295. package/dist/src/agent/memory/dreaming/constants.d.ts +0 -12
  296. package/dist/src/agent/memory/dreaming/constants.js +0 -18
  297. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +0 -19
  298. package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -152
  299. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +0 -16
  300. package/dist/src/agent/memory/dreaming/light-sweep.js +0 -115
  301. package/dist/src/agent/memory/dreaming/preview.d.ts +0 -23
  302. package/dist/src/agent/memory/dreaming/preview.js +0 -52
  303. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +0 -16
  304. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -44
  305. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +0 -19
  306. package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -150
  307. package/dist/src/agent/memory/dreaming/runner.d.ts +0 -10
  308. package/dist/src/agent/memory/dreaming/runner.js +0 -78
  309. package/dist/src/agent/memory/dreaming/schedule.d.ts +0 -23
  310. package/dist/src/agent/memory/dreaming/schedule.js +0 -38
  311. package/dist/src/agent/memory/dreaming/scope.d.ts +0 -11
  312. package/dist/src/agent/memory/dreaming/scope.js +0 -33
  313. package/dist/src/agent/memory/dreaming/utils.d.ts +0 -3
  314. package/dist/src/agent/memory/dreaming/utils.js +0 -31
  315. package/dist/src/gateway/hono/routes/memory.d.ts +0 -3
  316. package/dist/src/gateway/hono/routes/memory.js +0 -460
  317. package/dist/src/storage/sqlite/dreaming-repository.d.ts +0 -61
  318. package/dist/src/storage/sqlite/dreaming-repository.js +0 -88
  319. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +0 -7
  320. package/dist/src/storage/sqlite/memory-readiness-repository.js +0 -30
  321. package/dist/src/storage/sqlite/memory-reference-consent-repository.d.ts +0 -27
  322. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -107
  323. package/dist/src/storage/sqlite/user-claims-repository.d.ts +0 -101
  324. package/dist/src/storage/sqlite/user-claims-repository.js +0 -241
  325. package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +0 -3
  326. package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -32
  327. package/dist/src/user-context/actionableInsights.d.ts +0 -14
  328. package/dist/src/user-context/actionableInsights.js +0 -34
  329. package/dist/src/user-context/context-compiler.d.ts +0 -27
  330. package/dist/src/user-context/context-compiler.js +0 -48
  331. package/dist/src/user-context/import.d.ts +0 -12
  332. package/dist/src/user-context/import.js +0 -51
  333. package/dist/src/user-context/memory-episode-evaluator.d.ts +0 -32
  334. package/dist/src/user-context/memory-episode-evaluator.js +0 -35
  335. package/dist/src/user-context/memory-readiness.d.ts +0 -33
  336. package/dist/src/user-context/memory-readiness.js +0 -41
  337. package/dist/src/user-context/memory-use-audit.d.ts +0 -10
  338. package/dist/src/user-context/memory-use-audit.js +0 -26
  339. package/dist/src/user-context/personal-playbook.d.ts +0 -11
  340. package/dist/src/user-context/personal-playbook.js +0 -41
  341. package/dist/src/user-context/profile.d.ts +0 -37
  342. package/dist/src/user-context/profile.js +0 -163
  343. package/dist/src/user-context/projection.d.ts +0 -120
  344. package/dist/src/user-context/projection.js +0 -262
  345. package/dist/src/user-context/source-recommendations.d.ts +0 -13
  346. package/dist/src/user-context/source-recommendations.js +0 -85
  347. /package/dist/src/{agent/code-intelligence → user-context/sources}/types.js +0 -0
@@ -64,7 +64,7 @@ function parseModelRef(ref) {
64
64
  model: trimmed.slice(idx + 1).trim()
65
65
  };
66
66
  }
67
- var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentTypedModelRoleSchema, AgentTypedModelRolesSchema, AgentModelsSchema, AgentsConfigSchema, BrowserCloudConfigSchema, BrowserExtensionConfigSchema, BrowserCloakConfigSchema, BrowserConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, HeartbeatConfigSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayWebchatConfigSchema, GatewayConfigSchema, ModelsDevConfigSchema, ModelCatalogConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, UpdateConfigSchema, CommandsConfigSchema, TuiConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpServerSchema, McpConfigSchema, CodeIntelligenceConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
67
+ var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentTypedModelRoleSchema, AgentTypedModelRolesSchema, AgentModelsSchema, AgentsConfigSchema, BrowserCloudConfigSchema, BrowserExtensionConfigSchema, BrowserCloakConfigSchema, BrowserConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, HeartbeatConfigSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayWebchatConfigSchema, GatewayConfigSchema, ModelsDevConfigSchema, ModelCatalogConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, UpdateConfigSchema, CommandsConfigSchema, TuiConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpServerSchema, McpConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
68
68
  var init_schema = __esmMin((() => {
69
69
  init_schema$1();
70
70
  init_preset_chain();
@@ -902,30 +902,6 @@ defaultAgent: z.string().min(1).optional() }).strict().default({});
902
902
  servers: z.record(z.string(), McpServerSchema).optional(),
903
903
  sessionIdleTtlMs: z.number().finite().min(0).optional()
904
904
  }).strict().optional();
905
- CodeIntelligenceConfigSchema = z.object({
906
- enabled: z.boolean().default(true),
907
- agentIds: z.array(z.string().min(1)).default(["coder"]),
908
- indexMode: z.enum([
909
- "fast",
910
- "moderate",
911
- "full"
912
- ]).default("moderate"),
913
- autoIndex: z.boolean().default(true),
914
- autoRefresh: z.boolean().default(true),
915
- refreshDebounceMs: z.number().int().min(100).max(3e4).default(600),
916
- queryTimeoutMs: z.number().int().min(1e3).max(12e4).default(2e4),
917
- indexTimeoutMs: z.number().int().min(1e4).max(30 * 6e4).default(5 * 6e4),
918
- binaryPath: z.string().min(1).optional()
919
- }).strict().default({
920
- enabled: true,
921
- agentIds: ["coder"],
922
- indexMode: "moderate",
923
- autoIndex: true,
924
- autoRefresh: true,
925
- refreshDebounceMs: 600,
926
- queryTimeoutMs: 2e4,
927
- indexTimeoutMs: 5 * 6e4
928
- });
929
905
  ConnectorsConfigSchema = z.object({ instances: z.record(z.string(), z.record(z.string(), z.unknown())).optional() }).strict().optional();
930
906
  ExperimentalConfigSchema = z.object({
931
907
  /** First-run activation that analyzes one explicitly selected local folder. */
@@ -942,7 +918,6 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
942
918
  workspace: WorkspaceConfigSchema,
943
919
  tools: ToolsConfigSchema,
944
920
  mcp: McpConfigSchema,
945
- codeIntelligence: CodeIntelligenceConfigSchema,
946
921
  connectors: ConnectorsConfigSchema,
947
922
  experimental: ExperimentalConfigSchema,
948
923
  extensions: ExtensionsConfigSchema.default({}),
@@ -957,7 +932,7 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
957
932
  update: UpdateConfigSchema,
958
933
  commands: CommandsConfigSchema,
959
934
  tui: TuiConfigSchema
960
- }).default({
935
+ }).strict().default({
961
936
  userContext: {
962
937
  enabled: true,
963
938
  preferences: { responseLanguage: "auto" },
@@ -979,7 +954,12 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
979
954
  writeStrategy: "local-first",
980
955
  allowExternalWrites: false
981
956
  },
982
- dreaming: { mode: "off" }
957
+ dreaming: {
958
+ mode: "review",
959
+ schedule: { time: "03:00" },
960
+ minEvidenceSources: 2,
961
+ limit: 500
962
+ }
983
963
  },
984
964
  agents: {
985
965
  default: "main",
@@ -1052,16 +1032,6 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
1052
1032
  maxResults: 5,
1053
1033
  providers: []
1054
1034
  } } },
1055
- codeIntelligence: {
1056
- enabled: true,
1057
- agentIds: ["coder"],
1058
- indexMode: "moderate",
1059
- autoIndex: true,
1060
- autoRefresh: true,
1061
- refreshDebounceMs: 600,
1062
- queryTimeoutMs: 2e4,
1063
- indexTimeoutMs: 5 * 6e4
1064
- },
1065
1035
  experimental: { workDiscoveryOnboarding: true },
1066
1036
  extensions: {
1067
1037
  allow: [],
@@ -1085,4 +1055,4 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
1085
1055
  }));
1086
1056
  //#endregion
1087
1057
  init_schema();
1088
- export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CodeIntelligenceConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef };
1058
+ export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef };
@@ -10,6 +10,7 @@ import { connectorIdentityKey, normalizeConnectorIdentity } from "./connector-id
10
10
  import { ComposioSessionsAdapter } from "./composio-sessions.js";
11
11
  import { buildConnectorLearningArguments, getConnectorLearningPlan } from "./learning-recipes.js";
12
12
  import { getConnectorDefinition } from "./catalog.js";
13
+ import { createUnderstandingSourceRun, listUnderstandingSourceRuns, updateUnderstandingSourceGrantCheckpoint, updateUnderstandingSourceRun, upsertUnderstandingSourceGrant, upsertUserFocus } from "../user-context/sources/repository.js";
13
14
  import { ConnectedUnderstandingPipeline } from "../knowledge/connected-understanding-pipeline.js";
14
15
  import "../knowledge/index.js";
15
16
  import { ingestComposioConnectedSource } from "./connected-source-ingestion.js";
@@ -22,8 +23,41 @@ function learningFailureCode(error) {
22
23
  const message = error instanceof Error ? error.message : String(error);
23
24
  return message.includes("ToolRouterV2_InvalidConnectedAccountIds") || message.includes("Could not find connected account(s)") || message.includes("missing its provider identity") ? CONNECTED_ACCOUNT_UNAVAILABLE : CONNECTED_SOURCE_SYNC_FAILED;
24
25
  }
26
+ function connectorSourceCategory(toolkit) {
27
+ if (toolkit === "gmail") return "mail";
28
+ if (toolkit === "googlecalendar") return "calendar";
29
+ if (toolkit === "github" || toolkit === "linear") return "code_activity";
30
+ if (toolkit === "slack") return "messages";
31
+ return "files";
32
+ }
33
+ function ensureUnderstandingSourceRun(job, toolkit, displayName) {
34
+ const grant = upsertUnderstandingSourceGrant({
35
+ sourceKey: `connector-account:${job.accountId}`,
36
+ adapterId: `connector:${job.connectorId}`,
37
+ category: connectorSourceCategory(toolkit),
38
+ platform: "all",
39
+ displayName,
40
+ accessMode: "continuous",
41
+ retentionPolicy: "bounded_raw",
42
+ processingPolicy: "remote_allowed",
43
+ config: {
44
+ connectorId: job.connectorId,
45
+ accountId: job.accountId,
46
+ readOnly: true
47
+ }
48
+ });
49
+ return listUnderstandingSourceRuns(grant.id, 100).find((run) => run.metadata.connectorLearningJobId === job.id) ?? createUnderstandingSourceRun({
50
+ grantId: grant.id,
51
+ kind: job.mode,
52
+ status: "queued",
53
+ metadata: {
54
+ connectorLearningJobId: job.id,
55
+ connectorId: job.connectorId
56
+ }
57
+ });
58
+ }
25
59
  function learningEnabled(config) {
26
- return config.userContext.enabled && config.userContext.understanding.enabled && config.userContext.memory.mode !== "off" && config.userContext.memory.sources.includes("connectedSources");
60
+ return config.userContext.enabled && config.userContext.understanding.enabled;
27
61
  }
28
62
  function startConnectorLearningCoordinator(options) {
29
63
  const intervalMs = Math.max(2e3, Math.min(options.intervalMs ?? 1e4, 6e4));
@@ -60,6 +94,7 @@ function startConnectorLearningCoordinator(options) {
60
94
  idempotencyKey: request.idempotencyKey ?? (mode === "bootstrap" ? `bootstrap:${connection.accountId}:v1` : `incremental:${connection.accountId}:${request.reason ?? "manual"}:${bucket}`),
61
95
  nextRunAt: request.nextRunAt
62
96
  });
97
+ ensureUnderstandingSourceRun(job, definition.runtime.toolkit, definition.displayName);
63
98
  publish(job);
64
99
  queueMicrotask(() => void runNow());
65
100
  return job;
@@ -77,6 +112,8 @@ function startConnectorLearningCoordinator(options) {
77
112
  if (definition?.runtime.type !== "composio" || definition.runtime.role !== "toolkit") throw new Error(`Connector learning is unavailable for ${job.connectorId}.`);
78
113
  const plan = getConnectorLearningPlan(definition.runtime.toolkit);
79
114
  if (!plan) throw new Error(`Connector learning has no plan for ${definition.runtime.toolkit}.`);
115
+ const sourceRun = ensureUnderstandingSourceRun(job, plan.toolkit, definition.displayName);
116
+ updateUnderstandingSourceRun(sourceRun.id, { status: "running" });
80
117
  let connection = listConnectorConnections().find((candidate) => candidate.id === job.connectionId);
81
118
  if (!connection) throw new Error("Connector account no longer exists.");
82
119
  const installation = getConnectorInstallation(`${job.connectorId}-local-owner`);
@@ -153,13 +190,42 @@ function startConnectorLearningCoordinator(options) {
153
190
  }));
154
191
  publish(updateConnectorLearningJob(job.id, { phase: "deriving" }));
155
192
  const understanding = await new ConnectedUnderstandingPipeline(options.getMemoryManager()).process(job.sourceInstanceId, job.connectorId, job.agentId);
156
- publish(updateConnectorLearningJob(job.id, {
193
+ for (const record of understanding.createdRecords.filter((item) => item.kind === "project_context")) upsertUserFocus({
194
+ canonicalKey: `connector-focus:${job.accountId}:${record.id}`,
195
+ title: record.content.slice(0, 120),
196
+ summary: record.content,
197
+ horizon: "ongoing",
198
+ status: "candidate",
199
+ confidence: .72,
200
+ evidenceRefs: [`connector-account:${job.accountId}`],
201
+ sourceRunId: sourceRun.id
202
+ });
203
+ const completed = updateConnectorLearningJob(job.id, {
157
204
  status: "completed",
158
205
  phase: "completed",
159
206
  candidatesCreated: understanding.created,
160
207
  nextRunAt: null,
161
208
  finished: true
162
- }));
209
+ });
210
+ updateUnderstandingSourceRun(sourceRun.id, {
211
+ status: "completed",
212
+ itemsSeen,
213
+ cursorAfter: (/* @__PURE__ */ new Date()).toISOString(),
214
+ completed: true,
215
+ metadata: {
216
+ ...sourceRun.metadata,
217
+ itemsIndexed,
218
+ candidatesCreated: understanding.created
219
+ }
220
+ });
221
+ updateUnderstandingSourceGrantCheckpoint(sourceRun.grantId, {
222
+ checkpoint: {
223
+ cursor: (/* @__PURE__ */ new Date()).toISOString(),
224
+ connectorLearningJobId: job.id
225
+ },
226
+ lastCollectedAt: Date.now()
227
+ });
228
+ publish(completed);
163
229
  pruneBoundedKnowledgeSourceItems(job.sourceInstanceId, Date.now() - plan.bootstrapWindowDays * 24 * 60 * 6e4);
164
230
  const syncPolicy = getConnectorSyncPolicyForConnection(job.connectionId);
165
231
  if (syncPolicy?.scanEnabled === false) return;
@@ -190,6 +256,12 @@ function startConnectorLearningCoordinator(options) {
190
256
  nextRunAt: exhausted ? null : Date.now() + Math.min(30 * 6e4, 3e4 * 2 ** Math.min(job.attemptCount, 6)),
191
257
  finished: true
192
258
  }));
259
+ const definition = getConnectorDefinition(job.connectorId);
260
+ if (definition?.runtime.type === "composio" && definition.runtime.role === "toolkit") updateUnderstandingSourceRun(ensureUnderstandingSourceRun(job, definition.runtime.toolkit, definition.displayName).id, {
261
+ status: "failed",
262
+ errorMessage,
263
+ completed: true
264
+ });
193
265
  log.warn({
194
266
  err,
195
267
  jobId: job.id,
@@ -2,5 +2,5 @@
2
2
  * Built-in agent tool `name` values for gateway admin UI (disable toggles).
3
3
  * Extension tools are not listed; users can still add arbitrary strings in config.
4
4
  */
5
- export declare const GATEWAY_BUILTIN_TOOL_IDS: readonly ["code_search", "code_read_symbol", "code_trace", "code_impact", "code_architecture", "read_file", "write_file", "apply_patch", "list_dir", "grep", "find", "exec_command", "update_plan", "session_status", "dreaming", "tool_manual", "clarify", "todo", "skills_list", "skill_view", "skill_manage", "skills_marketplace_search", "skill_install", "web_search", "web_fetch", "web_extract", "send_message", "send_media", "read_media", "create_share", "text_to_speech", "memory_search", "memory_get", "session_search", "automation", "workflow", "delegate_task", "execute_code", "image", "image_generate", "create_desktop_pet", "browser_use", "xopc_tool_search", "xopc_tool_describe", "xopc_tool_execute"];
5
+ export declare const GATEWAY_BUILTIN_TOOL_IDS: readonly ["read_file", "write_file", "apply_patch", "list_dir", "grep", "find", "exec_command", "update_plan", "session_status", "dreaming", "tool_manual", "clarify", "todo", "skills_list", "skill_view", "skill_manage", "skills_marketplace_search", "skill_install", "web_search", "web_fetch", "web_extract", "send_message", "send_media", "read_media", "create_share", "text_to_speech", "memory_search", "memory_get", "session_search", "automation", "workflow", "delegate_task", "execute_code", "image", "image_generate", "create_desktop_pet", "browser_use", "xopc_tool_search", "xopc_tool_describe", "xopc_tool_execute"];
6
6
  export type GatewayBuiltinToolId = (typeof GATEWAY_BUILTIN_TOOL_IDS)[number];
@@ -6,11 +6,6 @@ import "../agent/external-tools/index.js";
6
6
  * Extension tools are not listed; users can still add arbitrary strings in config.
7
7
  */
8
8
  const GATEWAY_BUILTIN_TOOL_IDS = [
9
- "code_search",
10
- "code_read_symbol",
11
- "code_trace",
12
- "code_impact",
13
- "code_architecture",
14
9
  "read_file",
15
10
  "write_file",
16
11
  "apply_patch",
@@ -140,13 +140,6 @@ export declare function writeAgentProfileFile(cfg: Config, agentId: string, name
140
140
  agentId: string;
141
141
  path: string;
142
142
  }>>;
143
- export declare function readUserProfileFile(): Promise<AgentAdminResult<{
144
- content: string;
145
- path: string;
146
- }>>;
147
- export declare function writeUserProfileFile(content: string): Promise<AgentAdminResult<{
148
- path: string;
149
- }>>;
150
143
  export declare function readAgentAvatarFile(cfg: Config, agentId: string): Promise<AgentAdminResult<{
151
144
  agentId: string;
152
145
  buffer: Buffer;
@@ -1,14 +1,14 @@
1
1
  import { resolveCapabilityPresetLayer, resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
2
2
  import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveAgentDir, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId, resolveUserPath, validateAgentIdForNewAgent } from "../agent/agent-scope.js";
3
3
  import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
4
- import { WORKSPACE_FILES, init_paths, resolveUserProfilePath } from "../config/paths.js";
4
+ import { WORKSPACE_FILES, init_paths } from "../config/paths.js";
5
5
  import { AGENT_PROFILE_MARKDOWN_SYSTEM_FILES, REQUIRED_AGENT_PROFILE_MARKDOWN_FILE_SET } from "../agent/context/workspace.js";
6
6
  import { isPathUnderWorkspace, resolveWorkspaceSafePath } from "./workspace-editor-path.js";
7
7
  import { seedAgentProfileMarkdownFiles } from "../agent/context/workspace-seed.js";
8
8
  import { applyAgentConfig, findAgentEntryIndex, getAgentDeleteBlocker, pruneAgentConfig, removeAgentDirsFromDisk } from "../commands/agents.config.js";
9
9
  import { resolveEffectiveTypedModels } from "../config/agent-typed-models.js";
10
10
  import { GATEWAY_BUILTIN_TOOL_IDS } from "./agent-builtin-tools.js";
11
- import { dirname, join, resolve } from "node:path";
11
+ import { join, resolve } from "node:path";
12
12
  import { cp, mkdir, readFile, readdir, realpath, stat, unlink, writeFile } from "node:fs/promises";
13
13
  //#region src/gateway/agents-admin.ts
14
14
  /**
@@ -525,35 +525,6 @@ async function writeAgentProfileFile(cfg, agentId, name, content) {
525
525
  }
526
526
  };
527
527
  }
528
- async function readUserProfileFile() {
529
- const path = resolveUserProfilePath();
530
- try {
531
- return {
532
- ok: true,
533
- data: {
534
- content: await readFile(path, "utf-8"),
535
- path
536
- }
537
- };
538
- } catch {
539
- return {
540
- ok: true,
541
- data: {
542
- content: "",
543
- path
544
- }
545
- };
546
- }
547
- }
548
- async function writeUserProfileFile(content) {
549
- const path = resolveUserProfilePath();
550
- await mkdir(dirname(path), { recursive: true });
551
- await writeFile(path, content, "utf-8");
552
- return {
553
- ok: true,
554
- data: { path }
555
- };
556
- }
557
528
  const AGENT_AVATAR_MAX_BYTES = 512 * 1024;
558
529
  const AGENT_AVATAR_BASENAME = "agent-avatar";
559
530
  const AGENT_AVATAR_EXTENSIONS = [
@@ -701,4 +672,4 @@ async function deleteAgentAvatarFile(cfg, agentId) {
701
672
  };
702
673
  }
703
674
  //#endregion
704
- export { deleteAgentAvatarFile, extractAvatarFromIdentityMarkdown, finalizeCreateAgentDirs, getGatewayAgentEffectiveManifest, listAgentProfileFiles, listGatewayAgents, parseIdentityMarkdown, prepareCreateAgent, prepareDeleteAgent, prepareUpdateAgent, readAgentAvatarFile, readAgentProfileFile, readUserProfileFile, runAfterDeletePurge, writeAgentAvatarFromBase64, writeAgentProfileFile, writeUserProfileFile };
675
+ export { deleteAgentAvatarFile, extractAvatarFromIdentityMarkdown, finalizeCreateAgentDirs, getGatewayAgentEffectiveManifest, listAgentProfileFiles, listGatewayAgents, parseIdentityMarkdown, prepareCreateAgent, prepareDeleteAgent, prepareUpdateAgent, readAgentAvatarFile, readAgentProfileFile, runAfterDeletePurge, writeAgentAvatarFromBase64, writeAgentProfileFile };
@@ -1,9 +1,9 @@
1
1
  import type { Config } from '../config/schema.js';
2
2
  import type { AutomationService } from '../automations/index.js';
3
3
  export type DreamingAutomationReconcileResult = {
4
- created: string[];
5
- updated: string[];
6
- disabled: string[];
4
+ created: boolean;
5
+ updated: boolean;
6
+ disabled: boolean;
7
7
  };
8
8
  export declare function reconcileDreamingAutomations(params: {
9
9
  config: Config;
@@ -1,100 +1,60 @@
1
- import { DREAMING_AUTOMATION_TAG, DREAMING_DEEP_AUTOMATION_NAME, DREAMING_LIGHT_AUTOMATION_NAME, DREAMING_LIGHT_SWEEP_TOKEN, DREAMING_REM_AUTOMATION_NAME, DREAMING_REM_SWEEP_TOKEN, DREAMING_SWEEP_TOKEN } from "../agent/memory/dreaming/constants.js";
2
- import { compileDreamingSchedule } from "../agent/memory/dreaming/schedule.js";
3
- import { resolveDreamingAgentScope } from "../agent/memory/dreaming/scope.js";
1
+ import { init_agent_scope, normalizeAgentId, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent/agent-scope.js";
2
+ import { USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID, USER_CONTEXT_CONSOLIDATION_TOKEN, compileContextConsolidationCron, resolveContextConsolidationConfig } from "../user-context/consolidation.js";
4
3
  //#region src/gateway/dreaming-automation-reconciler.ts
5
- const DREAMING_AUTOMATIONS = [
6
- {
7
- phase: "light",
8
- name: DREAMING_LIGHT_AUTOMATION_NAME,
9
- token: DREAMING_LIGHT_SWEEP_TOKEN
10
- },
11
- {
12
- phase: "deep",
13
- name: DREAMING_DEEP_AUTOMATION_NAME,
14
- token: DREAMING_SWEEP_TOKEN
15
- },
16
- {
17
- phase: "rem",
18
- name: DREAMING_REM_AUTOMATION_NAME,
19
- token: DREAMING_REM_SWEEP_TOKEN
20
- }
21
- ];
22
- function phaseDescription(phase) {
23
- return `${phase === "light" ? "Light sweep" : phase === "deep" ? "Deep promotion" : "REM pattern discovery"} for memory dreaming. ${DREAMING_AUTOMATION_TAG}`;
24
- }
25
- function buildTrigger(config, phase) {
26
- const phaseConfig = config.phases[phase];
27
- return {
4
+ init_agent_scope();
5
+ async function reconcileDreamingAutomations(params) {
6
+ const result = {
7
+ created: false,
8
+ updated: false,
9
+ disabled: false
10
+ };
11
+ const resolved = resolveContextConsolidationConfig(params.config);
12
+ const agentId = normalizeAgentId(resolveDefaultAgentId(params.config));
13
+ const workingDirectory = resolveAgentWorkspaceDir(params.config, agentId);
14
+ const trigger = {
28
15
  kind: "schedule",
29
16
  schedule: {
30
17
  kind: "cron",
31
- expr: compileDreamingSchedule(phaseConfig.schedule),
32
- tz: config.timezone
18
+ expr: compileContextConsolidationCron(resolved.time),
19
+ tz: resolved.timezone
33
20
  }
34
21
  };
35
- }
36
- function dreamingAutomationId(phase) {
37
- return `system-user-context-dreaming:${phase}`;
38
- }
39
- function buildAction(scope, token) {
40
- return {
22
+ const action = {
41
23
  kind: "agent",
42
- agentId: scope.agentId,
43
- instruction: token,
44
- workingDirectory: scope.workspaceDir,
45
- timeoutSeconds: 3600
24
+ agentId,
25
+ instruction: USER_CONTEXT_CONSOLIDATION_TOKEN,
26
+ workingDirectory,
27
+ timeoutSeconds: 300
46
28
  };
47
- }
48
- function automationNeedsUpdate(current, next) {
49
- return current.name !== next.name || current.description !== next.description || current.enabled !== next.enabled || JSON.stringify(current.trigger) !== JSON.stringify(next.trigger) || JSON.stringify(current.action) !== JSON.stringify(next.action) || current.safety?.mode !== "auto_apply" || current.afterRun?.kind !== "none" || current.reliability?.disableAfterConsecutiveFailures !== 3;
50
- }
51
- async function reconcileDreamingAutomations(params) {
52
- const { config, automationService } = params;
53
- const result = {
54
- created: [],
55
- updated: [],
56
- disabled: []
57
- };
58
- const scope = resolveDreamingAgentScope(config);
59
- const resolved = scope.config;
60
- for (const spec of DREAMING_AUTOMATIONS) {
61
- const id = dreamingAutomationId(spec.phase);
62
- const current = await automationService.get(id);
63
- const enabled = resolved.enabled && resolved.phases[spec.phase].enabled;
64
- if (!resolved.enabled) {
65
- if (current?.enabled) {
66
- await automationService.update(id, { enabled: false });
67
- result.disabled.push(id);
68
- }
69
- continue;
70
- }
71
- const next = {
72
- name: spec.name,
73
- description: phaseDescription(spec.phase),
74
- enabled,
75
- trigger: buildTrigger(resolved, spec.phase),
76
- action: buildAction(scope, spec.token)
77
- };
78
- if (!current) {
79
- await automationService.create({
80
- id,
81
- ...next,
82
- safety: { mode: "auto_apply" },
83
- afterRun: { kind: "none" },
84
- reliability: { disableAfterConsecutiveFailures: 3 }
85
- });
86
- result.created.push(id);
87
- continue;
88
- }
89
- if (automationNeedsUpdate(current, next)) {
90
- await automationService.update(id, {
91
- ...next,
92
- safety: { mode: "auto_apply" },
93
- afterRun: { kind: "none" },
94
- reliability: { disableAfterConsecutiveFailures: 3 }
95
- });
96
- result.updated.push(id);
29
+ const current = await params.automationService.get(USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID);
30
+ if (!resolved.enabled) {
31
+ if (current?.enabled) {
32
+ await params.automationService.update(USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID, { enabled: false });
33
+ result.disabled = true;
97
34
  }
35
+ return result;
36
+ }
37
+ const next = {
38
+ name: "User context review",
39
+ description: "Deterministically review structured user understanding for expiry and sufficient evidence.",
40
+ enabled: true,
41
+ trigger,
42
+ action,
43
+ safety: { mode: "auto_apply" },
44
+ afterRun: { kind: "none" },
45
+ reliability: { disableAfterConsecutiveFailures: 3 }
46
+ };
47
+ if (!current) {
48
+ await params.automationService.create({
49
+ id: USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID,
50
+ ...next
51
+ });
52
+ result.created = true;
53
+ return result;
54
+ }
55
+ if (current.name !== next.name || current.description !== next.description || !current.enabled || JSON.stringify(current.trigger) !== JSON.stringify(trigger) || JSON.stringify(current.action) !== JSON.stringify(action) || current.safety?.mode !== "auto_apply" || current.afterRun?.kind !== "none" || current.reliability?.disableAfterConsecutiveFailures !== 3) {
56
+ await params.automationService.update(USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID, next);
57
+ result.updated = true;
98
58
  }
99
59
  return result;
100
60
  }
@@ -66,7 +66,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
66
66
  };
67
67
  tools: {
68
68
  builtin?: Record<string, {
69
- mode: "allow" | "confirm" | "deny";
69
+ mode: "allow" | "deny" | "confirm";
70
70
  scope?: "workspace" | "readonly" | "unrestricted";
71
71
  limits?: {
72
72
  maxCallsPerTurn?: number;
@@ -75,7 +75,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
75
75
  }>;
76
76
  mcp?: {
77
77
  servers?: Record<string, {
78
- mode: "allow" | "confirm" | "deny";
78
+ mode: "allow" | "deny" | "confirm";
79
79
  scope?: "workspace" | "readonly" | "unrestricted";
80
80
  limits?: {
81
81
  maxCallsPerTurn?: number;
@@ -83,7 +83,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
83
83
  };
84
84
  }>;
85
85
  tools?: Record<string, {
86
- mode: "allow" | "confirm" | "deny";
86
+ mode: "allow" | "deny" | "confirm";
87
87
  scope?: "workspace" | "readonly" | "unrestricted";
88
88
  limits?: {
89
89
  maxCallsPerTurn?: number;
@@ -143,7 +143,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
143
143
  };
144
144
  tools?: {
145
145
  builtin?: Record<string, {
146
- mode: "allow" | "confirm" | "deny";
146
+ mode: "allow" | "deny" | "confirm";
147
147
  scope?: "workspace" | "readonly" | "unrestricted";
148
148
  limits?: {
149
149
  maxCallsPerTurn?: number;
@@ -152,7 +152,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
152
152
  }>;
153
153
  mcp?: {
154
154
  servers?: Record<string, {
155
- mode: "allow" | "confirm" | "deny";
155
+ mode: "allow" | "deny" | "confirm";
156
156
  scope?: "workspace" | "readonly" | "unrestricted";
157
157
  limits?: {
158
158
  maxCallsPerTurn?: number;
@@ -160,7 +160,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
160
160
  };
161
161
  }>;
162
162
  tools?: Record<string, {
163
- mode: "allow" | "confirm" | "deny";
163
+ mode: "allow" | "deny" | "confirm";
164
164
  scope?: "workspace" | "readonly" | "unrestricted";
165
165
  limits?: {
166
166
  maxCallsPerTurn?: number;
@@ -290,6 +290,18 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
290
290
  preferences: {
291
291
  responseLanguage: "auto" | "zh-CN" | "en";
292
292
  };
293
+ dreaming: {
294
+ mode: "off" | "review";
295
+ schedule: {
296
+ time: string;
297
+ };
298
+ minEvidenceSources: number;
299
+ limit: number;
300
+ timezone?: string;
301
+ };
302
+ privacy: {
303
+ sensitiveWritePolicy: "allow" | "deny" | "confirm";
304
+ };
293
305
  memory: {
294
306
  retention: {
295
307
  compaction: {
@@ -345,7 +357,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
345
357
  language?: "en" | "zh";
346
358
  input?: {
347
359
  refinement?: {
348
- mode: "off" | "light" | "custom" | "punctuation";
360
+ mode: "off" | "custom" | "punctuation" | "light";
349
361
  model?: string;
350
362
  customInstruction?: string;
351
363
  };
@@ -1,4 +1,4 @@
1
- import { ContextCompactionPolicySchema, init_config } from "../../../user-context/config.js";
1
+ import { ContextCompactionPolicySchema, UserContextDreamingSchema, UserContextPrivacySchema, init_config } from "../../../user-context/config.js";
2
2
  import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveDefaultAgentId } from "../../../agent/agent-scope.js";
3
3
  import { resolveModelsJsonPath } from "../../../config/paths.js";
4
4
  import { buildChannelCatalogForConfig, buildChannelCatalogFromSnapshot, getChannelSetupStatus, init_channel_catalog_service } from "../../../channels/catalog/channel-catalog-service.js";
@@ -178,6 +178,8 @@ async function buildSafeWebConfigPayload(service, options = {}) {
178
178
  session: resolveSessionConfigForWeb(config),
179
179
  userContext: {
180
180
  preferences: config.userContext?.preferences ?? { responseLanguage: "auto" },
181
+ dreaming: UserContextDreamingSchema.parse(config.userContext?.dreaming),
182
+ privacy: UserContextPrivacySchema.parse(config.userContext?.privacy),
181
183
  memory: { retention: { compaction: ContextCompactionPolicySchema.parse(config.userContext?.memory.retention?.compaction) } }
182
184
  },
183
185
  tui: { defaultAgent: config.tui?.defaultAgent ?? "coder" },
@@ -8,6 +8,7 @@
8
8
  import { Hono } from 'hono';
9
9
  import type { GatewayService } from '../service.js';
10
10
  import { type OAuthCredentials } from '../../auth/oauth/types.js';
11
+ export declare function refreshModelCatalogAfterOAuth(provider: string, service: Pick<GatewayService, 'getModelCatalogSync'>): Promise<void>;
11
12
  export declare function resolveOAuthLoginMethodPreference(params: {
12
13
  requestedMethod?: unknown;
13
14
  supportedMethods?: readonly string[];
@@ -17,6 +17,19 @@ init_registry();
17
17
  init_credentials();
18
18
  init_logger();
19
19
  const log = createLogger("OAuthAsync");
20
+ async function refreshModelCatalogAfterOAuth(provider, service) {
21
+ if (provider !== "xopc-cloud") return;
22
+ try {
23
+ await service.getModelCatalogSync().refreshNow();
24
+ } catch (err) {
25
+ const errorMessage = err instanceof Error ? err.message : String(err);
26
+ log.warn({
27
+ err,
28
+ provider,
29
+ errorMessage
30
+ }, `OAuth completed, but the model catalog could not be refreshed: ${errorMessage}`);
31
+ }
32
+ }
20
33
  /** User-facing message when undici/fetch fails (often DNS, firewall, or wrong machine for localhost callback). */
21
34
  function formatOAuthAsyncError(err) {
22
35
  const base = err instanceof Error ? err.message : "OAuth login failed";
@@ -200,7 +213,7 @@ function createOAuthAsyncHandler(service) {
200
213
  /**
201
214
  * Run OAuth flow in background
202
215
  */
203
- async function runOAuthFlow(session, oauthProvider, _service) {
216
+ async function runOAuthFlow(session, oauthProvider, service) {
204
217
  const abortController = new AbortController();
205
218
  session.abortController = abortController;
206
219
  let manualCodePromise = null;
@@ -276,6 +289,8 @@ async function runOAuthFlow(session, oauthProvider, _service) {
276
289
  const credentials = await oauthProvider.login(callbacks);
277
290
  setOAuthCredentialsToCache(session.provider, credentials);
278
291
  await new CredentialResolver().saveOAuthCredentials(session.provider, credentials);
292
+ session.message = session.provider === "xopc-cloud" ? "OAuth login successful. Syncing available models..." : "OAuth login successful";
293
+ await refreshModelCatalogAfterOAuth(session.provider, service);
279
294
  session.status = "completed";
280
295
  session.credentials = credentials;
281
296
  session.message = "OAuth login successful";
@@ -313,4 +328,4 @@ function deleteOAuthCredentialsFromCache(provider) {
313
328
  oauthCredentialsCache.delete(provider);
314
329
  }
315
330
  //#endregion
316
- export { createOAuthAsyncHandler, deleteOAuthCredentialsFromCache, getOAuthCredentialsFromCache, resolveOAuthLoginMethodPreference, setOAuthCredentialsToCache };
331
+ export { createOAuthAsyncHandler, deleteOAuthCredentialsFromCache, getOAuthCredentialsFromCache, refreshModelCatalogAfterOAuth, resolveOAuthLoginMethodPreference, setOAuthCredentialsToCache };