@xopcai/xopc 0.0.189 → 0.0.191

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 (376) 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-DvEkT222.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-CXyivfqY.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-COpP_pKN.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-3ntKM9nQ.js → appearance-settings-DTVNUEDq.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-DsE67BSO.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-Df7Ycj_7.js → archive-plugin-IpX6VA0o.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-UHgfZYtj.js → attachment-load-CKVFNUi1.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-page-D0TVev47.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-BJah99wE.js → binary-plugins-BrfvfOS4.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-DNlY5KqF.js → block-editor-D9sEfg32.js} +48 -48
  17. package/dist/gateway/static/root/assets/browser-settings-page-DpZzq8j2.js +8 -0
  18. package/dist/gateway/static/root/assets/{browser-workflow-inputs-vyUfdzAd.js → browser-workflow-inputs-BixZ5lCR.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-C1cKZjx-.js → browser-workflows-page-YEFuodJI.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-B9Cmcuff.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-C_EpuQtk.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-CvzD5qSv.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-BMMqC0_9.js +1 -0
  27. package/dist/gateway/static/root/assets/connectors-page-BKrm7tJ9.js +2 -0
  28. package/dist/gateway/static/root/assets/cron-expression-Bm8koRoD.js +2 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-BUuBEJuP.js → desktop-pet-CMG3mcaJ.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-settings-BGfVIJM3.js → desktop-pet-settings-D8aaPb0x.js} +1 -1
  31. package/dist/gateway/static/root/assets/{directory-picker-path-field-DrQFfHH_.js → directory-picker-path-field-C95yW03b.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-debug-page-CEnIFOX-.js → extension-debug-page-DsG7Z9lV.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-page-CCqHbexs.js → extension-page-CUAXEbAt.js} +1 -1
  34. package/dist/gateway/static/root/assets/extension-settings-page-CsR7QOJo.js +1 -0
  35. package/dist/gateway/static/root/assets/{gateway-config-api-CgUE2Ii1.js → gateway-config-api-DL70Nakc.js} +1 -1
  36. package/dist/gateway/static/root/assets/gateway-settings-BgDxQ08c.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-BX7q55uZ.js +1 -0
  39. package/dist/gateway/static/root/assets/home-page-C08Nen5T.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-B-_CEvIX.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-Dt6wS5zW.js} +1 -1
  44. package/dist/gateway/static/root/assets/local-app-workbench-page-BQVC0tWq.js +2 -0
  45. package/dist/gateway/static/root/assets/{local-apps-page-Ca1RuI13.js → local-apps-page-DcD3-N00.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-D6yvW-E4.js +2 -0
  48. package/dist/gateway/static/root/assets/{management-settings-B3Eop1zn.js → management-settings-B6EVkJQy.js} +1 -1
  49. package/dist/gateway/static/root/assets/{markdown-split-BGOYjgnM.js → markdown-split-CHUjCnBh.js} +1 -1
  50. package/dist/gateway/static/root/assets/{media-plugins-CT0txyM4.js → media-plugins-DRrtI2O0.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-fermYvpI.js} +1 -1
  53. package/dist/gateway/static/root/assets/notes-workbench-BVCwabjq.js +4 -0
  54. package/dist/gateway/static/root/assets/{page-tabs-DNrbCgmC.js → page-tabs-BO262zuu.js} +1 -1
  55. package/dist/gateway/static/root/assets/{preview-open-alternatives-BTqViDOR.js → preview-open-alternatives-yZYTy-2e.js} +1 -1
  56. package/dist/gateway/static/root/assets/{product-open-page-C_2L4_Iu.js → product-open-page-Dgy8XWhR.js} +1 -1
  57. package/dist/gateway/static/root/assets/project-detail-page-CS4Ujor7.js +1 -0
  58. package/dist/gateway/static/root/assets/projects-page-DMtPC8c4.js +1 -0
  59. package/dist/gateway/static/root/assets/remote-access-hub-BpfHZT88.js +1 -0
  60. package/dist/gateway/static/root/assets/{schema-form-BFLfkDGG.js → schema-form-DdE4gtw_.js} +1 -1
  61. package/dist/gateway/static/root/assets/sessions-page-BZkyrJBM.js +1 -0
  62. package/dist/gateway/static/root/assets/settings-advanced-gate-DQlK0A4l.js +1 -0
  63. package/dist/gateway/static/root/assets/settings-form-section-CiYU8AvV.js +1 -0
  64. package/dist/gateway/static/root/assets/{settings-loading-skeleton-C9a-EbTZ.js → settings-loading-skeleton-Bv03cWib.js} +1 -1
  65. package/dist/gateway/static/root/assets/{settings-page-DI9qDH5x.js → settings-page-C-LdINFj.js} +1 -1
  66. package/dist/gateway/static/root/assets/{settings-page-layout-D-LWQdI5.js → settings-page-layout-t_Ox1slk.js} +1 -1
  67. package/dist/gateway/static/root/assets/{setup-status-panel-CJwmPvgs.js → setup-status-panel-HRG_lK4_.js} +1 -1
  68. package/dist/gateway/static/root/assets/{share-preview-page-BKSMG9r5.js → share-preview-page-DF8gW6bo.js} +1 -1
  69. package/dist/gateway/static/root/assets/shares-settings-v_iLhxxa.js +1 -0
  70. package/dist/gateway/static/root/assets/skill-reload-api-S-bjtsXX.js +1 -0
  71. package/dist/gateway/static/root/assets/skills-page-BiNBfaX5.js +2 -0
  72. package/dist/gateway/static/root/assets/{skills-page.utils-zsz2HIlZ.js → skills-page.utils-DlnGtvAH.js} +1 -1
  73. package/dist/gateway/static/root/assets/{system-settings-panel-IWNDBI1O.js → system-settings-panel-Bv7GXFc6.js} +1 -1
  74. package/dist/gateway/static/root/assets/{task-detail-page-CgtK02kP.js → task-detail-page-BhQcOpnx.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-4XBsLEuv.js} +1 -1
  77. package/dist/gateway/static/root/assets/use-autosave-BN2QgFGn.js +1 -0
  78. package/dist/gateway/static/root/assets/user-context-page-PtcY7BoJ.js +1 -0
  79. package/dist/gateway/static/root/assets/{voice-api-key-field-Boue1D46.js → voice-api-key-field-DnhJtC5l.js} +1 -1
  80. package/dist/gateway/static/root/assets/{work-discovery-overlay-bbmvCmc8.js → work-discovery-overlay-nmEAafFl.js} +1 -1
  81. package/dist/gateway/static/root/assets/work-discovery-page-C5Kwe_bc.js +1 -0
  82. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DlHv-GZC.js → workflow-run-setup-panel-BnNWBDwz.js} +2 -2
  83. package/dist/gateway/static/root/assets/workflows-page-Z_qzaohv.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/image/generation/openai-images-provider.d.ts +1 -1
  103. package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
  104. package/dist/src/agent/image/generation/provider-registry.d.ts +2 -0
  105. package/dist/src/agent/image/generation/provider-registry.js +20 -10
  106. package/dist/src/agent/image/generation/providers/xopc-cloud.d.ts +2 -0
  107. package/dist/src/agent/image/generation/providers/xopc-cloud.js +74 -0
  108. package/dist/src/agent/image/generation/types.d.ts +2 -2
  109. package/dist/src/agent/memory/builtin-provider.d.ts +2 -4
  110. package/dist/src/agent/memory/builtin-provider.js +35 -15
  111. package/dist/src/agent/memory/context/types.d.ts +3 -1
  112. package/dist/src/agent/memory/create-memory-manager.js +2 -0
  113. package/dist/src/agent/memory/index.d.ts +1 -1
  114. package/dist/src/agent/memory/index.js +1 -1
  115. package/dist/src/agent/memory/manager.d.ts +9 -1
  116. package/dist/src/agent/memory/manager.js +39 -9
  117. package/dist/src/agent/memory/memory-config.d.ts +1 -1
  118. package/dist/src/agent/memory/memory-config.js +1 -1
  119. package/dist/src/agent/memory/source-origin.js +0 -2
  120. package/dist/src/agent/memory/types.d.ts +5 -1
  121. package/dist/src/agent/memory/understanding/service.d.ts +10 -10
  122. package/dist/src/agent/memory/understanding/service.js +108 -176
  123. package/dist/src/agent/memory/understanding/types.d.ts +7 -8
  124. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  125. package/dist/src/agent/memory/user-context-coordinator.js +27 -41
  126. package/dist/src/agent/orchestration/agent-orchestrator.js +4 -7
  127. package/dist/src/agent/prompt/sections/memory-skills.js +4 -4
  128. package/dist/src/agent/prompt/sections/tooling.js +0 -10
  129. package/dist/src/agent/prompt/service-prompt-builder.d.ts +0 -1
  130. package/dist/src/agent/prompt/service-prompt-builder.js +4 -33
  131. package/dist/src/agent/prompt/system-prompt.js +1 -2
  132. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  133. package/dist/src/agent/service.d.ts +1 -2
  134. package/dist/src/agent/service.js +4 -17
  135. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +1 -1
  136. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -2
  137. package/dist/src/agent/tools/dreaming-tool.js +13 -38
  138. package/dist/src/agent/tools/factory.d.ts +0 -3
  139. package/dist/src/agent/tools/factory.js +1 -10
  140. package/dist/src/agent/tools/index.d.ts +0 -1
  141. package/dist/src/agent/tools/index.js +1 -2
  142. package/dist/src/agent/tools/memory-tool.js +1 -1
  143. package/dist/src/agent/workspace-runtime/registry.d.ts +3 -5
  144. package/dist/src/agent/workspace-runtime/registry.js +2 -15
  145. package/dist/src/agent-manifest/schema.d.ts +17 -17
  146. package/dist/src/agent-runtime/index.js +1 -1
  147. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  148. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  149. package/dist/src/automations/domain/validation.d.ts +28 -28
  150. package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
  151. package/dist/src/chat-commands/builtins/understanding.js +2 -5
  152. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  153. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  154. package/dist/src/cli/commands/init.js +3 -22
  155. package/dist/src/cli/commands/onboard/model.d.ts +3 -0
  156. package/dist/src/cli/commands/onboard/model.js +19 -4
  157. package/dist/src/cli/commands/update.js +1 -1
  158. package/dist/src/cli/templates.js +1 -1
  159. package/dist/src/config/agent-profile.js +1 -1
  160. package/dist/src/config/index.js +3 -3
  161. package/dist/src/config/paths.d.ts +0 -5
  162. package/dist/src/config/paths.js +2 -11
  163. package/dist/src/config/schema.d.ts +24 -117
  164. package/dist/src/config/schema.js +9 -39
  165. package/dist/src/connectors/learning-coordinator.js +75 -3
  166. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  167. package/dist/src/gateway/agent-builtin-tools.js +0 -5
  168. package/dist/src/gateway/agents-admin.d.ts +0 -7
  169. package/dist/src/gateway/agents-admin.js +4 -33
  170. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +3 -3
  171. package/dist/src/gateway/dreaming-automation-reconciler.js +48 -88
  172. package/dist/src/gateway/hono/lib/config-payload.d.ts +19 -7
  173. package/dist/src/gateway/hono/lib/config-payload.js +3 -1
  174. package/dist/src/gateway/hono/oauth-async.d.ts +1 -0
  175. package/dist/src/gateway/hono/oauth-async.js +17 -2
  176. package/dist/src/gateway/hono/routes/agents.js +1 -33
  177. package/dist/src/gateway/hono/routes/config-patch/misc.js +17 -1
  178. package/dist/src/gateway/hono/routes/connectors.js +13 -12
  179. package/dist/src/gateway/hono/routes/index.js +2 -2
  180. package/dist/src/gateway/hono/routes/lazy-bundles.js +1 -5
  181. package/dist/src/gateway/hono/routes/local-apps.js +1 -1
  182. package/dist/src/gateway/hono/routes/models.js +9 -8
  183. package/dist/src/gateway/hono/routes/status.js +0 -7
  184. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +3 -0
  185. package/dist/src/gateway/hono/routes/understanding-sources.js +203 -0
  186. package/dist/src/gateway/hono/routes/update.js +2 -2
  187. package/dist/src/gateway/hono/routes/work-discovery.d.ts +2 -0
  188. package/dist/src/gateway/hono/routes/work-discovery.js +3 -134
  189. package/dist/src/gateway/hono/routes/you.d.ts +0 -22
  190. package/dist/src/gateway/hono/routes/you.js +234 -1118
  191. package/dist/src/gateway/index.js +1 -1
  192. package/dist/src/gateway/run-loop.js +1 -1
  193. package/dist/src/gateway/service/config-coordinator.d.ts +1 -1
  194. package/dist/src/gateway/service/run-gateway-agent.js +2 -4
  195. package/dist/src/gateway/service.js +5 -5
  196. package/dist/src/infra/gateway-processes.js +1 -1
  197. package/dist/src/infra/update-restart.js +1 -1
  198. package/dist/src/infra/update-runner.js +2 -2
  199. package/dist/src/infra/update-startup.js +1 -1
  200. package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
  201. package/dist/src/knowledge/connected-understanding-pipeline.d.ts +2 -4
  202. package/dist/src/knowledge/connected-understanding-pipeline.js +31 -81
  203. package/dist/src/knowledge/index.js +2 -2
  204. package/dist/src/knowledge/people-graph.d.ts +22 -25
  205. package/dist/src/knowledge/people-graph.js +76 -43
  206. package/dist/src/proactive/execution/context.js +8 -13
  207. package/dist/src/providers/model-catalog-store.d.ts +15 -0
  208. package/dist/src/providers/model-catalog-store.js +14 -1
  209. package/dist/src/providers/model-catalog-sync-service.js +6 -0
  210. package/dist/src/providers/model-registry.js +4 -4
  211. package/dist/src/providers/register-runtime-providers.js +4 -4
  212. package/dist/src/providers/xopc-cloud-model-source.js +55 -8
  213. package/dist/src/realtime/broker.d.ts +1 -0
  214. package/dist/src/realtime/broker.js +19 -2
  215. package/dist/src/realtime/runtime.js +6 -1
  216. package/dist/src/storage/sqlite/connector-account-repository.js +0 -1
  217. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +37 -0
  218. package/dist/src/storage/sqlite/context-consolidation-repository.js +64 -0
  219. package/dist/src/storage/sqlite/fts.d.ts +2 -0
  220. package/dist/src/storage/sqlite/fts.js +29 -1
  221. package/dist/src/storage/sqlite/index.d.ts +4 -6
  222. package/dist/src/storage/sqlite/index.js +5 -7
  223. package/dist/src/storage/sqlite/knowledge-repository.d.ts +9 -2
  224. package/dist/src/storage/sqlite/knowledge-repository.js +58 -10
  225. package/dist/src/storage/sqlite/memory-records-repository.d.ts +7 -56
  226. package/dist/src/storage/sqlite/memory-records-repository.js +68 -218
  227. package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +54 -0
  228. package/dist/src/storage/sqlite/migrations/114_user_context_domain.sql +193 -0
  229. package/dist/src/storage/sqlite/migrations/115_remove_legacy_user_context.sql +6 -0
  230. package/dist/src/storage/sqlite/migrations/116_structured_context_consolidation.sql +38 -0
  231. package/dist/src/storage/sqlite/migrations/117_unified_understanding_sources.sql +110 -0
  232. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  233. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  234. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  235. package/dist/src/storage/sqlite/schema.js +1 -1
  236. package/dist/src/storage/sqlite/schema.sql +0 -20
  237. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +34 -0
  238. package/dist/src/storage/sqlite/user-context-quality-repository.js +74 -0
  239. package/dist/src/storage/sqlite/user-context-repository.d.ts +64 -0
  240. package/dist/src/storage/sqlite/user-context-repository.js +383 -0
  241. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  242. package/dist/src/tui/tool-summary.js +1 -7
  243. package/dist/src/tui/tui-startup-resources.js +1 -2
  244. package/dist/src/user-context/config.d.ts +17 -210
  245. package/dist/src/user-context/config.js +19 -85
  246. package/dist/src/user-context/consolidation.d.ts +26 -0
  247. package/dist/src/user-context/consolidation.js +115 -0
  248. package/dist/src/user-context/domain.d.ts +75 -0
  249. package/dist/src/user-context/domain.js +4 -0
  250. package/dist/src/user-context/manual-understanding.d.ts +7 -14
  251. package/dist/src/user-context/manual-understanding.js +19 -54
  252. package/dist/src/{agent/memory/context → user-context}/planner.d.ts +5 -6
  253. package/dist/src/user-context/planner.js +311 -0
  254. package/dist/src/user-context/relationship-continuity.d.ts +3 -6
  255. package/dist/src/user-context/relationship-continuity.js +39 -32
  256. package/dist/src/user-context/sources/catalog.d.ts +2 -0
  257. package/dist/src/user-context/sources/catalog.js +149 -0
  258. package/dist/src/user-context/sources/index.d.ts +3 -0
  259. package/dist/src/user-context/sources/index.js +3 -0
  260. package/dist/src/user-context/sources/repository.d.ts +40 -0
  261. package/dist/src/user-context/sources/repository.js +164 -0
  262. package/dist/src/user-context/sources/types.d.ts +83 -0
  263. package/dist/src/work-discovery/analyzer.d.ts +4 -3
  264. package/dist/src/work-discovery/analyzer.js +21 -16
  265. package/dist/src/work-discovery/incremental-repository.js +42 -40
  266. package/dist/src/work-discovery/index.js +3 -3
  267. package/dist/src/work-discovery/service.d.ts +7 -7
  268. package/dist/src/work-discovery/service.js +241 -190
  269. package/dist/src/work-discovery/source-repository.js +42 -53
  270. package/dist/src/work-discovery/types.d.ts +2 -14
  271. package/package.json +3 -8
  272. package/dist/gateway/static/root/assets/agents-BvdqdER9.js +0 -2
  273. package/dist/gateway/static/root/assets/apps-page-nKLsfy6C.js +0 -1
  274. package/dist/gateway/static/root/assets/automations-page-Dh5bdZiN.js +0 -6
  275. package/dist/gateway/static/root/assets/browser-settings-page-CRJ_nAuh.js +0 -8
  276. package/dist/gateway/static/root/assets/capabilities-settings-panel-DeQR5BZt.js +0 -7
  277. package/dist/gateway/static/root/assets/capability-presets-api-D7tkhDMv.js +0 -1
  278. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7uK3q1p.js +0 -1
  279. package/dist/gateway/static/root/assets/channels-settings-Bw6Dniyq.js +0 -1
  280. package/dist/gateway/static/root/assets/channels-status-swr-BrUTz4uU.js +0 -1
  281. package/dist/gateway/static/root/assets/connector-logo-8YU53RUT.js +0 -1
  282. package/dist/gateway/static/root/assets/connectors-page-k9tMiOL5.js +0 -2
  283. package/dist/gateway/static/root/assets/cron-expression-B3B1eqnr.js +0 -2
  284. package/dist/gateway/static/root/assets/extension-settings-page-DEZw_7zN.js +0 -1
  285. package/dist/gateway/static/root/assets/gateway-settings-Dg8qCiIp.js +0 -1
  286. package/dist/gateway/static/root/assets/heartbeat-settings-27tRzDEo.js +0 -1
  287. package/dist/gateway/static/root/assets/home-page-VA511kMr.js +0 -3
  288. package/dist/gateway/static/root/assets/index-BvR-i-m6.js +0 -216
  289. package/dist/gateway/static/root/assets/index-zybP34zk.css +0 -1
  290. package/dist/gateway/static/root/assets/local-app-workbench-page-CaJq4-wV.js +0 -2
  291. package/dist/gateway/static/root/assets/locale-store-DUW5YE3R.js +0 -1
  292. package/dist/gateway/static/root/assets/logs-page-BLTCg69e.js +0 -2
  293. package/dist/gateway/static/root/assets/messages-CMjnbdbn.js +0 -3
  294. package/dist/gateway/static/root/assets/notes-workbench-Bp1w9UM1.js +0 -4
  295. package/dist/gateway/static/root/assets/project-detail-page-CZmbPDQN.js +0 -1
  296. package/dist/gateway/static/root/assets/projects-page-D5pzqfm5.js +0 -1
  297. package/dist/gateway/static/root/assets/remote-access-hub-CC-XhVGI.js +0 -1
  298. package/dist/gateway/static/root/assets/segmented-styles-BL8oLBEp.js +0 -1
  299. package/dist/gateway/static/root/assets/sessions-page-B2eTLVDV.js +0 -1
  300. package/dist/gateway/static/root/assets/settings-advanced-gate-CRuZ_bl0.js +0 -1
  301. package/dist/gateway/static/root/assets/settings-form-section-C4GXGeA4.js +0 -1
  302. package/dist/gateway/static/root/assets/shares-settings-YzSDS4G_.js +0 -1
  303. package/dist/gateway/static/root/assets/skill-reload-api-CwOo8zZk.js +0 -1
  304. package/dist/gateway/static/root/assets/skills-page-xd1cgSGN.js +0 -2
  305. package/dist/gateway/static/root/assets/time-picker-CstQ___Y.js +0 -1
  306. package/dist/gateway/static/root/assets/use-save-bar-registration-CQYE0l6z.js +0 -1
  307. package/dist/gateway/static/root/assets/user-context-page-BnQAWS_B.js +0 -1
  308. package/dist/gateway/static/root/assets/work-discovery-page-CAszL1y8.js +0 -1
  309. package/dist/gateway/static/root/assets/workflows-page-DxGzo3-x.js +0 -11
  310. package/dist/src/agent/code-intelligence/binary.d.ts +0 -15
  311. package/dist/src/agent/code-intelligence/binary.js +0 -372
  312. package/dist/src/agent/code-intelligence/index.d.ts +0 -4
  313. package/dist/src/agent/code-intelligence/index.js +0 -4
  314. package/dist/src/agent/code-intelligence/runtime.d.ts +0 -34
  315. package/dist/src/agent/code-intelligence/runtime.js +0 -280
  316. package/dist/src/agent/code-intelligence/tool-gating.d.ts +0 -5
  317. package/dist/src/agent/code-intelligence/tool-gating.js +0 -6
  318. package/dist/src/agent/code-intelligence/tools.d.ts +0 -6
  319. package/dist/src/agent/code-intelligence/tools.js +0 -266
  320. package/dist/src/agent/code-intelligence/types.d.ts +0 -22
  321. package/dist/src/agent/memory/context/planner.js +0 -286
  322. package/dist/src/agent/memory/dreaming/config.d.ts +0 -48
  323. package/dist/src/agent/memory/dreaming/config.js +0 -98
  324. package/dist/src/agent/memory/dreaming/constants.d.ts +0 -12
  325. package/dist/src/agent/memory/dreaming/constants.js +0 -18
  326. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +0 -19
  327. package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -152
  328. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +0 -16
  329. package/dist/src/agent/memory/dreaming/light-sweep.js +0 -115
  330. package/dist/src/agent/memory/dreaming/preview.d.ts +0 -23
  331. package/dist/src/agent/memory/dreaming/preview.js +0 -52
  332. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +0 -16
  333. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -44
  334. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +0 -19
  335. package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -150
  336. package/dist/src/agent/memory/dreaming/runner.d.ts +0 -10
  337. package/dist/src/agent/memory/dreaming/runner.js +0 -78
  338. package/dist/src/agent/memory/dreaming/schedule.d.ts +0 -23
  339. package/dist/src/agent/memory/dreaming/schedule.js +0 -38
  340. package/dist/src/agent/memory/dreaming/scope.d.ts +0 -11
  341. package/dist/src/agent/memory/dreaming/scope.js +0 -33
  342. package/dist/src/agent/memory/dreaming/utils.d.ts +0 -3
  343. package/dist/src/agent/memory/dreaming/utils.js +0 -31
  344. package/dist/src/gateway/hono/routes/memory.d.ts +0 -3
  345. package/dist/src/gateway/hono/routes/memory.js +0 -460
  346. package/dist/src/storage/sqlite/dreaming-repository.d.ts +0 -61
  347. package/dist/src/storage/sqlite/dreaming-repository.js +0 -88
  348. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +0 -7
  349. package/dist/src/storage/sqlite/memory-readiness-repository.js +0 -30
  350. package/dist/src/storage/sqlite/memory-reference-consent-repository.d.ts +0 -27
  351. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -107
  352. package/dist/src/storage/sqlite/user-claims-repository.d.ts +0 -101
  353. package/dist/src/storage/sqlite/user-claims-repository.js +0 -241
  354. package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +0 -3
  355. package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -32
  356. package/dist/src/user-context/actionableInsights.d.ts +0 -14
  357. package/dist/src/user-context/actionableInsights.js +0 -34
  358. package/dist/src/user-context/context-compiler.d.ts +0 -27
  359. package/dist/src/user-context/context-compiler.js +0 -48
  360. package/dist/src/user-context/import.d.ts +0 -12
  361. package/dist/src/user-context/import.js +0 -51
  362. package/dist/src/user-context/memory-episode-evaluator.d.ts +0 -32
  363. package/dist/src/user-context/memory-episode-evaluator.js +0 -35
  364. package/dist/src/user-context/memory-readiness.d.ts +0 -33
  365. package/dist/src/user-context/memory-readiness.js +0 -41
  366. package/dist/src/user-context/memory-use-audit.d.ts +0 -10
  367. package/dist/src/user-context/memory-use-audit.js +0 -26
  368. package/dist/src/user-context/personal-playbook.d.ts +0 -11
  369. package/dist/src/user-context/personal-playbook.js +0 -41
  370. package/dist/src/user-context/profile.d.ts +0 -37
  371. package/dist/src/user-context/profile.js +0 -163
  372. package/dist/src/user-context/projection.d.ts +0 -120
  373. package/dist/src/user-context/projection.js +0 -262
  374. package/dist/src/user-context/source-recommendations.d.ts +0 -13
  375. package/dist/src/user-context/source-recommendations.js +0 -85
  376. /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 {};