@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
@@ -1,286 +0,0 @@
1
- import { createLogger } from "../../../utils/logger/index.js";
2
- import { init_logger } from "../../../utils/logger.js";
3
- import { appendMemorySignal, appendMemoryTraceEvent, hasUnresolvedMemoryConflict } from "../../../storage/sqlite/memory-records-repository.js";
4
- import { consumeMemoryReferenceConsent, ensureMemoryReferenceConsentRequest, hasMemoryReferenceConsent } from "../../../storage/sqlite/memory-reference-consent-repository.js";
5
- import "../../../storage/sqlite/index.js";
6
- import { readAgentMessageContent } from "../agent-message-access.js";
7
- import { resolveMemoryStability } from "../lifecycle.js";
8
- import { classifyMemoryContextOrigin } from "../source-origin.js";
9
- import { USER_CONTEXT_MEMORY_KINDS, isUserContextRecord } from "../../../user-context/projection.js";
10
- import { buildUserContextBlock } from "../context-fence.js";
11
- import { randomUUID } from "node:crypto";
12
- //#region src/agent/memory/context/planner.ts
13
- init_logger();
14
- const DEFAULT_MAX_CONTEXT_CHARS = 12e3;
15
- const DEFAULT_MAX_RESULTS = 12;
16
- const BASELINE_KINDS = [
17
- "boundary",
18
- "preference",
19
- "tool_preference",
20
- "routine",
21
- "user_profile",
22
- "personal_logistics"
23
- ];
24
- const SELF_SUMMARY_PATTERNS = [
25
- /(?:介绍|说说|描述|总结)(?:一下|下)?你?(?:所)?(?:了解|知道|认知)(?:到)?的?我/u,
26
- /你眼中的我/u,
27
- /(?:关于我你|你(?:对我|关于我))(?:有)?(?:哪些|什么)?(?:了解|认知|知道|记得|印象)/u,
28
- /(?:what (?:do|can) you|what you) (?:know|understand|remember) about me/i,
29
- /(?:describe|summari[sz]e|introduce) me/i,
30
- /(?:how do you see|your impression of) me/i
31
- ];
32
- const log = createLogger("UserContextPlanner");
33
- function isUserSelfSummaryQuery(query) {
34
- return SELF_SUMMARY_PATTERNS.some((pattern) => pattern.test(query));
35
- }
36
- function sectionFor(record) {
37
- if (record.kind === "boundary") return "safety";
38
- if (record.kind === "preference" || record.kind === "user_profile" || record.kind === "relationship" || record.kind === "routine" || record.kind === "personal_logistics" || record.kind === "tool_preference") return "interaction";
39
- return "task";
40
- }
41
- function rejectReason(record, now, hasReferenceConsent) {
42
- if (record.tags?.includes("playbook:disabled")) return "disabled";
43
- if (record.conflictGroupId && hasUnresolvedMemoryConflict(record.conflictGroupId)) return "conflict";
44
- if (record.validFrom && Date.parse(record.validFrom) > now) return "not_yet_valid";
45
- if (record.validTo && Date.parse(record.validTo) < now || record.expiresAt && Date.parse(record.expiresAt) < now) return "expired";
46
- if (record.sensitivity === "secret" || record.sensitivity === "regulated") return "sensitive";
47
- if (record.disclosurePolicy === "ask_before_reference" && !hasReferenceConsent) return "requires_consent";
48
- if (record.status === "needs_review" || record.status === "stale" || resolveMemoryStability(record, now).reviewDue) return "needs_review";
49
- }
50
- function scoreResult(result, now) {
51
- const confidence = result.record.confidence ?? .5;
52
- const explicitness = result.record.explicitness === "explicit" ? 1 : result.record.explicitness === "observed" ? .65 : .4;
53
- const stability = resolveMemoryStability(result.record, now).score;
54
- return Math.max(0, Math.min(1, result.score * .45 + confidence * .1 + result.record.importance * .2 + explicitness * .1 + stability * .15));
55
- }
56
- function citationFor(result, requesterAgentId) {
57
- const base = result.citation.path ?? `${result.citation.providerId}:${result.citation.recordId}`;
58
- if (result.citation.lineStart == null) return base;
59
- const end = result.citation.lineEnd && result.citation.lineEnd !== result.citation.lineStart ? `-L${result.citation.lineEnd}` : "";
60
- return `${base}#L${result.citation.lineStart}${end}`;
61
- }
62
- function evidenceLabel(item) {
63
- if (item.origin === "told_by_user") return "The user explicitly shared this";
64
- if (item.origin === "observed") return "Observed across prior work";
65
- if (item.origin === "connected_source") return "A connected source provided this";
66
- return "An inference that may be wrong";
67
- }
68
- function prependAgentContext(message, block) {
69
- if (!block) return message;
70
- const prefix = `${block}\n\n`;
71
- const content = readAgentMessageContent(message);
72
- if (typeof content === "string") return {
73
- ...message,
74
- content: prefix + content
75
- };
76
- if (Array.isArray(content) && content.length > 0) {
77
- const first = content[0];
78
- if (first.type === "text" && typeof first.text === "string") {
79
- const copy = [...content];
80
- copy[0] = {
81
- type: "text",
82
- text: prefix + first.text
83
- };
84
- return {
85
- ...message,
86
- content: copy
87
- };
88
- }
89
- return {
90
- ...message,
91
- content: [{
92
- type: "text",
93
- text: prefix
94
- }, ...content]
95
- };
96
- }
97
- return message;
98
- }
99
- var UserContextPlanner = class {
100
- async plan(params) {
101
- const traceId = randomUUID();
102
- const query = params.query.trim();
103
- if (!query) return {
104
- traceId,
105
- modelMessage: params.userMessage,
106
- items: [],
107
- rejected: [],
108
- consentRequests: [],
109
- estimatedTokens: 0,
110
- allocation: params.allocation
111
- };
112
- const maxResults = params.allocation?.maxResults ?? DEFAULT_MAX_RESULTS;
113
- const maxContextChars = params.allocation?.maxChars ?? DEFAULT_MAX_CONTEXT_CHARS;
114
- const started = Date.now();
115
- const scope = {
116
- userId: "local-owner",
117
- sessionKey: params.sessionKey
118
- };
119
- const selfSummary = isUserSelfSummaryQuery(query);
120
- const baselineKinds = selfSummary ? USER_CONTEXT_MEMORY_KINDS : BASELINE_KINDS;
121
- const [searchedResults, baselineLists] = await Promise.all([params.memoryManager.search({
122
- query,
123
- scope,
124
- maxResults,
125
- minScore: .15
126
- }).catch(() => []), Promise.all(baselineKinds.map((kind) => params.memoryManager.list({
127
- kind,
128
- status: "active",
129
- scope
130
- }).catch(() => [])))]);
131
- const taskResults = selfSummary ? searchedResults.filter((result) => isUserContextRecord(result.record)) : searchedResults;
132
- const taskIds = new Set(taskResults.map((result) => result.record.id));
133
- const baselineResults = baselineLists.flat().filter((record) => !taskIds.has(record.id)).filter((record) => isUserContextRecord(record)).filter((record) => selfSummary || record.kind === "boundary" || record.explicitness === "explicit" || record.importance >= .7).map((record) => ({
134
- record,
135
- score: record.kind === "boundary" ? .7 : selfSummary ? .6 : .42,
136
- snippet: record.content,
137
- citation: {
138
- providerId: record.providerId,
139
- recordId: record.id,
140
- path: record.source.path,
141
- lineStart: record.source.lineStart,
142
- lineEnd: record.source.lineEnd,
143
- createdAt: record.createdAt
144
- }
145
- }));
146
- const results = [...taskResults, ...baselineResults];
147
- const now = Date.now();
148
- const excluded = new Set(params.excludedRecordIds ?? []);
149
- const rejected = [];
150
- const consentRequests = [];
151
- const ranked = results.filter((result) => !excluded.has(result.record.id)).map((result) => ({
152
- result,
153
- score: scoreResult(result, now)
154
- })).sort((a, b) => b.score - a.score).filter((entry, index, all) => all.findIndex((candidate) => candidate.result.record.id === entry.result.record.id) === index).slice(0, maxResults);
155
- const items = [];
156
- let usedChars = 0;
157
- for (const { result, score } of ranked) {
158
- const needsConsent = result.record.disclosurePolicy === "ask_before_reference" && result.record.sensitivity !== "secret" && result.record.sensitivity !== "regulated";
159
- const hasReferenceConsent = needsConsent ? hasMemoryReferenceConsent(result.record.id, params.sessionKey) : false;
160
- const reason = rejectReason(result.record, now, hasReferenceConsent) ?? (score < .25 ? "low_score" : void 0);
161
- if (reason) {
162
- rejected.push({
163
- recordId: result.record.id,
164
- reason
165
- });
166
- if (reason === "requires_consent") {
167
- const request = ensureMemoryReferenceConsentRequest({
168
- recordId: result.record.id,
169
- sessionKey: params.sessionKey,
170
- purpose: query
171
- });
172
- consentRequests.push({
173
- id: request.id,
174
- recordId: request.recordId,
175
- statement: result.record.content,
176
- purpose: request.purpose
177
- });
178
- }
179
- continue;
180
- }
181
- const content = result.snippet.trim();
182
- if (usedChars + content.length > maxContextChars) {
183
- rejected.push({
184
- recordId: result.record.id,
185
- reason: "budget"
186
- });
187
- continue;
188
- }
189
- if (needsConsent && !consumeMemoryReferenceConsent(result.record.id, params.sessionKey)) {
190
- rejected.push({
191
- recordId: result.record.id,
192
- reason: "requires_consent"
193
- });
194
- const request = ensureMemoryReferenceConsentRequest({
195
- recordId: result.record.id,
196
- sessionKey: params.sessionKey,
197
- purpose: query
198
- });
199
- consentRequests.push({
200
- id: request.id,
201
- recordId: request.recordId,
202
- statement: result.record.content,
203
- purpose: request.purpose
204
- });
205
- continue;
206
- }
207
- usedChars += content.length;
208
- items.push({
209
- recordId: result.record.id,
210
- content,
211
- score,
212
- section: sectionFor(result.record),
213
- citation: citationFor(result, params.agentId),
214
- origin: classifyMemoryContextOrigin(result.record),
215
- stability: resolveMemoryStability(result.record, now).score
216
- });
217
- }
218
- const sections = [];
219
- for (const [section, title] of [
220
- ["safety", "Boundaries"],
221
- ["task", "Relevant facts"],
222
- ["interaction", "Interaction preferences"]
223
- ]) {
224
- const sectionItems = items.filter((item) => item.section === section);
225
- if (sectionItems.length > 0) sections.push(`${title}:\n${sectionItems.map((item) => `- ${item.content}\n Evidence: ${evidenceLabel(item)}`).join("\n")}`);
226
- }
227
- const consentNotice = consentRequests.length > 0 ? "A relevant saved understanding requires the user’s explicit permission before it can be referenced. Do not infer or reveal its contents. Briefly ask the user to approve the pending item in You > Understanding, then continue without it." : "";
228
- const block = [buildUserContextBlock(sections.join("\n\n")), consentNotice].filter(Boolean).join("\n\n");
229
- try {
230
- for (const item of items) appendMemorySignal({
231
- signal: {
232
- source: "context_injection",
233
- recordId: item.recordId,
234
- score: item.score,
235
- content: item.content,
236
- metadata: {
237
- traceId,
238
- turnId: params.turnId,
239
- query
240
- }
241
- },
242
- providerId: "local",
243
- sourceAgentId: params.agentId,
244
- sessionKey: params.sessionKey
245
- });
246
- appendMemoryTraceEvent({
247
- traceId,
248
- phase: "inject",
249
- providerId: "user-understanding",
250
- sessionKey: params.sessionKey,
251
- turnId: params.turnId,
252
- request: {
253
- query,
254
- rejected,
255
- contextItems: items.map((item) => ({
256
- recordId: item.recordId,
257
- section: item.section,
258
- origin: item.origin,
259
- stability: item.stability,
260
- citation: item.citation
261
- }))
262
- },
263
- resultCount: items.length,
264
- selectedRecordIds: items.map((item) => item.recordId),
265
- durationMs: Date.now() - started
266
- });
267
- } catch (err) {
268
- log.debug({
269
- err,
270
- traceId,
271
- sessionKey: params.sessionKey
272
- }, "Context plan trace was not persisted");
273
- }
274
- return {
275
- traceId,
276
- modelMessage: prependAgentContext(params.userMessage, block),
277
- items,
278
- rejected,
279
- consentRequests,
280
- estimatedTokens: Math.ceil(block.length / 4),
281
- allocation: params.allocation
282
- };
283
- }
284
- };
285
- //#endregion
286
- export { UserContextPlanner, isUserSelfSummaryQuery, prependAgentContext };
@@ -1,48 +0,0 @@
1
- import type { Config } from '../../../config/schema.js';
2
- import type { DreamingMode } from '../../../storage/sqlite/index.js';
3
- import type { DreamingSchedule, DreamingSettings } from '../../../user-context/config.js';
4
- import { type DreamingPhaseId } from './constants.js';
5
- export type DreamingLightConfig = {
6
- enabled: boolean;
7
- schedule: DreamingSchedule;
8
- lookbackDays: number;
9
- limit: number;
10
- };
11
- export type DreamingDeepConfig = {
12
- enabled: boolean;
13
- schedule: DreamingSchedule;
14
- minScore: number;
15
- minRecallCount: number;
16
- minUniqueQueries: number;
17
- limit: number;
18
- recencyHalfLifeDays: number;
19
- maxAgeDays: number;
20
- };
21
- export type DreamingRemConfig = {
22
- enabled: boolean;
23
- schedule: DreamingSchedule;
24
- lookbackDays: number;
25
- limit: number;
26
- minPatternStrength: number;
27
- };
28
- export type DreamingResolvedConfig = {
29
- requestedMode: DreamingMode;
30
- mode: DreamingMode;
31
- enabled: boolean;
32
- writeDisposition: 'none' | 'candidate' | 'active';
33
- automaticReady: boolean;
34
- downgradeReason?: 'memory_policy' | 'quality_gate';
35
- timezone: string;
36
- phases: {
37
- light: DreamingLightConfig;
38
- deep: DreamingDeepConfig;
39
- rem: DreamingRemConfig;
40
- };
41
- };
42
- export declare function resolveDreamingSettings(cfg: Config | undefined): DreamingSettings;
43
- /** Resolve the full three-phase dreaming config and its effective write authority. */
44
- export declare function resolveDreamingConfig(cfg: Config | undefined, options?: {
45
- automaticReady?: boolean;
46
- }): DreamingResolvedConfig;
47
- /** Check if a specific phase is enabled (global + phase-level). */
48
- export declare function isPhaseEnabled(config: DreamingResolvedConfig, phase: DreamingPhaseId): boolean;
@@ -1,98 +0,0 @@
1
- import "./constants.js";
2
- import { DEFAULT_DREAMING_SCHEDULES, resolveDreamingTimezone } from "./schedule.js";
3
- //#region src/agent/memory/dreaming/config.ts
4
- function clampScore(value, fallback) {
5
- if (!Number.isFinite(value)) return fallback;
6
- return Math.max(0, Math.min(1, value));
7
- }
8
- function toPositiveInt(value, fallback) {
9
- const num = typeof value === "string" ? Number(value) : Number(value);
10
- if (!Number.isFinite(num)) return fallback;
11
- const floored = Math.floor(num);
12
- return floored > 0 ? floored : fallback;
13
- }
14
- function toNonNegInt(value, fallback) {
15
- const num = typeof value === "string" ? Number(value) : Number(value);
16
- if (!Number.isFinite(num)) return fallback;
17
- const floored = Math.floor(num);
18
- return floored >= 0 ? floored : fallback;
19
- }
20
- function resolveDreamingSettings(cfg) {
21
- const dreaming = cfg?.userContext.dreaming;
22
- return {
23
- mode: dreaming?.mode ?? "off",
24
- timezone: resolveDreamingTimezone(dreaming?.timezone),
25
- phases: {
26
- light: {
27
- enabled: dreaming?.phases?.light?.enabled !== false,
28
- schedule: dreaming?.phases?.light?.schedule ?? DEFAULT_DREAMING_SCHEDULES.light
29
- },
30
- deep: {
31
- enabled: dreaming?.phases?.deep?.enabled !== false,
32
- schedule: dreaming?.phases?.deep?.schedule ?? DEFAULT_DREAMING_SCHEDULES.deep
33
- },
34
- rem: {
35
- enabled: dreaming?.phases?.rem?.enabled !== false,
36
- schedule: dreaming?.phases?.rem?.schedule ?? DEFAULT_DREAMING_SCHEDULES.rem
37
- }
38
- }
39
- };
40
- }
41
- /** Resolve the full three-phase dreaming config and its effective write authority. */
42
- function resolveDreamingConfig(cfg, options = {}) {
43
- const dreaming = cfg?.userContext.dreaming;
44
- const settings = resolveDreamingSettings(cfg);
45
- const requestedMode = settings.mode;
46
- const memoryMode = cfg?.userContext.memory.mode ?? "off";
47
- const automaticReady = options.automaticReady === true;
48
- const mode = cfg?.userContext.enabled !== true || memoryMode === "off" ? "off" : memoryMode === "readOnly" ? requestedMode === "off" ? "off" : "observe" : memoryMode === "confirmWrite" && requestedMode === "automatic" ? "review" : requestedMode === "automatic" && !automaticReady ? "review" : requestedMode;
49
- const enabled = mode !== "off";
50
- const writeDisposition = mode === "automatic" ? "active" : mode === "review" ? "candidate" : "none";
51
- const timezone = settings.timezone;
52
- const lightRaw = dreaming?.phases?.light ?? {};
53
- const light = {
54
- enabled: enabled && settings.phases.light.enabled,
55
- schedule: settings.phases.light.schedule,
56
- lookbackDays: toPositiveInt(lightRaw?.lookbackDays, 2),
57
- limit: toNonNegInt(lightRaw?.limit, 100)
58
- };
59
- const deepRaw = dreaming?.phases?.deep ?? {};
60
- const deep = {
61
- enabled: enabled && settings.phases.deep.enabled,
62
- schedule: settings.phases.deep.schedule,
63
- minScore: clampScore(Number(deepRaw?.minScore), .8),
64
- minRecallCount: toPositiveInt(deepRaw?.minRecallCount, 3),
65
- minUniqueQueries: toPositiveInt(deepRaw?.minUniqueQueries, 3),
66
- limit: toNonNegInt(deepRaw?.limit, 10),
67
- recencyHalfLifeDays: toPositiveInt(deepRaw?.recencyHalfLifeDays, 14),
68
- maxAgeDays: toPositiveInt(deepRaw?.maxAgeDays, 30)
69
- };
70
- const remRaw = dreaming?.phases?.rem ?? {};
71
- const rem = {
72
- enabled: enabled && settings.phases.rem.enabled,
73
- schedule: settings.phases.rem.schedule,
74
- lookbackDays: toPositiveInt(remRaw?.lookbackDays, 7),
75
- limit: toNonNegInt(remRaw?.limit, 10),
76
- minPatternStrength: clampScore(Number(remRaw?.minPatternStrength), .75)
77
- };
78
- return {
79
- requestedMode,
80
- mode,
81
- enabled,
82
- writeDisposition,
83
- automaticReady,
84
- ...requestedMode === "automatic" && mode !== "automatic" ? { downgradeReason: memoryMode === "confirmWrite" || memoryMode === "readOnly" ? "memory_policy" : "quality_gate" } : {},
85
- timezone,
86
- phases: {
87
- light,
88
- deep,
89
- rem
90
- }
91
- };
92
- }
93
- /** Check if a specific phase is enabled (global + phase-level). */
94
- function isPhaseEnabled(config, phase) {
95
- return config.enabled && config.phases[phase].enabled;
96
- }
97
- //#endregion
98
- export { isPhaseEnabled, resolveDreamingConfig, resolveDreamingSettings };
@@ -1,12 +0,0 @@
1
- export type DreamingPhaseId = 'light' | 'deep' | 'rem';
2
- export declare const DREAMING_ALGORITHM_VERSION = "structured-v1";
3
- export declare const DREAMING_PHASES: readonly DreamingPhaseId[];
4
- export declare const DREAMING_SWEEP_TOKEN = "__xopc_memory_dreaming_sweep__";
5
- export declare const DREAMING_LIGHT_SWEEP_TOKEN = "__xopc_memory_dreaming_light_sweep__";
6
- export declare const DREAMING_REM_SWEEP_TOKEN = "__xopc_memory_dreaming_rem_sweep__";
7
- export declare const DREAMING_AUTOMATION_TAG = "[managed-by=xopc.memory.dreaming]";
8
- export declare const DREAMING_DEEP_AUTOMATION_NAME = "Memory Dreaming - Deep Promotion";
9
- export declare const DREAMING_LIGHT_AUTOMATION_NAME = "Memory Dreaming - Light Sweep";
10
- export declare const DREAMING_REM_AUTOMATION_NAME = "Memory Dreaming - REM Patterns";
11
- export declare const DEFAULT_RECENCY_HALF_LIFE_DAYS = 14;
12
- export declare const DEFAULT_MAX_AGE_DAYS = 30;
@@ -1,18 +0,0 @@
1
- //#region src/agent/memory/dreaming/constants.ts
2
- const DREAMING_ALGORITHM_VERSION = "structured-v1";
3
- const DREAMING_PHASES = [
4
- "light",
5
- "deep",
6
- "rem"
7
- ];
8
- const DREAMING_SWEEP_TOKEN = "__xopc_memory_dreaming_sweep__";
9
- const DREAMING_LIGHT_SWEEP_TOKEN = "__xopc_memory_dreaming_light_sweep__";
10
- const DREAMING_REM_SWEEP_TOKEN = "__xopc_memory_dreaming_rem_sweep__";
11
- const DREAMING_AUTOMATION_TAG = "[managed-by=xopc.memory.dreaming]";
12
- const DREAMING_DEEP_AUTOMATION_NAME = "Memory Dreaming - Deep Promotion";
13
- const DREAMING_LIGHT_AUTOMATION_NAME = "Memory Dreaming - Light Sweep";
14
- const DREAMING_REM_AUTOMATION_NAME = "Memory Dreaming - REM Patterns";
15
- const DEFAULT_RECENCY_HALF_LIFE_DAYS = 14;
16
- const DEFAULT_MAX_AGE_DAYS = 30;
17
- //#endregion
18
- export { DEFAULT_MAX_AGE_DAYS, DEFAULT_RECENCY_HALF_LIFE_DAYS, DREAMING_ALGORITHM_VERSION, DREAMING_AUTOMATION_TAG, DREAMING_DEEP_AUTOMATION_NAME, DREAMING_LIGHT_AUTOMATION_NAME, DREAMING_LIGHT_SWEEP_TOKEN, DREAMING_PHASES, DREAMING_REM_AUTOMATION_NAME, DREAMING_REM_SWEEP_TOKEN, DREAMING_SWEEP_TOKEN };
@@ -1,19 +0,0 @@
1
- import { type DreamingActiveMode } from '../../../storage/sqlite/index.js';
2
- import type { DreamingDeepConfig } from './config.js';
3
- export type { DreamingDeepConfig } from './config.js';
4
- /** Consolidate useful candidates from structured recall and injection signals. */
5
- export declare function runDreamingDeepPromotion(params: {
6
- agentId: string;
7
- runId: string;
8
- mode: DreamingActiveMode;
9
- workspaceDir: string;
10
- config?: Partial<DreamingDeepConfig>;
11
- sensitiveWritePolicy?: 'deny' | 'confirm' | 'allow';
12
- now?: Date;
13
- }): Promise<{
14
- ok: boolean;
15
- reason: string;
16
- candidates: number;
17
- applied: number;
18
- memoryPath: string;
19
- }>;
@@ -1,152 +0,0 @@
1
- import { createLogger } from "../../../utils/logger/index.js";
2
- import { init_logger } from "../../../utils/logger.js";
3
- import { recordDreamingDecision } from "../../../storage/sqlite/dreaming-repository.js";
4
- import { appendMemorySignal, appendMemoryTraceEvent, listMemoryRecords, listMemorySignals, setMemoryRecordStatus } from "../../../storage/sqlite/memory-records-repository.js";
5
- import "../../../storage/sqlite/index.js";
6
- import { resolveDeepDefaults } from "./utils.js";
7
- //#region src/agent/memory/dreaming/deep-promotion.ts
8
- init_logger();
9
- const log = createLogger("Dreaming:Deep");
10
- const MEMORY_STORE_URI = "sqlite://memory_records";
11
- /** Consolidate useful candidates from structured recall and injection signals. */
12
- async function runDreamingDeepPromotion(params) {
13
- const cfg = resolveDeepDefaults(params.config);
14
- const now = params.now ?? /* @__PURE__ */ new Date();
15
- const started = Date.now();
16
- if (!cfg.enabled || cfg.limit === 0) {
17
- const reason = !cfg.enabled ? "dreaming disabled" : "dreaming limit=0";
18
- trace(params, reason, [], 0, started);
19
- return {
20
- ok: true,
21
- reason,
22
- candidates: 0,
23
- applied: 0,
24
- memoryPath: MEMORY_STORE_URI
25
- };
26
- }
27
- try {
28
- const cutoff = now.getTime() - cfg.maxAgeDays * 864e5;
29
- const records = listMemoryRecords({
30
- providerId: "local",
31
- workspaceId: params.workspaceDir,
32
- status: "candidate",
33
- limit: 500
34
- });
35
- const signals = listMemorySignals({
36
- workspaceId: params.workspaceDir,
37
- limit: 500
38
- });
39
- const byRecord = /* @__PURE__ */ new Map();
40
- for (const signal of signals) {
41
- if (!signal.recordId || Date.parse(signal.createdAt) < cutoff) continue;
42
- const group = byRecord.get(signal.recordId) ?? [];
43
- group.push(signal);
44
- byRecord.set(signal.recordId, group);
45
- }
46
- const ranked = records.flatMap((record) => {
47
- if ((record.sensitivity ?? "normal") !== "normal" && params.sensitiveWritePolicy !== "allow") return [];
48
- const recallSignals = (byRecord.get(record.id) ?? []).filter((signal) => signal.source === "search_recall" || signal.source === "context_injection");
49
- const queries = new Set(recallSignals.map((signal) => String(signal.metadata.query ?? "")).filter(Boolean));
50
- const avgScore = recallSignals.length ? recallSignals.reduce((sum, signal) => sum + (signal.score ?? 0), 0) / recallSignals.length : 0;
51
- const ageDays = Math.max(0, (now.getTime() - Date.parse(record.updatedAt)) / 864e5);
52
- const score = Math.max(0, Math.min(1, avgScore * Math.pow(.5, ageDays / cfg.recencyHalfLifeDays)));
53
- if (recallSignals.length < cfg.minRecallCount || queries.size < cfg.minUniqueQueries || score < cfg.minScore) return [];
54
- return [{
55
- recordId: record.id,
56
- score,
57
- recallCount: recallSignals.length,
58
- uniqueQueries: queries.size,
59
- content: record.content
60
- }];
61
- }).sort((left, right) => right.score - left.score).slice(0, cfg.limit);
62
- const policy = params.mode === "automatic" ? "allow" : params.mode === "review" ? "confirm" : "deny";
63
- let applied = 0;
64
- for (const candidate of ranked) {
65
- const action = policy === "allow" ? "activate" : policy === "confirm" ? "propose" : "observe";
66
- recordDreamingDecision({
67
- runId: params.runId,
68
- recordId: candidate.recordId,
69
- action,
70
- reasonCode: "deep_evidence_threshold_met",
71
- score: candidate.score,
72
- evidence: {
73
- recallCount: candidate.recallCount,
74
- uniqueQueries: candidate.uniqueQueries
75
- }
76
- });
77
- if (policy === "allow") {
78
- if (!setMemoryRecordStatus(candidate.recordId, "active", now.getTime())) continue;
79
- applied += 1;
80
- appendMemorySignal({
81
- signal: {
82
- source: "dreaming",
83
- recordId: candidate.recordId,
84
- score: candidate.score,
85
- content: candidate.content,
86
- metadata: {
87
- phase: "deep",
88
- recallCount: candidate.recallCount,
89
- uniqueQueries: candidate.uniqueQueries
90
- }
91
- },
92
- providerId: "local",
93
- sourceAgentId: params.agentId,
94
- workspaceId: params.workspaceDir
95
- });
96
- }
97
- }
98
- const reason = ranked.length === 0 ? "no eligible candidates" : policy === "allow" ? "candidate consolidation complete" : policy === "confirm" ? "candidates retained for user review" : "analysis complete; writes denied by policy";
99
- trace(params, reason, ranked.map((candidate) => candidate.recordId), applied, started);
100
- log.info({
101
- workspaceDir: params.workspaceDir,
102
- candidates: ranked.length,
103
- applied,
104
- policy
105
- }, "Dreaming deep consolidation complete");
106
- return {
107
- ok: true,
108
- reason,
109
- candidates: ranked.length,
110
- applied,
111
- memoryPath: MEMORY_STORE_URI
112
- };
113
- } catch (err) {
114
- const error = err instanceof Error ? err.message : String(err);
115
- appendMemoryTraceEvent({
116
- phase: "dreaming_deep",
117
- providerId: "local",
118
- sourceAgentId: params.agentId,
119
- request: { workspaceId: params.workspaceDir },
120
- error,
121
- durationMs: Date.now() - started
122
- });
123
- log.error({
124
- err,
125
- workspaceDir: params.workspaceDir
126
- }, `Dreaming deep consolidation failed: ${error}`);
127
- return {
128
- ok: false,
129
- reason: error,
130
- candidates: 0,
131
- applied: 0,
132
- memoryPath: MEMORY_STORE_URI
133
- };
134
- }
135
- }
136
- function trace(params, reason, selectedRecordIds, applied, started) {
137
- appendMemoryTraceEvent({
138
- phase: "dreaming_deep",
139
- providerId: "local",
140
- sourceAgentId: params.agentId,
141
- request: {
142
- workspaceId: params.workspaceDir,
143
- reason,
144
- applied
145
- },
146
- resultCount: selectedRecordIds.length,
147
- selectedRecordIds,
148
- durationMs: Date.now() - started
149
- });
150
- }
151
- //#endregion
152
- export { runDreamingDeepPromotion };
@@ -1,16 +0,0 @@
1
- import type { DreamingLightConfig } from './config.js';
2
- type LightExecutionConfig = Pick<DreamingLightConfig, 'enabled' | 'lookbackDays' | 'limit'>;
3
- /** Stage recent structured records as consolidation observations. */
4
- export declare function runLightSweep(params: {
5
- runId: string;
6
- workspaceDir: string;
7
- config?: Partial<LightExecutionConfig>;
8
- now?: Date;
9
- }): Promise<{
10
- ok: boolean;
11
- reason: string;
12
- scannedEntries: number;
13
- newSignals: number;
14
- deduped: number;
15
- }>;
16
- export {};