@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
@@ -43,7 +43,7 @@ export interface OpenAiImagesProviderOptions {
43
43
  /** Sync env / cfg lookup that decides if the provider has any usable credential. */
44
44
  isConfigured: (ctx: ImageGenerationProviderConfiguredContext) => boolean;
45
45
  /** Resolve API key for one request. May return null when using OAuth/header auth. */
46
- resolveApiKey: (req: ImageGenerationRequest) => string | null | undefined;
46
+ resolveApiKey: (req: ImageGenerationRequest) => string | null | undefined | Promise<string | null | undefined>;
47
47
  /** Resolve endpoint info per-request (region, baseUrl override, Azure deployment, …). */
48
48
  resolveEndpoint: (req: ImageGenerationRequest) => OpenAiImagesEndpointResolution;
49
49
  /** Default per-call timeout. Combined with provider-level config in provider-http. */
@@ -26,7 +26,7 @@ function createOpenAiImagesProvider(options) {
26
26
  capabilities: options.capabilities,
27
27
  isConfigured: options.isConfigured,
28
28
  async generateImage(req) {
29
- const apiKey = options.resolveApiKey(req) ?? null;
29
+ const apiKey = await options.resolveApiKey(req) ?? null;
30
30
  const endpoint = options.resolveEndpoint(req);
31
31
  const httpDefaults = resolveProviderHttpRequestConfig({
32
32
  providerId: options.id,
@@ -2,6 +2,8 @@ import type { ModelsJsonConfig } from '../../../config/models-json.js';
2
2
  import type { ImageGenerationProvider, ImageGenerationProviderSummary } from './types.js';
3
3
  export declare function reloadImageGenerationProviders(config?: ModelsJsonConfig): void;
4
4
  export declare function getImageGenerationProvider(providerId: string): ImageGenerationProvider | undefined;
5
+ /** Resolve the auth mode consistently for provider objects and catalog summaries. */
6
+ export declare function resolveImageGenerationCredentialMode(provider: Pick<ImageGenerationProvider, 'credentialMode'>): NonNullable<ImageGenerationProvider['credentialMode']>;
5
7
  export declare function listImageGenerationProviders(): ImageGenerationProvider[];
6
8
  export declare function listImageGenerationProvidersSummary(): ImageGenerationProviderSummary[];
7
9
  export type { ImageGenerationProvider, ImageGenerationProviderSummary } from './types.js';
@@ -7,24 +7,30 @@ import { buildFalImageGenerationProvider } from "./providers/fal.js";
7
7
  import { buildGoogleImageGenerationProvider } from "./providers/google.js";
8
8
  import { buildMinimaxImageGenerationProvider } from "./providers/minimax.js";
9
9
  import { buildOpenAIImageGenerationProvider } from "./providers/openai.js";
10
+ import { buildXopcCloudImageGenerationProvider } from "./providers/xopc-cloud.js";
10
11
  //#region src/agent/image/generation/provider-registry.ts
11
12
  init_models_json();
12
13
  init_logger();
13
14
  const log = createLogger("ImageGenerationRegistry");
14
- const builtInProviders = [
15
- buildOpenAIImageGenerationProvider(),
16
- buildDashScopeImageGenerationProvider(),
17
- buildMinimaxImageGenerationProvider(),
18
- buildGoogleImageGenerationProvider(),
19
- buildFalImageGenerationProvider()
20
- ];
21
- let providers = [...builtInProviders];
15
+ function buildBuiltInProviders() {
16
+ const cloud = buildXopcCloudImageGenerationProvider();
17
+ return [
18
+ ...cloud ? [cloud] : [],
19
+ buildOpenAIImageGenerationProvider(),
20
+ buildDashScopeImageGenerationProvider(),
21
+ buildMinimaxImageGenerationProvider(),
22
+ buildGoogleImageGenerationProvider(),
23
+ buildFalImageGenerationProvider()
24
+ ];
25
+ }
26
+ let providers = buildBuiltInProviders();
22
27
  let providersById = new Map(providers.map((provider) => [provider.id, provider]));
23
28
  let customProvidersLoaded = false;
24
29
  function ensureCustomProvidersLoaded() {
25
30
  if (!customProvidersLoaded) reloadImageGenerationProviders();
26
31
  }
27
32
  function reloadImageGenerationProviders(config) {
33
+ const builtInProviders = buildBuiltInProviders();
28
34
  let resolved = config;
29
35
  if (!resolved) {
30
36
  const loaded = loadModelsJson();
@@ -54,6 +60,10 @@ function getImageGenerationProvider(providerId) {
54
60
  ensureCustomProvidersLoaded();
55
61
  return providersById.get(providerId);
56
62
  }
63
+ /** Resolve the auth mode consistently for provider objects and catalog summaries. */
64
+ function resolveImageGenerationCredentialMode(provider) {
65
+ return provider.credentialMode ?? "api-key";
66
+ }
57
67
  function listImageGenerationProviders() {
58
68
  ensureCustomProvidersLoaded();
59
69
  return [...providers];
@@ -64,7 +74,7 @@ function listImageGenerationProvidersSummary() {
64
74
  id: provider.id,
65
75
  label: provider.label,
66
76
  source: provider.source ?? "builtin",
67
- credentialMode: provider.credentialMode ?? "api-key",
77
+ credentialMode: resolveImageGenerationCredentialMode(provider),
68
78
  ...provider.documentationUrl ? { documentationUrl: provider.documentationUrl } : {},
69
79
  ...provider.apiKeyUrl ? { apiKeyUrl: provider.apiKeyUrl } : {},
70
80
  defaultModel: provider.defaultModel,
@@ -74,4 +84,4 @@ function listImageGenerationProvidersSummary() {
74
84
  }));
75
85
  }
76
86
  //#endregion
77
- export { getImageGenerationProvider, listImageGenerationProviders, listImageGenerationProvidersSummary, reloadImageGenerationProviders };
87
+ export { getImageGenerationProvider, listImageGenerationProviders, listImageGenerationProvidersSummary, reloadImageGenerationProviders, resolveImageGenerationCredentialMode };
@@ -0,0 +1,2 @@
1
+ import type { ImageGenerationProvider } from '../types.js';
2
+ export declare function buildXopcCloudImageGenerationProvider(): ImageGenerationProvider | undefined;
@@ -0,0 +1,74 @@
1
+ import { getModelCatalogStore, init_model_catalog_store } from "../../../../providers/model-catalog-store.js";
2
+ import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "../../../../providers/xopc-cloud-config.js";
3
+ import { getProviderAuthService, init_provider_auth_service } from "../../../../providers/provider-auth-service.js";
4
+ import { createOpenAiImagesProvider } from "../openai-images-provider.js";
5
+ //#region src/agent/image/generation/providers/xopc-cloud.ts
6
+ init_model_catalog_store();
7
+ init_provider_auth_service();
8
+ init_xopc_cloud_config();
9
+ function buildXopcCloudImageGenerationProvider() {
10
+ const source = getModelCatalogStore().getSource("xopc-cloud");
11
+ const models = source?.models.filter((model) => model.availability === "available" && model.kind === "image" && model.operations.includes("images.generate")) ?? [];
12
+ if (models.length === 0) return void 0;
13
+ const modelCapabilities = Object.fromEntries(models.map((model) => [model.id, toProviderCapabilities(model)]));
14
+ const defaultModel = models[0].id;
15
+ const baseUrl = source?.baseUrl ?? resolveXopcModelRouterUrl();
16
+ const executors = new Map(models.map((model) => [model.id, createOpenAiImagesProvider({
17
+ id: "xopc-cloud",
18
+ label: "XOPC Model Service",
19
+ defaultModel: model.id,
20
+ models: [model.id],
21
+ capabilities: modelCapabilities[model.id],
22
+ isConfigured: () => true,
23
+ resolveApiKey: (request) => getProviderAuthService().resolveApiKey("xopc-cloud", request.signal),
24
+ resolveEndpoint: () => ({ baseUrl }),
25
+ ...model.imageGeneration?.sizes[0] ? { defaultSize: model.imageGeneration.sizes[0] } : {}
26
+ })]));
27
+ return {
28
+ id: "xopc-cloud",
29
+ label: "XOPC Model Service",
30
+ credentialMode: "oauth",
31
+ defaultModel,
32
+ models: models.map((model) => model.id),
33
+ capabilities: modelCapabilities[defaultModel],
34
+ modelCapabilities,
35
+ isConfigured: () => true,
36
+ async generateImage(request) {
37
+ const executor = executors.get(request.model);
38
+ if (!executor) throw new Error(`Image model is not available from XOPC Model Service: ${request.model}`);
39
+ const geometry = modelCapabilities[request.model]?.geometry;
40
+ const size = request.size ?? (request.aspectRatio && geometry?.aspectRatios?.includes(request.aspectRatio) ? request.aspectRatio : void 0) ?? (request.resolution && geometry?.resolutions?.includes(request.resolution) ? request.resolution : void 0);
41
+ return executor.generateImage({
42
+ ...request,
43
+ ...size ? { size } : {}
44
+ });
45
+ }
46
+ };
47
+ }
48
+ function toProviderCapabilities(model) {
49
+ const image = model.imageGeneration;
50
+ return {
51
+ generate: {
52
+ maxCount: image?.maxCount ?? 1,
53
+ supportsSize: Boolean(image?.sizes.length),
54
+ supportsAspectRatio: Boolean(image?.aspectRatios?.length)
55
+ },
56
+ edit: {
57
+ enabled: model.operations.includes("images.edit"),
58
+ maxInputImages: image?.maxInputImages ?? 0,
59
+ supportsSize: Boolean(image?.sizes.length),
60
+ supportsAspectRatio: Boolean(image?.aspectRatios?.length)
61
+ },
62
+ geometry: {
63
+ sizes: image?.sizes ?? [],
64
+ aspectRatios: image?.aspectRatios ?? []
65
+ },
66
+ output: {
67
+ qualities: image?.qualities ?? [],
68
+ formats: image?.formats ?? [],
69
+ backgrounds: image?.backgrounds ?? []
70
+ }
71
+ };
72
+ }
73
+ //#endregion
74
+ export { buildXopcCloudImageGenerationProvider };
@@ -52,7 +52,7 @@ export interface ImageGenerationProvider {
52
52
  id: string;
53
53
  label: string;
54
54
  source?: 'builtin' | 'custom';
55
- credentialMode?: 'api-key' | 'none';
55
+ credentialMode?: 'api-key' | 'oauth' | 'none';
56
56
  documentationUrl?: string;
57
57
  apiKeyUrl?: string;
58
58
  defaultModel: string;
@@ -67,7 +67,7 @@ export interface ImageGenerationProviderSummary {
67
67
  id: string;
68
68
  label: string;
69
69
  source: 'builtin' | 'custom';
70
- credentialMode: 'api-key' | 'none';
70
+ credentialMode: 'api-key' | 'oauth' | 'none';
71
71
  documentationUrl?: string;
72
72
  apiKeyUrl?: string;
73
73
  defaultModel: string;
@@ -1,4 +1,4 @@
1
- import type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';
1
+ import type { MemoryProvider } from './provider.js';
2
2
  import type { MemoryDeleteRequest, MemoryListRequest, MemoryReadRequest, MemoryReadResult, MemoryRecord, MemorySearchRequest, MemorySearchResult, MemoryUpdateRequest, MemoryWriteRequest, MemoryWriteResult, MemorySyncEvent } from './types.js';
3
3
  /**
4
4
  * Builtin local memory provider backed exclusively by the structured SQLite store.
@@ -19,10 +19,8 @@ export declare class BuiltinMemoryProvider implements MemoryProvider {
19
19
  sync: boolean;
20
20
  local: boolean;
21
21
  };
22
- private workspaceDir;
23
- private agentId;
24
22
  isAvailable(): boolean;
25
- initialize(_sessionId: string, options?: MemoryProviderInitOptions): Promise<void>;
23
+ initialize(): Promise<void>;
26
24
  systemPromptBlock(): string;
27
25
  queuePrefetch(): void;
28
26
  getToolSchemas(): any[];
@@ -16,21 +16,16 @@ var BuiltinMemoryProvider = class {
16
16
  update: true,
17
17
  delete: true,
18
18
  keywordSearch: true,
19
- semanticSearch: false,
20
- hybridSearch: false,
19
+ semanticSearch: true,
20
+ hybridSearch: true,
21
21
  citations: true,
22
22
  sync: false,
23
23
  local: true
24
24
  };
25
- workspaceDir = "";
26
- agentId = "main";
27
25
  isAvailable() {
28
26
  return true;
29
27
  }
30
- async initialize(_sessionId, options) {
31
- this.workspaceDir = options?.workspace ?? options?.agentWorkspace ?? this.workspaceDir;
32
- this.agentId = normalizeAgentId(String(options?.agentId ?? this.agentId));
33
- }
28
+ async initialize() {}
34
29
  systemPromptBlock() {
35
30
  return "";
36
31
  }
@@ -39,17 +34,40 @@ var BuiltinMemoryProvider = class {
39
34
  return [];
40
35
  }
41
36
  async search(request) {
42
- return searchMemoryRecords({
37
+ const options = {
43
38
  query: request.query,
44
39
  visibleToSessionKey: request.scope?.sessionKey,
45
40
  unscopedSessionOnly: request.scope?.sessionKey == null,
46
41
  visibleToProjectId: request.scope?.projectId,
47
42
  unscopedProjectOnly: request.scope?.projectId == null,
43
+ visibleToWorkspaceId: request.scope?.workspaceId,
44
+ unscopedWorkspaceOnly: request.scope?.workspaceId == null,
48
45
  providerId: this.id,
49
46
  kinds: request.kinds,
50
47
  maxResults: request.maxResults,
51
48
  minScore: request.minScore
52
- }).filter((result) => this.canReadRecord(result.record, request.scope)).sort((left, right) => right.score - left.score).slice(0, request.maxResults ?? 5);
49
+ };
50
+ const [active, shadow] = [searchMemoryRecords(options), searchMemoryRecords({
51
+ ...options,
52
+ statuses: ["candidate"],
53
+ maxResults: Math.min(5, request.maxResults ?? 5)
54
+ })];
55
+ for (const result of shadow) appendMemorySignal({
56
+ signal: {
57
+ source: "search_recall",
58
+ recordId: result.record.id,
59
+ score: result.score,
60
+ metadata: {
61
+ query: request.query,
62
+ shadow: true
63
+ }
64
+ },
65
+ providerId: this.id,
66
+ sourceAgentId: result.record.provenance.sourceAgentId,
67
+ workspaceId: request.scope?.workspaceId,
68
+ sessionKey: request.scope?.sessionKey
69
+ });
70
+ return active.filter((result) => this.canReadRecord(result.record, request.scope)).sort((left, right) => right.score - left.score).slice(0, request.maxResults ?? 5);
53
71
  }
54
72
  async read(request) {
55
73
  if (!request.id) return null;
@@ -62,7 +80,8 @@ var BuiltinMemoryProvider = class {
62
80
  async list(request) {
63
81
  return listMemoryRecords({
64
82
  providerId: this.id,
65
- workspaceId: request.scope?.workspaceId ?? this.workspaceDir,
83
+ visibleToWorkspaceId: request.scope?.workspaceId,
84
+ unscopedWorkspaceOnly: request.scope?.workspaceId == null,
66
85
  visibleToSessionKey: request.scope?.sessionKey,
67
86
  visibleToProjectId: request.scope?.projectId,
68
87
  kind: request.kind,
@@ -75,8 +94,8 @@ var BuiltinMemoryProvider = class {
75
94
  const record = upsertMemoryRecord({
76
95
  providerId: this.id,
77
96
  kind: request.kind,
78
- sourceAgentId: this.agentId,
79
- workspaceId: request.scope?.workspaceId ?? this.workspaceDir,
97
+ sourceAgentId: normalizeAgentId(request.sourceAgentId ?? "main"),
98
+ workspaceId: request.scope?.workspaceId,
80
99
  sessionKey: request.scope?.sessionKey,
81
100
  projectId: request.scope?.projectId,
82
101
  content: request.content,
@@ -171,8 +190,8 @@ var BuiltinMemoryProvider = class {
171
190
  appendMemorySignal({
172
191
  signal: event.signal,
173
192
  providerId: this.id,
174
- sourceAgentId: this.agentId,
175
- workspaceId: this.workspaceDir,
193
+ sourceAgentId: typeof event.signal.metadata?.agentId === "string" ? normalizeAgentId(event.signal.metadata.agentId) : "main",
194
+ workspaceId: typeof event.signal.metadata?.workspaceId === "string" ? event.signal.metadata.workspaceId : void 0,
176
195
  sessionKey: typeof event.signal.metadata?.sessionKey === "string" ? event.signal.metadata.sessionKey : void 0
177
196
  });
178
197
  }
@@ -180,6 +199,7 @@ var BuiltinMemoryProvider = class {
180
199
  canReadRecord(record, scope) {
181
200
  if (record.scope.sessionKey && record.scope.sessionKey !== scope?.sessionKey) return false;
182
201
  if (record.scope.projectId && record.scope.projectId !== scope?.projectId) return false;
202
+ if (record.scope.workspaceId && record.scope.workspaceId !== scope?.workspaceId) return false;
183
203
  return true;
184
204
  }
185
205
  };
@@ -1,7 +1,9 @@
1
1
  import type { AgentMessage } from '@earendil-works/pi-agent-core';
2
- export type UserContextRejectionReason = 'expired' | 'not_yet_valid' | 'sensitive' | 'requires_consent' | 'needs_review' | 'disabled' | 'conflict' | 'low_score' | 'budget';
2
+ export type UserContextRejectionReason = 'expired' | 'not_yet_valid' | 'sensitive' | 'requires_consent' | 'needs_review' | 'scope_mismatch' | 'disabled' | 'conflict' | 'low_score' | 'budget';
3
3
  export interface PlannedUserContextItem {
4
4
  recordId: string;
5
+ objectType: 'profile' | 'rule' | 'understanding';
6
+ versionId?: string;
5
7
  content: string;
6
8
  score: number;
7
9
  section: 'task' | 'interaction' | 'safety';
@@ -2,12 +2,14 @@ import { isMemorySubsystemEnabled } from "./memory-config.js";
2
2
  import { BuiltinMemoryProvider } from "./builtin-provider.js";
3
3
  import { MemoryManager } from "./manager.js";
4
4
  import { loadMemoryPluginProviders } from "./plugin-discovery.js";
5
+ import { buildMemoryRuntime } from "../../agent-runtime/memory-runtime.js";
5
6
  //#region src/agent/memory/create-memory-manager.ts
6
7
  function createMemoryManagerFromConfig(config) {
7
8
  const routing = resolveMemoryManagerOptions(config);
8
9
  const enabled = isMemorySubsystemEnabled(config);
9
10
  const mgr = new MemoryManager({
10
11
  ...routing,
12
+ ...config ? { memoryRuntime: buildMemoryRuntime(config.userContext) } : {},
11
13
  ...enabled ? { loadProviders: () => loadMemoryPluginProviders({ config }) } : {}
12
14
  });
13
15
  mgr.addProvider(new BuiltinMemoryProvider());
@@ -1,6 +1,6 @@
1
1
  export { BuiltinMemoryProvider } from './builtin-provider.js';
2
2
  export { buildUserContextBlock, sanitizeUserContextFenceEscapes, } from './context-fence.js';
3
- export { UserContextPlanner } from './context/planner.js';
3
+ export { UserContextPlanner } from '../../user-context/planner.js';
4
4
  export type { UserContextPlan } from './context/types.js';
5
5
  export { createMemoryManagerFromConfig } from './create-memory-manager.js';
6
6
  export { isMemorySubsystemEnabled, shouldPlanUserContextThisTurn, } from './memory-config.js';
@@ -1,6 +1,6 @@
1
1
  import { isMemorySubsystemEnabled, shouldPlanUserContextThisTurn } from "./memory-config.js";
2
2
  import { buildUserContextBlock, sanitizeUserContextFenceEscapes } from "./context-fence.js";
3
- import { UserContextPlanner } from "./context/planner.js";
3
+ import { UserContextPlanner } from "../../user-context/planner.js";
4
4
  import { extractAgentUserPlainText } from "./user-message-text.js";
5
5
  import { BuiltinMemoryProvider } from "./builtin-provider.js";
6
6
  import { UserUnderstandingService, extractExplicitUnderstandingCandidates } from "./understanding/service.js";
@@ -1,4 +1,5 @@
1
1
  import type { AgentTool } from '@earendil-works/pi-agent-core';
2
+ import type { MemoryRuntime } from '../../agent-runtime/memory-runtime.js';
2
3
  import type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';
3
4
  import type { UnderstandingCandidate } from './understanding/types.js';
4
5
  import type { MemoryDeleteRequest, MemoryListRequest, MemoryReadRequest, MemoryReadResult, MemorySearchRequest, MemorySearchResult, MemoryUpdateRequest, MemoryWriteRequest, MemoryWriteResult, MemoryRecord, MemorySignal, MemoryKind } from './types.js';
@@ -12,6 +13,7 @@ export interface MemoryRoutingOptions {
12
13
  export interface MemoryManagerOptions extends MemoryRoutingOptions {
13
14
  loadProviders?: () => Promise<MemoryProvider[]>;
14
15
  writePolicy?: MemoryWritePolicy;
16
+ memoryRuntime?: MemoryRuntime;
15
17
  }
16
18
  export interface MemoryWritePolicy {
17
19
  allowExternalWrites?: boolean;
@@ -26,8 +28,9 @@ export declare class MemoryManager {
26
28
  private readonly writePolicy;
27
29
  private pluginProvidersLoaded;
28
30
  private readonly understanding;
31
+ private readonly memoryRuntime?;
29
32
  private readonly lastTurnSourceItem;
30
- private understandingAgentId;
33
+ private readonly sessionContexts;
31
34
  constructor(options?: MemoryManagerOptions);
32
35
  addProvider(provider: MemoryProvider): void;
33
36
  get providersList(): MemoryProvider[];
@@ -42,6 +45,9 @@ export declare class MemoryManager {
42
45
  captureTurnUnderstanding(userContent: string, assistantContent: string, options?: {
43
46
  agentId?: string;
44
47
  sessionId?: string;
48
+ turnId?: string;
49
+ workspaceId?: string;
50
+ projectId?: string;
45
51
  correctionTargetRecordIds?: string[];
46
52
  }): Promise<import('./understanding/types.js').UnderstandingReviewResult>;
47
53
  syncProvidersForTurn(userContent: string, assistantContent: string, options?: {
@@ -50,6 +56,8 @@ export declare class MemoryManager {
50
56
  applyUnderstandingCandidates(candidates: UnderstandingCandidate[], context?: {
51
57
  agentId?: string;
52
58
  sessionKey?: string;
59
+ workspaceId?: string;
60
+ projectId?: string;
53
61
  sourceItemId?: string;
54
62
  sourceItemIds?: string[];
55
63
  sourceText?: string;
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
- import { appendMemoryTraceEvent } from "../../storage/sqlite/memory-records-repository.js";
4
3
  import { setKnowledgeSourceItemSynthesisStatus } from "../../storage/sqlite/knowledge-repository.js";
4
+ import { appendMemoryTraceEvent } from "../../storage/sqlite/memory-records-repository.js";
5
5
  import "../../storage/sqlite/index.js";
6
6
  import { UserUnderstandingService } from "./understanding/service.js";
7
7
  //#region src/agent/memory/manager.ts
@@ -15,8 +15,9 @@ var MemoryManager = class {
15
15
  writePolicy;
16
16
  pluginProvidersLoaded = false;
17
17
  understanding;
18
+ memoryRuntime;
18
19
  lastTurnSourceItem = /* @__PURE__ */ new Map();
19
- understandingAgentId;
20
+ sessionContexts = /* @__PURE__ */ new Map();
20
21
  constructor(options = {}) {
21
22
  this.routing = {
22
23
  searchStrategy: options.searchStrategy ?? "fanout",
@@ -24,15 +25,13 @@ var MemoryManager = class {
24
25
  replicateTo: options.replicateTo ?? []
25
26
  };
26
27
  this.loadProviders = options.loadProviders;
28
+ this.memoryRuntime = options.memoryRuntime;
27
29
  this.writePolicy = {
28
30
  allowExternalWrites: options.writePolicy?.allowExternalWrites ?? false,
29
31
  allowedProviderIds: options.writePolicy?.allowedProviderIds,
30
32
  autoWriteKinds: options.writePolicy?.autoWriteKinds
31
33
  };
32
- this.understanding = new UserUnderstandingService({
33
- write: (request) => this.write(request),
34
- list: (canonicalKey) => this.list({ canonicalKey })
35
- });
34
+ this.understanding = new UserUnderstandingService();
36
35
  }
37
36
  addProvider(provider) {
38
37
  this.providers.push(provider);
@@ -87,11 +86,14 @@ var MemoryManager = class {
87
86
  await this.syncProvidersForTurn(userContent, assistantContent, options);
88
87
  }
89
88
  async captureTurnUnderstanding(userContent, assistantContent, options) {
89
+ const sessionContext = options?.sessionId ? this.sessionContexts.get(options.sessionId) : void 0;
90
90
  const review = await this.understanding.reviewTurn({
91
- agentId: options?.agentId ?? this.understandingAgentId,
92
91
  userContent,
93
92
  assistantContent,
94
93
  sessionKey: options?.sessionId,
94
+ turnId: options?.turnId,
95
+ workspaceId: options?.workspaceId ?? sessionContext?.workspace ?? sessionContext?.agentWorkspace,
96
+ projectId: options?.projectId,
95
97
  correctionTargetRecordIds: options?.correctionTargetRecordIds
96
98
  });
97
99
  if (options?.sessionId && review.sourceItemId) this.lastTurnSourceItem.set(options.sessionId, review.sourceItemId);
@@ -127,10 +129,11 @@ var MemoryManager = class {
127
129
  }
128
130
  }
129
131
  async applyUnderstandingCandidates(candidates, context = {}) {
132
+ const sessionContext = context.sessionKey ? this.sessionContexts.get(context.sessionKey) : void 0;
130
133
  const sourceItemId = context.sourceItemId ?? (context.sessionKey ? this.lastTurnSourceItem.get(context.sessionKey) : void 0);
131
134
  const result = await this.understanding.applyCandidates(candidates, {
132
135
  ...context,
133
- agentId: context.agentId ?? this.understandingAgentId,
136
+ workspaceId: context.workspaceId ?? sessionContext?.workspace ?? sessionContext?.agentWorkspace,
134
137
  sourceItemId
135
138
  });
136
139
  const sourceItemIds = [...new Set([...sourceItemId ? [sourceItemId] : [], ...context.sourceItemIds ?? []])];
@@ -272,6 +275,12 @@ var MemoryManager = class {
272
275
  return this.writeWithStrategy("delete", request);
273
276
  }
274
277
  canReadRecord(record, scope) {
278
+ if (record.providerId !== "local") return true;
279
+ if (this.memoryRuntime && !this.memoryRuntime.canRead(memorySourceForRecord(record))) return false;
280
+ if (record.scope.userId && scope?.userId && record.scope.userId !== scope.userId) return false;
281
+ if (record.scope.sessionKey && record.scope.sessionKey !== scope?.sessionKey) return false;
282
+ if (record.scope.projectId && record.scope.projectId !== scope?.projectId) return false;
283
+ if (record.scope.workspaceId && record.scope.workspaceId !== scope?.workspaceId) return false;
275
284
  return true;
276
285
  }
277
286
  recordSignal(signal) {
@@ -306,7 +315,7 @@ var MemoryManager = class {
306
315
  }
307
316
  }
308
317
  async initializeAll(sessionId, options) {
309
- this.understandingAgentId = options?.agentId;
318
+ if (options) this.sessionContexts.set(sessionId, { ...options });
310
319
  await this.loadPluginProvidersOnce();
311
320
  for (const p of this.providers) try {
312
321
  await p.initialize(sessionId, options);
@@ -337,6 +346,7 @@ var MemoryManager = class {
337
346
  }
338
347
  async shutdownAll() {
339
348
  this.lastTurnSourceItem.clear();
349
+ this.sessionContexts.clear();
340
350
  for (const p of [...this.providers].reverse()) try {
341
351
  await p.shutdown();
342
352
  } catch (err) {
@@ -420,6 +430,17 @@ var MemoryManager = class {
420
430
  if (!provider.capabilities.local && this.writePolicy.allowedProviderIds && this.writePolicy.allowedProviderIds.length > 0 && !this.writePolicy.allowedProviderIds.includes(provider.id)) return false;
421
431
  if (operation === "write") {
422
432
  const writeRequest = request;
433
+ if (provider.capabilities.local && this.memoryRuntime) {
434
+ const check = this.memoryRuntime.checkWrite({
435
+ target: writeRequest.writeTarget ?? writeTargetForRecord(writeRequest),
436
+ content: writeRequest.content,
437
+ source: writeRequest.source?.provider ?? "memory",
438
+ confidence: writeRequest.confidence,
439
+ sensitive: writeRequest.sensitivity != null && writeRequest.sensitivity !== "normal"
440
+ });
441
+ if (check.decision === "deny") return false;
442
+ if (check.decision === "confirm" && writeRequest.status !== "candidate" && !writeRequest.confirmed) return false;
443
+ }
423
444
  if (writeRequest.status === "candidate" && !provider.capabilities.local) return false;
424
445
  if (this.writePolicy.autoWriteKinds && this.writePolicy.autoWriteKinds.length > 0 && !this.writePolicy.autoWriteKinds.includes(writeRequest.kind)) return false;
425
446
  }
@@ -442,6 +463,15 @@ var MemoryManager = class {
442
463
  }
443
464
  }
444
465
  };
466
+ function memorySourceForRecord(record) {
467
+ if (record.source.provider === "agent-profile") return "agentProfile";
468
+ if (record.scope.sessionKey) return "session";
469
+ if (record.scope.workspaceId || record.kind === "workspace_fact" || record.kind === "project_context" || record.kind === "task_lesson") return "workspace";
470
+ return "understanding";
471
+ }
472
+ function writeTargetForRecord(request) {
473
+ return request.scope?.workspaceId || request.kind === "workspace_fact" || request.kind === "project_context" || request.kind === "task_lesson" ? "workspace" : "understanding";
474
+ }
445
475
  function sanitizeTraceRequest(request) {
446
476
  if (!request || typeof request !== "object") return request;
447
477
  const copy = { ...request };
@@ -1,5 +1,5 @@
1
1
  import type { Config } from '../../config/schema.js';
2
- /** When false, structured user understanding and external memory providers are off. */
2
+ /** Whether generic workspace and provider-backed memory is available. */
3
3
  export declare function isMemorySubsystemEnabled(config: Config | undefined): boolean;
4
4
  /**
5
5
  * Whether to prefix the user message with prefetched external memory this turn.
@@ -1,5 +1,5 @@
1
1
  //#region src/agent/memory/memory-config.ts
2
- /** When false, structured user understanding and external memory providers are off. */
2
+ /** Whether generic workspace and provider-backed memory is available. */
3
3
  function isMemorySubsystemEnabled(config) {
4
4
  if (!config) return true;
5
5
  return config.userContext.enabled && config.userContext.memory.mode !== "off";
@@ -2,8 +2,6 @@
2
2
  const INTERNAL_MEMORY_PROVIDERS = new Set([
3
3
  "local",
4
4
  "builtin",
5
- "user-understanding",
6
- "dreaming",
7
5
  "workflow-run"
8
6
  ]);
9
7
  function classifyMemoryContextOrigin(record) {
@@ -100,6 +100,10 @@ export interface MemoryWriteRequest {
100
100
  content: string;
101
101
  canonicalKey?: string;
102
102
  scope?: Partial<MemoryScope>;
103
+ /** Agent that produced this record. This is request data, never provider state. */
104
+ sourceAgentId?: string;
105
+ writeTarget?: 'agentProfile' | 'understanding' | 'workspace';
106
+ confirmed?: boolean;
103
107
  tags?: string[];
104
108
  source?: MemoryRecord['source'];
105
109
  confidence?: number;
@@ -163,7 +167,7 @@ export type MemorySyncEvent = {
163
167
  signal: MemorySignal;
164
168
  };
165
169
  export interface MemorySignal {
166
- source: 'search_recall' | 'context_injection' | 'session_summary' | 'explicit_remember' | 'background_review' | 'dreaming';
170
+ source: 'search_recall' | 'context_injection' | 'session_summary' | 'explicit_remember' | 'background_review';
167
171
  recordId?: string;
168
172
  score?: number;
169
173
  content?: string;
@@ -1,27 +1,27 @@
1
- import type { MemoryRecord, MemoryWriteRequest, MemoryWriteResult } from '../types.js';
2
1
  import type { UnderstandingCandidate, UnderstandingReviewResult } from './types.js';
3
2
  export declare function extractExplicitUnderstandingCandidates(userContent: string): UnderstandingCandidate[];
4
- export interface UserUnderstandingServiceOptions {
5
- write: (request: MemoryWriteRequest) => Promise<MemoryWriteResult>;
6
- list: (canonicalKey: string) => Promise<MemoryRecord[]>;
7
- }
8
3
  export declare class UserUnderstandingService {
9
- private readonly options;
10
- constructor(options: UserUnderstandingServiceOptions);
11
4
  reviewTurn(params: {
12
- agentId?: string;
13
5
  userContent: string;
14
6
  assistantContent: string;
15
7
  sessionKey?: string;
8
+ turnId?: string;
9
+ workspaceId?: string;
10
+ projectId?: string;
16
11
  correctionTargetRecordIds?: string[];
17
12
  }): Promise<UnderstandingReviewResult>;
18
13
  applyCandidates(candidates: UnderstandingCandidate[], context: {
19
- agentId?: string;
20
14
  sessionKey?: string;
15
+ workspaceId?: string;
16
+ projectId?: string;
21
17
  sourceItemId?: string;
22
18
  sourceItemIds?: string[];
23
19
  sourceText?: string;
24
- source?: MemoryRecord['source'];
20
+ source?: {
21
+ provider?: string;
22
+ sourceInstanceId?: string;
23
+ };
24
+ evidenceIds?: string[];
25
25
  reviewSource?: 'turn' | 'background';
26
26
  supersedesRecordIds?: string[];
27
27
  }): Promise<Omit<UnderstandingReviewResult, 'sourceItemId'>>;