@xopcai/xopc 0.0.145 → 0.0.147

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 (380) hide show
  1. package/README.md +2 -2
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/demo-memory/src/index.js +6 -4
  4. package/dist/extensions/demo-memory/src/index.js.map +1 -1
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/gateway/static/root/assets/Combination-14nmIgxH.js +41 -0
  7. package/dist/gateway/static/root/assets/activity-store-DXeSSlw1.js +1 -0
  8. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BEUxdhZx.js → agent-avatar-dicebear-CFdJKSjY.js} +1 -1
  9. package/dist/gateway/static/root/assets/agents-DKjbRpbA.js +2 -0
  10. package/dist/gateway/static/root/assets/api-Bs69B5zA.js +1 -0
  11. package/dist/gateway/static/root/assets/{app-management-settings-panel-CRHSZJWi.js → app-management-settings-panel-ag1ViXT_.js} +1 -1
  12. package/dist/gateway/static/root/assets/{appearance-settings-BunADYJb.js → appearance-settings-C6iMpwOM.js} +1 -1
  13. package/dist/gateway/static/root/assets/apps-page-CpX3lBFF.js +1 -0
  14. package/dist/gateway/static/root/assets/{archive-plugin-B6vTkH2A.js → archive-plugin-Dwi3mIBy.js} +1 -1
  15. package/dist/gateway/static/root/assets/{attachment-load-BjZXzaNv.js → attachment-load-BaCDoq40.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automation-suggestion-card-ZDA-Stg1.js → automation-suggestion-card-CwqtFgnw.js} +1 -1
  17. package/dist/gateway/static/root/assets/automations-page-DlupOxFQ.js +6 -0
  18. package/dist/gateway/static/root/assets/{binary-plugins-DYZfLvPz.js → binary-plugins-DoAYhsxa.js} +1 -1
  19. package/dist/gateway/static/root/assets/{block-editor-C3MUlYC9.js → block-editor-Bw72pO7S.js} +31 -31
  20. package/dist/gateway/static/root/assets/browser-settings-page-BwLoUBcZ.js +8 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-vdbAR65Q.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-BAsKbJgm.js +2 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-fTlTnWB4.js → channel-recipient-api-rTG26jpV.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-CxFWy0cE.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-OKlqTtKJ.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-logo-BVFNT2zW.js → connector-logo-DIMP4NWY.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-BjQQwX62.js +2 -0
  28. package/dist/gateway/static/root/assets/{desktop-pet-_jUmoXd3.js → desktop-pet-kQq2e0BN.js} +1 -1
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-DwGOy4AQ.js → desktop-pet-settings-B6vtozMY.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-akvF0F-u.js → directory-picker-path-field-Dn5-e3v4.js} +1 -1
  31. package/dist/gateway/static/root/assets/dist-C230izr8.js +1 -0
  32. package/dist/gateway/static/root/assets/dist-CxGUk8J-.js +1 -0
  33. package/dist/gateway/static/root/assets/dreaming-settings-BzwIujPG.js +3 -0
  34. package/dist/gateway/static/root/assets/extension-debug-page-D_e_hsEy.js +1 -0
  35. package/dist/gateway/static/root/assets/{extension-page-CwWktRNz.js → extension-page-D15CWHBd.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-CuggWOIl.js → extension-settings-page-D4P0n1om.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-config-api-B7sxIbza.js → gateway-config-api-B4qZctjG.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-settings-DIv0eKMf.js → gateway-settings-BvndV7TP.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-startup-retry-DtoLihQE.js → gateway-startup-retry-BpgMunEb.js} +1 -1
  40. package/dist/gateway/static/root/assets/{goal-create-dialog-C4Kw0mfS.js → goal-create-dialog-DrVHKXHq.js} +1 -1
  41. package/dist/gateway/static/root/assets/goal-detail-page-PHlCwv68.js +4 -0
  42. package/dist/gateway/static/root/assets/{goals-config-api-B0jm5JaA.js → goals-config-api-B6YJB_ct.js} +1 -1
  43. package/dist/gateway/static/root/assets/goals-page-Hg9uyO6e.js +2 -0
  44. package/dist/gateway/static/root/assets/{goals-settings-N5_iL7es.js → goals-settings-BROWCIcL.js} +1 -1
  45. package/dist/gateway/static/root/assets/{heartbeat-settings-XzH3lbRR.js → heartbeat-settings-CoCwIOIg.js} +1 -1
  46. package/dist/gateway/static/root/assets/index-CxkNzw3e.js +259 -0
  47. package/dist/gateway/static/root/assets/index-DjCSOyaN.css +1 -0
  48. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-Bm_AIYQ7.js +1 -0
  49. package/dist/gateway/static/root/assets/local-app-workbench-page-BJWFcxwG.js +2 -0
  50. package/dist/gateway/static/root/assets/local-apps-page-BsiZMrEf.js +1 -0
  51. package/dist/gateway/static/root/assets/{locale-store-CiM-D9jA.js → locale-store-Bp8joZck.js} +1 -1
  52. package/dist/gateway/static/root/assets/logs-page-DOmK61ey.js +7 -0
  53. package/dist/gateway/static/root/assets/{markdown-split-5rJx5flj.js → markdown-split-Dy7QpaAz.js} +1 -1
  54. package/dist/gateway/static/root/assets/{media-plugins-DYXccwAd.js → media-plugins-3Lxliy9D.js} +1 -1
  55. package/dist/gateway/static/root/assets/messages-CQGpD-dC.js +5 -0
  56. package/dist/gateway/static/root/assets/models-hub-panel-DGCZom4o.js +2 -0
  57. package/dist/gateway/static/root/assets/{notes-page-BgLyndCO.js → notes-page-BJtT4vSf.js} +1 -1
  58. package/dist/gateway/static/root/assets/notes-workbench-B_bN7cOR.js +4 -0
  59. package/dist/gateway/static/root/assets/{page-tabs-6Al9_sGz.js → page-tabs-DKB6RDre.js} +1 -1
  60. package/dist/gateway/static/root/assets/{preview-open-alternatives-Cm3G72Hv.js → preview-open-alternatives-Br_YhYHp.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-Dq8JouJj.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-DvfL7fSe.js +1 -0
  63. package/dist/gateway/static/root/assets/remote-access-hub-DqwMXSXP.js +1 -0
  64. package/dist/gateway/static/root/assets/{save-bar-controls-BYtfzu_F.js → save-bar-controls-BgIE9BBh.js} +1 -1
  65. package/dist/gateway/static/root/assets/{schedule-field-CvIRc6yK.js → schedule-field-BXDP-oMz.js} +1 -1
  66. package/dist/gateway/static/root/assets/{schema-form-CQuKx0n7.js → schema-form-Dhv-SmjG.js} +1 -1
  67. package/dist/gateway/static/root/assets/sessions-page-B_mOZkQk.js +1 -0
  68. package/dist/gateway/static/root/assets/settings-advanced-gate-BHGmH6YS.js +1 -0
  69. package/dist/gateway/static/root/assets/{settings-collapsible-section-CF3HHM-t.js → settings-collapsible-section-CUTExnlK.js} +1 -1
  70. package/dist/gateway/static/root/assets/{settings-form-section-CwWjoRN6.js → settings-form-section-CmnDhsf0.js} +1 -1
  71. package/dist/gateway/static/root/assets/{settings-loading-skeleton-aUFmJa13.js → settings-loading-skeleton-B79dq-XY.js} +1 -1
  72. package/dist/gateway/static/root/assets/{settings-page-B2UUU9TF.js → settings-page-Db8uAv3X.js} +1 -1
  73. package/dist/gateway/static/root/assets/{settings-page-layout-DqpbTWqI.js → settings-page-layout-DaFwstQw.js} +1 -1
  74. package/dist/gateway/static/root/assets/setup-status-panel-BUSEj0KK.js +1 -0
  75. package/dist/gateway/static/root/assets/{share-preview-page-BOhlPsS1.js → share-preview-page-Bi00uXzV.js} +1 -1
  76. package/dist/gateway/static/root/assets/shares-settings-DzsTYfuX.js +1 -0
  77. package/dist/gateway/static/root/assets/skill-reload-api-DSsdU081.js +1 -0
  78. package/dist/gateway/static/root/assets/skills-page-DeB1tQZL.js +2 -0
  79. package/dist/gateway/static/root/assets/{system-settings-panel-CWxSvuwD.js → system-settings-panel-Cxaph7hW.js} +1 -1
  80. package/dist/gateway/static/root/assets/{theme-store-C9Dxcppm.js → theme-store-eCTN1RpG.js} +1 -1
  81. package/dist/gateway/static/root/assets/{typed-models-lib-qROAvqTw.js → typed-models-lib-CcZ_tyFY.js} +1 -1
  82. package/dist/gateway/static/root/assets/{use-channel-catalog-DE9cpn4G.js → use-channel-catalog-C4PWbNoi.js} +1 -1
  83. package/dist/gateway/static/root/assets/user-context-page-QTVMx_hG.js +1 -0
  84. package/dist/gateway/static/root/assets/{user-profile-fields-editor-CWxc0ghP.js → user-profile-fields-editor-CPOO9Jz5.js} +1 -1
  85. package/dist/gateway/static/root/assets/{user-profile-settings-panel-DW-Up6vt.js → user-profile-settings-panel-C8cgtSF7.js} +1 -1
  86. package/dist/gateway/static/root/assets/{utils-D53uRXVr.js → utils-CiZK2KwH.js} +1 -1
  87. package/dist/gateway/static/root/assets/voice-api-key-field-b-YZtvUu.js +1 -0
  88. package/dist/gateway/static/root/assets/work-discovery-page-4zVDOl2G.js +1 -0
  89. package/dist/gateway/static/root/assets/work-item-detail-page-CHe2tfkc.js +1 -0
  90. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-D_x9ELJp.js → workflow-run-setup-panel-8SLCYeXE.js} +2 -2
  91. package/dist/gateway/static/root/assets/workflows-page-DEOFqiWn.js +11 -0
  92. package/dist/gateway/static/root/index.html +10 -9
  93. package/dist/package.js +1 -1
  94. package/dist/src/activity/types.d.ts +1 -1
  95. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  96. package/dist/src/agent/agent-manager.d.ts +1 -1
  97. package/dist/src/agent/agent-manager.js +5 -4
  98. package/dist/src/agent/agent-manager.js.map +1 -1
  99. package/dist/src/agent/background-review/coordinator.js +0 -1
  100. package/dist/src/agent/background-review/coordinator.js.map +1 -1
  101. package/dist/src/agent/background-review/settings.d.ts +1 -1
  102. package/dist/src/agent/background-review/settings.js +10 -17
  103. package/dist/src/agent/background-review/settings.js.map +1 -1
  104. package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +1 -1
  105. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  106. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +1 -1
  107. package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -3
  108. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
  109. package/dist/src/agent/code-intelligence/binary.js +1 -1
  110. package/dist/src/agent/context/project-context.d.ts +14 -0
  111. package/dist/src/agent/context/project-context.js +23 -1
  112. package/dist/src/agent/context/project-context.js.map +1 -1
  113. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  114. package/dist/src/agent/context/workspace.d.ts +1 -2
  115. package/dist/src/agent/context/workspace.js +2 -4
  116. package/dist/src/agent/context/workspace.js.map +1 -1
  117. package/dist/src/agent/embedded/run-for-session.js +1 -2
  118. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  119. package/dist/src/agent/embedded/run-turn.js +6 -1
  120. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  121. package/dist/src/agent/embedded/types.d.ts +17 -0
  122. package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -2
  123. package/dist/src/agent/memory/builtin-memory-store.js +2 -2
  124. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  125. package/dist/src/agent/memory/builtin-provider.d.ts +1 -3
  126. package/dist/src/agent/memory/builtin-provider.js +21 -48
  127. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  128. package/dist/src/agent/memory/context/planner.js +48 -9
  129. package/dist/src/agent/memory/context/planner.js.map +1 -1
  130. package/dist/src/agent/memory/context/types.d.ts +7 -1
  131. package/dist/src/agent/memory/context-fence.js +1 -1
  132. package/dist/src/agent/memory/context-fence.js.map +1 -1
  133. package/dist/src/agent/memory/create-memory-manager.js +2 -9
  134. package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
  135. package/dist/src/agent/memory/dreaming/config.js +5 -10
  136. package/dist/src/agent/memory/dreaming/config.js.map +1 -1
  137. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +2 -2
  138. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +1 -1
  139. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -3
  140. package/dist/src/agent/memory/dreaming/scope.js +8 -8
  141. package/dist/src/agent/memory/dreaming/scope.js.map +1 -1
  142. package/dist/src/agent/memory/manager.d.ts +1 -5
  143. package/dist/src/agent/memory/manager.js +2 -23
  144. package/dist/src/agent/memory/manager.js.map +1 -1
  145. package/dist/src/agent/memory/memory-config.d.ts +3 -3
  146. package/dist/src/agent/memory/memory-config.js +9 -14
  147. package/dist/src/agent/memory/memory-config.js.map +1 -1
  148. package/dist/src/agent/memory/types.d.ts +9 -5
  149. package/dist/src/agent/memory/understanding/service.js +21 -8
  150. package/dist/src/agent/memory/understanding/service.js.map +1 -1
  151. package/dist/src/agent/memory/understanding/types.d.ts +5 -0
  152. package/dist/src/agent/memory/user-context-coordinator.d.ts +1 -1
  153. package/dist/src/agent/memory/user-context-coordinator.js +6 -2
  154. package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
  155. package/dist/src/agent/orchestration/agent-orchestrator.js +2 -2
  156. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  157. package/dist/src/agent/prompt/memory/index.d.ts +1 -2
  158. package/dist/src/agent/prompt/memory/index.js +6 -7
  159. package/dist/src/agent/prompt/memory/index.js.map +1 -1
  160. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  161. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  162. package/dist/src/agent/service/direct-turn-helpers.js +13 -2
  163. package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
  164. package/dist/src/agent/tools/curated-memory-tool.js +4 -4
  165. package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
  166. package/dist/src/agent/tools/factory.d.ts +1 -1
  167. package/dist/src/agent/tools/factory.js +2 -2
  168. package/dist/src/agent/tools/factory.js.map +1 -1
  169. package/dist/src/agent/tools/memory-tool.js +1 -1
  170. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  171. package/dist/src/agent/workflow/workflow-child-tools.js +2 -3
  172. package/dist/src/agent/workflow/workflow-child-tools.js.map +1 -1
  173. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -5
  174. package/dist/src/agent/workspace-runtime/registry.js +6 -11
  175. package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
  176. package/dist/src/agent-manifest/index.js +2 -2
  177. package/dist/src/agent-manifest/prompt.js +1 -7
  178. package/dist/src/agent-manifest/prompt.js.map +1 -1
  179. package/dist/src/agent-manifest/schema.d.ts +0 -598
  180. package/dist/src/agent-manifest/schema.js +2 -143
  181. package/dist/src/agent-manifest/schema.js.map +1 -1
  182. package/dist/src/agent-manifest/validator.js +0 -12
  183. package/dist/src/agent-manifest/validator.js.map +1 -1
  184. package/dist/src/agent-runtime/index.js +1 -1
  185. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  186. package/dist/src/agent-runtime/memory-runtime.js +8 -7
  187. package/dist/src/agent-runtime/memory-runtime.js.map +1 -1
  188. package/dist/src/agent-runtime/runtime-profile.d.ts +2 -0
  189. package/dist/src/agent-runtime/runtime-profile.js +2 -2
  190. package/dist/src/agent-runtime/runtime-profile.js.map +1 -1
  191. package/dist/src/chat-commands/agent-edit.js +1 -2
  192. package/dist/src/chat-commands/agent-edit.js.map +1 -1
  193. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  194. package/dist/src/cli/commands/init.js +0 -22
  195. package/dist/src/cli/commands/init.js.map +1 -1
  196. package/dist/src/cli/templates.d.ts +1 -1
  197. package/dist/src/cli/templates.js +1 -16
  198. package/dist/src/cli/templates.js.map +1 -1
  199. package/dist/src/commands/agents.config.js +0 -10
  200. package/dist/src/commands/agents.config.js.map +1 -1
  201. package/dist/src/config/agent-profile.js +1 -1
  202. package/dist/src/config/index.js +2 -2
  203. package/dist/src/config/paths.d.ts +0 -1
  204. package/dist/src/config/paths.js +1 -2
  205. package/dist/src/config/paths.js.map +1 -1
  206. package/dist/src/config/schema.d.ts +118 -532
  207. package/dist/src/config/schema.js +32 -26
  208. package/dist/src/config/schema.js.map +1 -1
  209. package/dist/src/extensions/loader.js +2 -1
  210. package/dist/src/extensions/loader.js.map +1 -1
  211. package/dist/src/gateway/agents-admin.d.ts +0 -2
  212. package/dist/src/gateway/agents-admin.js +1 -7
  213. package/dist/src/gateway/agents-admin.js.map +1 -1
  214. package/dist/src/gateway/capability-presets-admin.d.ts +0 -2
  215. package/dist/src/gateway/capability-presets-admin.js.map +1 -1
  216. package/dist/src/gateway/chat-stream/mapper.js +26 -0
  217. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  218. package/dist/src/gateway/chat-stream/protocol.d.ts +16 -1
  219. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -1
  220. package/dist/src/gateway/dreaming-automation-reconciler.js +41 -63
  221. package/dist/src/gateway/dreaming-automation-reconciler.js.map +1 -1
  222. package/dist/src/gateway/heartbeat/service.js +1 -1
  223. package/dist/src/gateway/hono/app.js +3 -1
  224. package/dist/src/gateway/hono/app.js.map +1 -1
  225. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -130
  226. package/dist/src/gateway/hono/lib/config-payload.js +0 -1
  227. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  228. package/dist/src/gateway/hono/routes/agents.js +6 -12
  229. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  230. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +6 -0
  231. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +1 -1
  232. package/dist/src/gateway/hono/routes/capability-presets.js +2 -2
  233. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
  234. package/dist/src/gateway/hono/routes/dreaming.js +9 -20
  235. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  236. package/dist/src/gateway/hono/routes/index.js +4 -0
  237. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  238. package/dist/src/gateway/hono/routes/local-apps.d.ts +5 -0
  239. package/dist/src/gateway/hono/routes/local-apps.js +99 -0
  240. package/dist/src/gateway/hono/routes/local-apps.js.map +1 -0
  241. package/dist/src/gateway/hono/routes/memory.js +48 -65
  242. package/dist/src/gateway/hono/routes/memory.js.map +1 -1
  243. package/dist/src/gateway/hono/routes/projects.js +2 -2
  244. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  245. package/dist/src/gateway/hono/routes/work-discovery.d.ts +3 -0
  246. package/dist/src/gateway/hono/routes/work-discovery.js +150 -0
  247. package/dist/src/gateway/hono/routes/work-discovery.js.map +1 -0
  248. package/dist/src/gateway/hono/routes/you.d.ts +3 -0
  249. package/dist/src/gateway/hono/routes/you.js +358 -91
  250. package/dist/src/gateway/hono/routes/you.js.map +1 -1
  251. package/dist/src/gateway/service.d.ts +3 -0
  252. package/dist/src/gateway/service.js +12 -0
  253. package/dist/src/gateway/service.js.map +1 -1
  254. package/dist/src/heartbeat/index.js +1 -1
  255. package/dist/src/knowledge/connected-knowledge-pipeline.js +9 -5
  256. package/dist/src/knowledge/connected-knowledge-pipeline.js.map +1 -1
  257. package/dist/src/local-apps/acceptance.d.ts +30 -0
  258. package/dist/src/local-apps/acceptance.js +93 -0
  259. package/dist/src/local-apps/acceptance.js.map +1 -0
  260. package/dist/src/local-apps/index.d.ts +5 -0
  261. package/dist/src/local-apps/index.js +4 -0
  262. package/dist/src/local-apps/preview-runtime-bridge.d.ts +4 -0
  263. package/dist/src/local-apps/preview-runtime-bridge.js +171 -0
  264. package/dist/src/local-apps/preview-runtime-bridge.js.map +1 -0
  265. package/dist/src/local-apps/runtime-entry.d.ts +8 -0
  266. package/dist/src/local-apps/runtime-entry.js +25 -0
  267. package/dist/src/local-apps/runtime-entry.js.map +1 -0
  268. package/dist/src/local-apps/scaffold.d.ts +8 -0
  269. package/dist/src/local-apps/scaffold.js +122 -0
  270. package/dist/src/local-apps/scaffold.js.map +1 -0
  271. package/dist/src/local-apps/service.d.ts +37 -0
  272. package/dist/src/local-apps/service.js +553 -0
  273. package/dist/src/local-apps/service.js.map +1 -0
  274. package/dist/src/local-apps/store.d.ts +44 -0
  275. package/dist/src/local-apps/store.js +195 -0
  276. package/dist/src/local-apps/store.js.map +1 -0
  277. package/dist/src/local-apps/types.d.ts +105 -0
  278. package/dist/src/local-apps/types.js +1 -0
  279. package/dist/src/storage/sqlite/index.d.ts +3 -2
  280. package/dist/src/storage/sqlite/index.js +4 -3
  281. package/dist/src/storage/sqlite/memory-index-repository.d.ts +2 -3
  282. package/dist/src/storage/sqlite/memory-index-repository.js +16 -20
  283. package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -1
  284. package/dist/src/storage/sqlite/memory-records-repository.d.ts +18 -10
  285. package/dist/src/storage/sqlite/memory-records-repository.js +79 -34
  286. package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -1
  287. package/dist/src/storage/sqlite/memory-reference-consent-repository.d.ts +27 -0
  288. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +109 -0
  289. package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +1 -0
  290. package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +68 -0
  291. package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +19 -0
  292. package/dist/src/storage/sqlite/migrations/040_local_apps.sql +32 -0
  293. package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +17 -0
  294. package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +41 -0
  295. package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +16 -0
  296. package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +75 -0
  297. package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +13 -0
  298. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  299. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  300. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  301. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  302. package/dist/src/storage/sqlite/schema.js +1 -1
  303. package/dist/src/storage/sqlite/schema.sql +20 -0
  304. package/dist/src/user-context/config.d.ts +227 -0
  305. package/dist/src/user-context/config.js +158 -0
  306. package/dist/src/user-context/config.js.map +1 -0
  307. package/dist/src/user-context/import.d.ts +1 -1
  308. package/dist/src/user-context/import.js +6 -1
  309. package/dist/src/user-context/import.js.map +1 -1
  310. package/dist/src/user-context/owner.d.ts +5 -0
  311. package/dist/src/user-context/owner.js +9 -0
  312. package/dist/src/user-context/owner.js.map +1 -0
  313. package/dist/src/user-context/projection.d.ts +11 -9
  314. package/dist/src/user-context/projection.js +74 -47
  315. package/dist/src/user-context/projection.js.map +1 -1
  316. package/dist/src/user-context/runtime.d.ts +13 -0
  317. package/dist/src/user-context/runtime.js +36 -0
  318. package/dist/src/user-context/runtime.js.map +1 -0
  319. package/dist/src/work-discovery/analyzer.d.ts +11 -0
  320. package/dist/src/work-discovery/analyzer.js +171 -0
  321. package/dist/src/work-discovery/analyzer.js.map +1 -0
  322. package/dist/src/work-discovery/index.d.ts +5 -0
  323. package/dist/src/work-discovery/index.js +5 -0
  324. package/dist/src/work-discovery/probe.d.ts +12 -0
  325. package/dist/src/work-discovery/probe.js +335 -0
  326. package/dist/src/work-discovery/probe.js.map +1 -0
  327. package/dist/src/work-discovery/repository.d.ts +11 -0
  328. package/dist/src/work-discovery/repository.js +100 -0
  329. package/dist/src/work-discovery/repository.js.map +1 -0
  330. package/dist/src/work-discovery/service.d.ts +30 -0
  331. package/dist/src/work-discovery/service.js +387 -0
  332. package/dist/src/work-discovery/service.js.map +1 -0
  333. package/dist/src/work-discovery/types.d.ts +114 -0
  334. package/dist/src/work-discovery/types.js +1 -0
  335. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  336. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  337. package/package.json +5 -3
  338. package/skills/engineering/build-xopc-local-app/SKILL.md +45 -0
  339. package/skills/engineering/build-xopc-local-app/references/app-contract.md +33 -0
  340. package/skills/engineering/build-xopc-local-app/scripts/validate-local-app.mjs +72 -0
  341. package/dist/gateway/static/root/assets/Combination-DolwnuKi.js +0 -41
  342. package/dist/gateway/static/root/assets/activity-center-store-3l9ahUqb.js +0 -1
  343. package/dist/gateway/static/root/assets/agents-1bpT0xRO.js +0 -2
  344. package/dist/gateway/static/root/assets/apps-page-Cc4JgVUQ.js +0 -1
  345. package/dist/gateway/static/root/assets/automations-page-mb0fdVpq.js +0 -6
  346. package/dist/gateway/static/root/assets/browser-settings-page-Bb0xhaMN.js +0 -8
  347. package/dist/gateway/static/root/assets/capability-presets-api-BV76yN9a.js +0 -1
  348. package/dist/gateway/static/root/assets/capability-presets-settings-panel-CUcGKZqC.js +0 -2
  349. package/dist/gateway/static/root/assets/channels-settings-BlSDMGdy.js +0 -1
  350. package/dist/gateway/static/root/assets/channels-status-swr-CJauF1CW.js +0 -1
  351. package/dist/gateway/static/root/assets/connectors-page-CMgAFGvb.js +0 -2
  352. package/dist/gateway/static/root/assets/dist-C99RGfAH.js +0 -1
  353. package/dist/gateway/static/root/assets/dreaming-settings-BLetQiYY.js +0 -3
  354. package/dist/gateway/static/root/assets/extension-debug-page-Cof2ncxE.js +0 -1
  355. package/dist/gateway/static/root/assets/goal-detail-page-BMmzYpZL.js +0 -4
  356. package/dist/gateway/static/root/assets/goals-page-CGeT77PC.js +0 -2
  357. package/dist/gateway/static/root/assets/index-CSLF84-Q.css +0 -1
  358. package/dist/gateway/static/root/assets/index-I-ZCenVw.js +0 -259
  359. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-x_v0nrIi.js +0 -1
  360. package/dist/gateway/static/root/assets/logs-page-BSh1t8cD.js +0 -7
  361. package/dist/gateway/static/root/assets/messages-Cb1VMeqP.js +0 -5
  362. package/dist/gateway/static/root/assets/models-hub-panel-BNpTenAI.js +0 -2
  363. package/dist/gateway/static/root/assets/notes-workbench-teklkhcE.js +0 -4
  364. package/dist/gateway/static/root/assets/project-detail-page-CCB_dKoh.js +0 -1
  365. package/dist/gateway/static/root/assets/projects-page-VOAFAHYj.js +0 -1
  366. package/dist/gateway/static/root/assets/remote-access-hub-USYu64Ru.js +0 -1
  367. package/dist/gateway/static/root/assets/sessions-page-oGC8O5h_.js +0 -1
  368. package/dist/gateway/static/root/assets/settings-advanced-gate-D4rP66R1.js +0 -1
  369. package/dist/gateway/static/root/assets/setup-status-panel-Ck9keROI.js +0 -1
  370. package/dist/gateway/static/root/assets/shares-settings-BYLsCuqj.js +0 -1
  371. package/dist/gateway/static/root/assets/skill-reload-api-BNHUyVML.js +0 -1
  372. package/dist/gateway/static/root/assets/skills-page-CpXbQH4n.js +0 -2
  373. package/dist/gateway/static/root/assets/user-context-page-DbNEK4Yp.js +0 -1
  374. package/dist/gateway/static/root/assets/voice-api-key-field-Cs7MOrg0.js +0 -1
  375. package/dist/gateway/static/root/assets/work-item-detail-page-D1ziG1Pp.js +0 -1
  376. package/dist/gateway/static/root/assets/workflows-page-DHGV_n6i.js +0 -11
  377. package/dist/src/agent/context/workspace-templates/MEMORY.md +0 -33
  378. package/dist/src/agent/memory/access-policy.d.ts +0 -12
  379. package/dist/src/agent/memory/access-policy.js +0 -44
  380. package/dist/src/agent/memory/access-policy.js.map +0 -1
@@ -3,7 +3,8 @@ export interface UpsertMemoryRecordInput {
3
3
  id?: string;
4
4
  providerId: string;
5
5
  kind: MemoryKind;
6
- agentId: string;
6
+ userId?: string;
7
+ sourceAgentId: string;
7
8
  workspaceId?: string;
8
9
  sessionKey?: string;
9
10
  projectId?: string;
@@ -29,7 +30,8 @@ export interface UpsertMemoryRecordInput {
29
30
  }
30
31
  export interface ListMemoryRecordsOptions {
31
32
  providerId?: string;
32
- agentId?: string;
33
+ userId?: string;
34
+ sourceAgentId?: string;
33
35
  workspaceId?: string;
34
36
  projectId?: string;
35
37
  /** Include unscoped records plus records visible to this session. */
@@ -48,7 +50,8 @@ export interface ListMemoryRecordsOptions {
48
50
  }
49
51
  export interface SearchMemoryRecordsOptions {
50
52
  query: string;
51
- agentId?: string;
53
+ userId?: string;
54
+ sourceAgentId?: string;
52
55
  workspaceId?: string;
53
56
  projectId?: string;
54
57
  /** Include unscoped records plus records visible to this session. */
@@ -68,7 +71,8 @@ export interface SearchMemoryRecordsOptions {
68
71
  export interface AppendMemorySignalInput {
69
72
  signal: MemorySignal;
70
73
  providerId?: string;
71
- agentId?: string;
74
+ userId?: string;
75
+ sourceAgentId?: string;
72
76
  workspaceId?: string;
73
77
  sessionKey?: string;
74
78
  nowMs?: number;
@@ -78,7 +82,8 @@ export interface MemorySignalRowPayload {
78
82
  source: string;
79
83
  recordId?: string;
80
84
  providerId?: string;
81
- agentId?: string;
85
+ userId?: string;
86
+ sourceAgentId?: string;
82
87
  workspaceId?: string;
83
88
  sessionKey?: string;
84
89
  score?: number;
@@ -101,6 +106,7 @@ export interface AppendMemoryTraceEventInput {
101
106
  turnId?: string;
102
107
  phase: 'search' | 'read' | 'write' | 'update' | 'delete' | 'sync' | 'inject' | 'test' | 'understanding' | 'remediation';
103
108
  providerId: string;
109
+ sourceAgentId?: string;
104
110
  request?: unknown;
105
111
  resultCount?: number;
106
112
  selectedRecordIds?: string[];
@@ -162,7 +168,6 @@ export interface MemoryRecallFeedbackSummary {
162
168
  lastFeedbackAt?: string;
163
169
  }
164
170
  export interface UserUnderstandingQualityMetrics {
165
- agentId?: string;
166
171
  windowDays: number;
167
172
  since: string;
168
173
  attempts: {
@@ -204,14 +209,17 @@ export interface UserUnderstandingQualityMetrics {
204
209
  }
205
210
  export declare function upsertMemoryRecord(input: UpsertMemoryRecordInput): MemoryRecord;
206
211
  export declare function getMemoryRecord(recordId: string): MemoryRecord | null;
212
+ export declare function hasUnresolvedMemoryConflict(conflictGroupId: string): boolean;
207
213
  export declare function listMemoryRecords(options?: ListMemoryRecordsOptions): MemoryRecord[];
208
214
  export declare function searchMemoryRecords(options: SearchMemoryRecordsOptions): MemorySearchResult[];
209
215
  export declare function deleteMemoryRecord(recordId: string): boolean;
216
+ export declare function markMemoryRecordsConflicted(recordIds: string[], conflictGroupId: string): number;
210
217
  export declare function appendMemorySignal(input: AppendMemorySignalInput): string;
211
218
  export declare function listMemorySignals(options?: {
212
219
  recordId?: string;
213
220
  providerId?: string;
214
- agentId?: string;
221
+ userId?: string;
222
+ sourceAgentId?: string;
215
223
  workspaceId?: string;
216
224
  limit?: number;
217
225
  }): MemorySignalRowPayload[];
@@ -220,7 +228,8 @@ export declare function setMemoryProviderState(providerId: string, scopeKey: str
220
228
  export declare function appendMemoryTraceEvent(input: AppendMemoryTraceEventInput): string;
221
229
  export declare function listMemoryTraceEvents(options?: {
222
230
  providerId?: string;
223
- agentId?: string;
231
+ userId?: string;
232
+ sourceAgentId?: string;
224
233
  sessionKey?: string;
225
234
  phase?: string;
226
235
  limit?: number;
@@ -231,12 +240,11 @@ export declare function setLatestMemoryInjectFeedback(input: SetLatestMemoryInje
231
240
  export declare function summarizeMemoryRecallFeedback(options?: {
232
241
  recordId?: string;
233
242
  providerId?: string;
234
- agentId?: string;
243
+ sourceAgentId?: string;
235
244
  sessionKey?: string;
236
245
  limit?: number;
237
246
  }): MemoryRecallFeedbackSummary[];
238
247
  export declare function summarizeUserUnderstandingQuality(options?: {
239
- agentId?: string;
240
248
  windowDays?: number;
241
249
  agingCandidateDays?: number;
242
250
  nowMs?: number;
@@ -1,5 +1,6 @@
1
1
  import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
2
2
  import { buildFts5SearchQuery, fts5RankToScore, memoryLexicalSimilarity } from "./fts.js";
3
+ import { LOCAL_USER_ID } from "../../user-context/owner.js";
3
4
  import { randomUUID } from "node:crypto";
4
5
  //#region src/storage/sqlite/memory-records-repository.ts
5
6
  const USER_UNDERSTANDING_REMEDIATION_POLICY = {
@@ -96,11 +97,12 @@ function rowToRecord(row) {
96
97
  status: row.status,
97
98
  ...row.canonical_key ? { canonicalKey: row.canonical_key } : {},
98
99
  scope: {
99
- agentId: row.agent_id,
100
+ userId: row.user_id,
100
101
  ...row.workspace_id ? { workspaceId: row.workspace_id } : {},
101
102
  ...row.session_key ? { sessionKey: row.session_key } : {},
102
103
  ...row.project_id ? { projectId: row.project_id } : {}
103
104
  },
105
+ provenance: { sourceAgentId: row.source_agent_id },
104
106
  content: row.content,
105
107
  source: parseSource(row.source_json),
106
108
  ...row.confidence != null ? { confidence: row.confidence } : {},
@@ -125,8 +127,8 @@ function upsertMemoryRecordFts(db, row) {
125
127
  db.prepare(`DELETE FROM memory_records_fts WHERE record_id = ?`).run(row.id);
126
128
  if (!row.content.trim()) return;
127
129
  db.prepare(`INSERT INTO memory_records_fts (
128
- content, record_id, provider_id, kind, agent_id, workspace_id
129
- ) VALUES (?, ?, ?, ?, ?, ?)`).run(row.content, row.id, row.providerId, row.kind, row.agentId, row.workspaceId ?? null);
130
+ content, record_id, provider_id, kind, user_id, source_agent_id, workspace_id
131
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)`).run(row.content, row.id, row.providerId, row.kind, row.userId ?? "local-owner", row.sourceAgentId, row.workspaceId ?? null);
130
132
  }
131
133
  function upsertMemoryRecord(input) {
132
134
  const id = input.id ?? randomUUID();
@@ -147,16 +149,17 @@ function upsertMemoryRecord(input) {
147
149
  };
148
150
  runSqliteWriteTransaction((db) => {
149
151
  db.prepare(`INSERT INTO memory_records (
150
- record_id, provider_id, kind, agent_id, workspace_id, session_key, project_id,
152
+ record_id, provider_id, kind, user_id, source_agent_id, workspace_id, session_key, project_id,
151
153
  content, source_json, confidence, tags_json, status, sensitivity,
152
154
  evidence_json, canonical_key, explicitness, durability, importance,
153
155
  disclosure_policy, valid_from, valid_to, review_after, expires_at,
154
156
  supersedes_record_id, conflict_group_id, created_at, updated_at
155
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
157
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
156
158
  ON CONFLICT(record_id) DO UPDATE SET
157
159
  provider_id = excluded.provider_id,
158
160
  kind = excluded.kind,
159
- agent_id = excluded.agent_id,
161
+ user_id = excluded.user_id,
162
+ source_agent_id = excluded.source_agent_id,
160
163
  workspace_id = excluded.workspace_id,
161
164
  session_key = excluded.session_key,
162
165
  project_id = excluded.project_id,
@@ -178,7 +181,7 @@ function upsertMemoryRecord(input) {
178
181
  expires_at = excluded.expires_at,
179
182
  supersedes_record_id = excluded.supersedes_record_id,
180
183
  conflict_group_id = excluded.conflict_group_id,
181
- updated_at = excluded.updated_at`).run(id, input.providerId, input.kind, input.agentId, input.workspaceId ?? null, input.sessionKey ?? null, input.projectId ?? null, input.content, JSON.stringify(source), input.confidence ?? null, JSON.stringify(input.tags ?? []), status, sensitivity, JSON.stringify(input.evidence ?? []), input.canonicalKey ?? null, explicitness, durability, importance, disclosurePolicy, validFrom, validTo, reviewAfter, expiresAt, input.supersedesRecordId ?? null, input.conflictGroupId ?? null, now, now);
184
+ updated_at = excluded.updated_at`).run(id, input.providerId, input.kind, input.userId ?? "local-owner", input.sourceAgentId, input.workspaceId ?? null, input.sessionKey ?? null, input.projectId ?? null, input.content, JSON.stringify(source), input.confidence ?? null, JSON.stringify(input.tags ?? []), status, sensitivity, JSON.stringify(input.evidence ?? []), input.canonicalKey ?? null, explicitness, durability, importance, disclosurePolicy, validFrom, validTo, reviewAfter, expiresAt, input.supersedesRecordId ?? null, input.conflictGroupId ?? null, now, now);
182
185
  upsertMemoryRecordFts(db, {
183
186
  ...input,
184
187
  id
@@ -206,11 +209,12 @@ function upsertMemoryRecord(input) {
206
209
  status,
207
210
  ...input.canonicalKey ? { canonicalKey: input.canonicalKey } : {},
208
211
  scope: {
209
- agentId: input.agentId,
212
+ userId: input.userId ?? "local-owner",
210
213
  ...input.workspaceId ? { workspaceId: input.workspaceId } : {},
211
214
  ...input.sessionKey ? { sessionKey: input.sessionKey } : {},
212
215
  ...input.projectId ? { projectId: input.projectId } : {}
213
216
  },
217
+ provenance: { sourceAgentId: input.sourceAgentId },
214
218
  content: input.content,
215
219
  source,
216
220
  ...input.confidence != null ? { confidence: input.confidence } : {},
@@ -235,6 +239,16 @@ function getMemoryRecord(recordId) {
235
239
  const row = getSqliteDatabase().prepare(`SELECT * FROM memory_records WHERE record_id = ?`).get(recordId);
236
240
  return row ? rowToRecord(row) : null;
237
241
  }
242
+ function hasUnresolvedMemoryConflict(conflictGroupId) {
243
+ if (!conflictGroupId.trim()) return false;
244
+ const row = getSqliteDatabase().prepare(`
245
+ SELECT COUNT(*) AS count
246
+ FROM memory_records
247
+ WHERE conflict_group_id = ?
248
+ AND status IN ('active', 'candidate', 'needs_review', 'stale')
249
+ `).get(conflictGroupId);
250
+ return Number(row.count) > 1;
251
+ }
238
252
  function listMemoryRecords(options = {}) {
239
253
  const where = [];
240
254
  const params = [];
@@ -242,9 +256,13 @@ function listMemoryRecords(options = {}) {
242
256
  where.push("provider_id = ?");
243
257
  params.push(options.providerId);
244
258
  }
245
- if (options.agentId) {
246
- where.push("agent_id = ?");
247
- params.push(options.agentId);
259
+ if (options.userId) {
260
+ where.push("user_id = ?");
261
+ params.push(options.userId);
262
+ }
263
+ if (options.sourceAgentId) {
264
+ where.push("source_agent_id = ?");
265
+ params.push(options.sourceAgentId);
248
266
  }
249
267
  if (options.workspaceId) {
250
268
  where.push("workspace_id = ?");
@@ -286,9 +304,13 @@ function searchMemoryRecords(options) {
286
304
  if (!query) return [];
287
305
  const filters = ["memory_records_fts MATCH ?"];
288
306
  const params = [query];
289
- if (options.agentId) {
290
- filters.push("f.agent_id = ?");
291
- params.push(options.agentId);
307
+ if (options.userId) {
308
+ filters.push("f.user_id = ?");
309
+ params.push(options.userId);
310
+ }
311
+ if (options.sourceAgentId) {
312
+ filters.push("f.source_agent_id = ?");
313
+ params.push(options.sourceAgentId);
292
314
  }
293
315
  if (options.workspaceId) {
294
316
  filters.push("f.workspace_id = ?");
@@ -329,7 +351,8 @@ function searchMemoryRecords(options) {
329
351
  LIMIT ?`).all(...params, maxResults * 3);
330
352
  if (rows.length === 0) return listMemoryRecords({
331
353
  providerId: options.providerId,
332
- agentId: options.agentId,
354
+ userId: options.userId,
355
+ sourceAgentId: options.sourceAgentId,
333
356
  workspaceId: options.workspaceId,
334
357
  projectId: options.projectId,
335
358
  visibleToSessionKey: options.visibleToSessionKey,
@@ -375,14 +398,29 @@ function deleteMemoryRecord(recordId) {
375
398
  return db.prepare(`DELETE FROM memory_records WHERE record_id = ?`).run(recordId).changes > 0;
376
399
  });
377
400
  }
401
+ function markMemoryRecordsConflicted(recordIds, conflictGroupId) {
402
+ const ids = [...new Set(recordIds.filter(Boolean))];
403
+ if (!ids.length || !conflictGroupId.trim()) return 0;
404
+ return runSqliteWriteTransaction((db) => {
405
+ const now = Date.now();
406
+ const update = db.prepare(`
407
+ UPDATE memory_records
408
+ SET conflict_group_id = ?, status = 'needs_review', review_after = ?, updated_at = ?
409
+ WHERE record_id = ? AND status IN ('active', 'candidate', 'needs_review', 'stale')
410
+ `);
411
+ let changed = 0;
412
+ for (const id of ids) changed += Number(update.run(conflictGroupId, now, now, id).changes);
413
+ return changed;
414
+ });
415
+ }
378
416
  function appendMemorySignal(input) {
379
417
  const id = randomUUID();
380
418
  const now = input.nowMs ?? Date.now();
381
419
  runSqliteWriteTransaction((db) => {
382
420
  db.prepare(`INSERT INTO memory_signals (
383
- signal_id, source, record_id, provider_id, agent_id, workspace_id,
421
+ signal_id, source, record_id, provider_id, user_id, source_agent_id, workspace_id,
384
422
  session_key, score, content, metadata_json, created_at
385
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.signal.source, input.signal.recordId ?? null, input.providerId ?? null, input.agentId ?? null, input.workspaceId ?? null, input.sessionKey ?? null, input.signal.score ?? null, input.signal.content ?? null, JSON.stringify(input.signal.metadata ?? {}), now);
423
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.signal.source, input.signal.recordId ?? null, input.providerId ?? null, input.userId ?? "local-owner", input.sourceAgentId ?? null, input.workspaceId ?? null, input.sessionKey ?? null, input.signal.score ?? null, input.signal.content ?? null, JSON.stringify(input.signal.metadata ?? {}), now);
386
424
  if (input.signal.recordId) db.prepare(`UPDATE memory_records
387
425
  SET recall_count = recall_count + 1, last_recalled_at = ?, updated_at = MAX(updated_at, ?)
388
426
  WHERE record_id = ?`).run(now, now, input.signal.recordId);
@@ -400,9 +438,13 @@ function listMemorySignals(options = {}) {
400
438
  where.push("provider_id = ?");
401
439
  params.push(options.providerId);
402
440
  }
403
- if (options.agentId) {
404
- where.push("agent_id = ?");
405
- params.push(options.agentId);
441
+ if (options.userId) {
442
+ where.push("user_id = ?");
443
+ params.push(options.userId);
444
+ }
445
+ if (options.sourceAgentId) {
446
+ where.push("source_agent_id = ?");
447
+ params.push(options.sourceAgentId);
406
448
  }
407
449
  if (options.workspaceId) {
408
450
  where.push("workspace_id = ?");
@@ -425,7 +467,8 @@ function listMemorySignals(options = {}) {
425
467
  source: row.source,
426
468
  ...row.record_id ? { recordId: row.record_id } : {},
427
469
  ...row.provider_id ? { providerId: row.provider_id } : {},
428
- ...row.agent_id ? { agentId: row.agent_id } : {},
470
+ userId: row.user_id,
471
+ ...row.source_agent_id ? { sourceAgentId: row.source_agent_id } : {},
429
472
  ...row.workspace_id ? { workspaceId: row.workspace_id } : {},
430
473
  ...row.session_key ? { sessionKey: row.session_key } : {},
431
474
  ...row.score != null ? { score: row.score } : {},
@@ -461,8 +504,9 @@ function appendMemoryTraceEvent(input) {
461
504
  runSqliteWriteTransaction((db) => {
462
505
  db.prepare(`INSERT INTO memory_trace_events (
463
506
  trace_id, session_key, turn_id, phase, provider_id, request_json,
464
- result_count, selected_record_ids_json, skipped_reason, error, feedback_json, duration_ms, created_at
465
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sessionKey ?? null, input.turnId ?? null, input.phase, input.providerId, JSON.stringify(input.request ?? {}), input.resultCount ?? null, JSON.stringify(input.selectedRecordIds ?? []), input.skippedReason ?? null, input.error ?? null, JSON.stringify(feedback ?? {}), Math.max(0, Math.floor(input.durationMs ?? 0)), now);
507
+ result_count, selected_record_ids_json, skipped_reason, error, feedback_json, duration_ms, created_at,
508
+ user_id, source_agent_id
509
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sessionKey ?? null, input.turnId ?? null, input.phase, input.providerId, JSON.stringify(input.request ?? {}), input.resultCount ?? null, JSON.stringify(input.selectedRecordIds ?? []), input.skippedReason ?? null, input.error ?? null, JSON.stringify(feedback ?? {}), Math.max(0, Math.floor(input.durationMs ?? 0)), now, LOCAL_USER_ID, input.sourceAgentId ?? null);
466
510
  });
467
511
  return id;
468
512
  }
@@ -473,9 +517,11 @@ function listMemoryTraceEvents(options = {}) {
473
517
  where.push("provider_id = ?");
474
518
  params.push(options.providerId);
475
519
  }
476
- if (options.agentId) {
477
- where.push("session_key LIKE ?");
478
- params.push(`agent:${options.agentId}:%`);
520
+ where.push("user_id = ?");
521
+ params.push(options.userId ?? "local-owner");
522
+ if (options.sourceAgentId) {
523
+ where.push("source_agent_id = ?");
524
+ params.push(options.sourceAgentId);
479
525
  }
480
526
  if (options.sessionKey) {
481
527
  where.push("session_key = ?");
@@ -597,9 +643,11 @@ function summarizeMemoryRecallFeedback(options = {}) {
597
643
  where.push("provider_id = ?");
598
644
  params.push(options.providerId);
599
645
  }
600
- if (options.agentId) {
601
- where.push("session_key LIKE ?");
602
- params.push(`agent:${options.agentId}:%`);
646
+ where.push("user_id = ?");
647
+ params.push(LOCAL_USER_ID);
648
+ if (options.sourceAgentId) {
649
+ where.push("source_agent_id = ?");
650
+ params.push(options.sourceAgentId);
603
651
  }
604
652
  if (options.sessionKey) {
605
653
  where.push("session_key = ?");
@@ -656,11 +704,10 @@ function summarizeUserUnderstandingQuality(options = {}) {
656
704
  const sinceMs = nowMs - windowDays * 24 * 60 * 60 * 1e3;
657
705
  const agingCutoffMs = nowMs - Math.max(1, Math.min(windowDays, Math.floor(options.agingCandidateDays ?? 7))) * 24 * 60 * 60 * 1e3;
658
706
  const db = getSqliteDatabase();
659
- const agentWhere = options.agentId ? "AND agent_id = ?" : "";
660
707
  const recordRows = db.prepare(`SELECT record_id, status, explicitness, confidence, created_at, updated_at
661
708
  FROM memory_records
662
709
  WHERE tags_json LIKE '%"user-understanding"%'
663
- ${agentWhere}`).all(...options.agentId ? [options.agentId] : []);
710
+ AND user_id = ?`).all(LOCAL_USER_ID);
664
711
  const records = {
665
712
  total: recordRows.length,
666
713
  candidate: 0,
@@ -711,7 +758,6 @@ function summarizeUserUnderstandingQuality(options = {}) {
711
758
  const parsed = parseJsonValue(row.request_json, {});
712
759
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) continue;
713
760
  const request = parsed;
714
- if (options.agentId && request.agentId !== options.agentId) continue;
715
761
  attempts.total += 1;
716
762
  if (request.source === "turn") attempts.turn += 1;
717
763
  if (request.source === "background") attempts.background += 1;
@@ -747,7 +793,6 @@ function summarizeUserUnderstandingQuality(options = {}) {
747
793
  const acceptedDecisions = recentDecisions.filter((row) => row.status === "active").length;
748
794
  const decisionTotal = recentDecisions.length;
749
795
  return {
750
- ...options.agentId ? { agentId: options.agentId } : {},
751
796
  windowDays,
752
797
  since: new Date(sinceMs).toISOString(),
753
798
  attempts,
@@ -768,6 +813,6 @@ function parseJsonValue(json, fallback) {
768
813
  }
769
814
  }
770
815
  //#endregion
771
- export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLatestMemoryInjectTrace, getMemoryProviderState, getMemoryRecord, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, searchMemoryRecords, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
816
+ export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLatestMemoryInjectTrace, getMemoryProviderState, getMemoryRecord, hasUnresolvedMemoryConflict, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, markMemoryRecordsConflicted, searchMemoryRecords, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
772
817
 
773
818
  //# sourceMappingURL=memory-records-repository.js.map