@xopcai/xopc 0.0.248 → 0.0.249

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 (452) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-etpmyV7S.js → activity-store-B759R_qf.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BmKxSM1k.js → agent-avatar-dicebear-BUu7EnwM.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-C1rXNUAG.js +1 -0
  6. package/dist/gateway/static/root/assets/agents-DK9HjHO0.js +1 -0
  7. package/dist/gateway/static/root/assets/{api-B0-hLuZ1.js → api-Cg0v7Lpn.js} +1 -1
  8. package/dist/gateway/static/root/assets/app-management-settings-panel-C9DkCW_d.js +1 -0
  9. package/dist/gateway/static/root/assets/appearance-settings-CFggS95Y.js +1 -0
  10. package/dist/gateway/static/root/assets/apps-page-jOvT-fzU.js +1 -0
  11. package/dist/gateway/static/root/assets/{archive-plugin-BnMSgZvR.js → archive-plugin-BQrilVVv.js} +1 -1
  12. package/dist/gateway/static/root/assets/{attachment-load-CejsQMev.js → attachment-load-BG0BliqV.js} +1 -1
  13. package/dist/gateway/static/root/assets/{automations-page-RC8EyoAf.js → automations-page-Bo4RiTkh.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-workspace-BKjKTlW8.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-DGjppLSG.js → binary-plugins-BCnyNU0C.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-CWdP4bUc.js → block-editor-Db8DlVvg.js} +50 -50
  17. package/dist/gateway/static/root/assets/browser-settings-page-Dzq18pO1.js +8 -0
  18. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BQ1Ilw_o.js → browser-workflow-inputs-C71vfl0b.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-CJh4NyxT.js → browser-workflows-page-vvmSYKsO.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-DW4SBQf4.js +7 -0
  21. package/dist/gateway/static/root/assets/channels-settings-57OGuewD.js +1 -0
  22. package/dist/gateway/static/root/assets/{channels-status-swr-Ohhee4vm.js → channels-status-swr-CKyV3jY5.js} +1 -1
  23. package/dist/gateway/static/root/assets/{chat-terminal-dock-BOtoKTK3.js → chat-terminal-dock-B1Xd6OFB.js} +2 -2
  24. package/dist/gateway/static/root/assets/connectors-page-CT_I3kbR.js +2 -0
  25. package/dist/gateway/static/root/assets/{cron-expression-DTj1V3Sw.js → cron-expression-D-F9vjtE.js} +1 -1
  26. package/dist/gateway/static/root/assets/{date-picker-Yr6OCvGL.js → date-picker-B2OoYvic.js} +1 -1
  27. package/dist/gateway/static/root/assets/dependency-picker-BiGx9Sbj.js +1 -0
  28. package/dist/gateway/static/root/assets/{desktop-pet-DbGzggPF.js → desktop-pet-BNMRqipe.js} +1 -1
  29. package/dist/gateway/static/root/assets/desktop-pet-settings-DeYbIV7A.js +1 -0
  30. package/dist/gateway/static/root/assets/{extension-debug-page-DgTtk4KC.js → extension-debug-page-COyn05ub.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-page-DtQeiP6f.js → extension-page-oH43chS2.js} +1 -1
  32. package/dist/gateway/static/root/assets/extension-settings-page-BMO59994.js +1 -0
  33. package/dist/gateway/static/root/assets/gateway-config-api-cimpViGk.js +1 -0
  34. package/dist/gateway/static/root/assets/{gateway-config-swr-DXuXtU1w.js → gateway-config-swr-BGdHwT4e.js} +1 -1
  35. package/dist/gateway/static/root/assets/gateway-settings-BHJtnSic.js +1 -0
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CzBzglzQ.js → gateway-startup-retry-CuaM3b4c.js} +1 -1
  37. package/dist/gateway/static/root/assets/heartbeat-settings-DNhrZHqx.js +1 -0
  38. package/dist/gateway/static/root/assets/home-page-BiHwiBnQ.js +1 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-TIgsn04n.js → image-generation-api-D7duj7Uj.js} +1 -1
  40. package/dist/gateway/static/root/assets/index-DGeGmj4k.css +2 -0
  41. package/dist/gateway/static/root/assets/index-aBs0EfQB.js +72 -0
  42. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-wsWuoa8p.js → keyboard-shortcuts-settings-D8Zw_lYd.js} +1 -1
  43. package/dist/gateway/static/root/assets/{local-app-workbench-page-CpyvYyrb.js → local-app-workbench-page-eBFVWmtH.js} +2 -2
  44. package/dist/gateway/static/root/assets/{local-apps-page-CXrbrGo8.js → local-apps-page-CvPDPRwb.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-BJFLQY8O.js → locale-store-zEL8bkwx.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-ClvcWlL6.js +2 -0
  47. package/dist/gateway/static/root/assets/{management-settings-BdJZFR7U.js → management-settings-D8moh99U.js} +1 -1
  48. package/dist/gateway/static/root/assets/{markdown-split-NK3ACVG2.js → markdown-split-D7V3j0vE.js} +1 -1
  49. package/dist/gateway/static/root/assets/{markdown-view-DTF9v1gg.js → markdown-view-DGRN-8wP.js} +1 -1
  50. package/dist/gateway/static/root/assets/{media-plugins-F0jcUxyl.js → media-plugins-BLaE5b1Y.js} +1 -1
  51. package/dist/gateway/static/root/assets/messages-W5P19VTF.js +11 -0
  52. package/dist/gateway/static/root/assets/mobile-pairing-wizard-DiVDuCxl.js +1 -0
  53. package/dist/gateway/static/root/assets/note-detail-panel-CEEvR-fV.js +5 -0
  54. package/dist/gateway/static/root/assets/notes-page-BLqgXNCx.js +8 -0
  55. package/dist/gateway/static/root/assets/page-tabs-BFMGjA60.js +1 -0
  56. package/dist/gateway/static/root/assets/preview-open-alternatives-DNEWZN7H.js +1 -0
  57. package/dist/gateway/static/root/assets/{product-open-page-CxGGlWA8.js → product-open-page-Co5u7asH.js} +1 -1
  58. package/dist/gateway/static/root/assets/project-detail-page-CIiFJ5tk.js +1 -0
  59. package/dist/gateway/static/root/assets/projects-page-B3UF-Pfm.js +1 -0
  60. package/dist/gateway/static/root/assets/{registry-api-CIsNlSBi.js → registry-api-Cg92zSod.js} +1 -1
  61. package/dist/gateway/static/root/assets/remote-access-hub-BUtpkJPG.js +1 -0
  62. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-YkjhiQfA.js → runtime-tools-settings-panel-C0ByNmlV.js} +2 -2
  63. package/dist/gateway/static/root/assets/{schema-form-oFGf3G3s.js → schema-form-Dq_VQpuY.js} +1 -1
  64. package/dist/gateway/static/root/assets/sessions-page-UgJmG-V4.js +1 -0
  65. package/dist/gateway/static/root/assets/settings-advanced-gate-DDCzpdkl.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-form-section-CZu6FX4k.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-page-C7VWs0IT.js → settings-page-S8ekeUZd.js} +1 -1
  68. package/dist/gateway/static/root/assets/setup-status-panel-BdVmwXMv.js +1 -0
  69. package/dist/gateway/static/root/assets/{share-preview-page-t5oz18rh.js → share-preview-page-D2fEidbn.js} +1 -1
  70. package/dist/gateway/static/root/assets/shares-settings-BdsqnCYj.js +1 -0
  71. package/dist/gateway/static/root/assets/skill-reload-api-ghzAQKna.js +1 -0
  72. package/dist/gateway/static/root/assets/skills-page-AYiPlgZE.js +2 -0
  73. package/dist/gateway/static/root/assets/{skills-page.utils-DEDTYs2W.js → skills-page.utils-DGzl-ib-.js} +1 -1
  74. package/dist/gateway/static/root/assets/system-settings-panel-5Xd5mIiR.js +1 -0
  75. package/dist/gateway/static/root/assets/task-detail-page-BQAUaCDD.js +1 -0
  76. package/dist/gateway/static/root/assets/{theme-store-O597U8q_.js → theme-store-ZVClZKQ0.js} +1 -1
  77. package/dist/gateway/static/root/assets/tunnel-api-CdZN1Jin.js +1 -0
  78. package/dist/gateway/static/root/assets/{use-autosave-B5eUJ6Zq.js → use-autosave-czRI0NBc.js} +1 -1
  79. package/dist/gateway/static/root/assets/user-model-page-W3GTm6nA.js +2 -0
  80. package/dist/gateway/static/root/assets/{voice-api-key-field-CMKSwz4C.js → voice-api-key-field-8YEvA3cU.js} +1 -1
  81. package/dist/gateway/static/root/assets/{voice-config-api-q7B6fOFB.js → voice-config-api-CopF64lY.js} +1 -1
  82. package/dist/gateway/static/root/assets/work-discovery-overlay-keLtqYYJ.js +1 -0
  83. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DZmvLZjb.js → workflow-run-setup-panel-Dy5WgYMO.js} +2 -2
  84. package/dist/gateway/static/root/assets/workflows-page-BbAV3h7n.js +5 -0
  85. package/dist/gateway/static/root/index.html +10 -26
  86. package/dist/package.js +1 -1
  87. package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
  88. package/dist/src/agent/agent-manager.d.ts +4 -4
  89. package/dist/src/agent/agent-manager.js +31 -15
  90. package/dist/src/agent/background-review/coordinator.d.ts +2 -4
  91. package/dist/src/agent/background-review/coordinator.js +5 -30
  92. package/dist/src/agent/background-review/prompts.d.ts +4 -2
  93. package/dist/src/agent/background-review/prompts.js +24 -19
  94. package/dist/src/agent/background-review/run-background-review.d.ts +6 -7
  95. package/dist/src/agent/background-review/run-background-review.js +47 -41
  96. package/dist/src/agent/background-review/settings.d.ts +0 -1
  97. package/dist/src/agent/background-review/settings.js +6 -7
  98. package/dist/src/agent/context/audit.d.ts +36 -0
  99. package/dist/src/agent/context/audit.js +97 -0
  100. package/dist/src/agent/context/coordinator.d.ts +26 -0
  101. package/dist/src/agent/context/coordinator.js +72 -0
  102. package/dist/src/agent/context/execution-context.d.ts +54 -0
  103. package/dist/src/agent/context/execution-context.js +147 -0
  104. package/dist/src/agent/context/execution-scope.js +1 -1
  105. package/dist/src/agent/context/prepend.d.ts +2 -0
  106. package/dist/src/agent/context/prepend.js +28 -0
  107. package/dist/src/agent/context/project-context.d.ts +3 -3
  108. package/dist/src/agent/context/project-context.js +26 -23
  109. package/dist/src/agent/embedded/index.js +1 -1
  110. package/dist/src/agent/embedded/run-for-session.js +1 -0
  111. package/dist/src/agent/embedded/run-turn.js +22 -2
  112. package/dist/src/agent/embedded/types.d.ts +1 -25
  113. package/dist/src/agent/external-tools/composio-provider.js +87 -92
  114. package/dist/src/agent/external-tools/gateway-tools.d.ts +4 -1
  115. package/dist/src/agent/external-tools/gateway-tools.js +153 -41
  116. package/dist/src/agent/external-tools/index.js +1 -1
  117. package/dist/src/agent/external-tools/search-error.d.ts +12 -0
  118. package/dist/src/agent/external-tools/search-error.js +29 -0
  119. package/dist/src/agent/external-tools/service.d.ts +4 -0
  120. package/dist/src/agent/external-tools/service.js +22 -2
  121. package/dist/src/agent/memory/compaction-policy.js +1 -1
  122. package/dist/src/agent/memory/compaction-promotion.js +45 -77
  123. package/dist/src/agent/memory/create-memory-manager.js +1 -3
  124. package/dist/src/agent/memory/index.d.ts +0 -5
  125. package/dist/src/agent/memory/index.js +2 -5
  126. package/dist/src/agent/memory/manager.d.ts +0 -16
  127. package/dist/src/agent/memory/manager.js +11 -40
  128. package/dist/src/agent/memory/memory-config.js +1 -1
  129. package/dist/src/agent/memory/runtime.d.ts +2 -2
  130. package/dist/src/agent/memory/runtime.js +9 -19
  131. package/dist/src/agent/memory/types.d.ts +1 -1
  132. package/dist/src/agent/orchestration/agent-orchestrator.js +13 -21
  133. package/dist/src/agent/prompt/sections/memory-skills.js +25 -36
  134. package/dist/src/agent/prompt/sections/tooling.js +10 -4
  135. package/dist/src/agent/prompt/service-prompt-builder.js +4 -3
  136. package/dist/src/agent/service/direct-turn-helpers.js +6 -23
  137. package/dist/src/agent/service/process-direct-streaming.js +5 -3
  138. package/dist/src/agent/service.js +4 -3
  139. package/dist/src/agent/tasks/task-judge-service.js +1 -1
  140. package/dist/src/agent/tools/clarify-tool.d.ts +1 -0
  141. package/dist/src/agent/tools/delegate-tool.js +5 -2
  142. package/dist/src/agent/tools/factory.js +36 -19
  143. package/dist/src/agent/tools/index.d.ts +3 -2
  144. package/dist/src/agent/tools/index.js +4 -3
  145. package/dist/src/agent/tools/knowledge-memory-tool.d.ts +9 -0
  146. package/dist/src/agent/tools/knowledge-memory-tool.js +129 -0
  147. package/dist/src/agent/tools/{dreaming-tool.d.ts → memory-maintenance-tool.d.ts} +2 -2
  148. package/dist/src/agent/tools/memory-maintenance-tool.js +31 -0
  149. package/dist/src/agent/tools/user-context-tool.d.ts +8 -0
  150. package/dist/src/agent/tools/user-context-tool.js +81 -0
  151. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  152. package/dist/src/chat-commands/builtins/understanding.js +24 -6
  153. package/dist/src/cli/commands/connectors.js +1 -1
  154. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  155. package/dist/src/config/schema.d.ts +68 -75
  156. package/dist/src/config/schema.js +29 -18
  157. package/dist/src/config/web-patch.d.ts +1 -1
  158. package/dist/src/connectors/auth-provider-registry.js +1 -1
  159. package/dist/src/connectors/composio-managed-client.js +6 -2
  160. package/dist/src/connectors/connected-source-ingestion.js +1 -1
  161. package/dist/src/connectors/connected-source-understanding.d.ts +1 -3
  162. package/dist/src/connectors/connected-source-understanding.js +86 -99
  163. package/dist/src/connectors/connection-candidates.d.ts +11 -0
  164. package/dist/src/connectors/connection-candidates.js +58 -0
  165. package/dist/src/connectors/connection-capabilities.d.ts +4 -0
  166. package/dist/src/connectors/connection-capabilities.js +37 -0
  167. package/dist/src/connectors/connection-recovery-service.d.ts +42 -0
  168. package/dist/src/connectors/connection-recovery-service.js +396 -0
  169. package/dist/src/connectors/health.js +1 -1
  170. package/dist/src/connectors/learning-coordinator.d.ts +0 -2
  171. package/dist/src/connectors/learning-coordinator.js +6 -7
  172. package/dist/src/connectors/principal.d.ts +5 -0
  173. package/dist/src/connectors/principal.js +18 -0
  174. package/dist/src/gateway/agent-builtin-tools.d.ts +28 -10
  175. package/dist/src/gateway/agent-builtin-tools.js +30 -9
  176. package/dist/src/gateway/chat-stream/mapper.js +1 -28
  177. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -24
  178. package/dist/src/gateway/clarify-bridge.d.ts +4 -0
  179. package/dist/src/gateway/clarify-bridge.js +9 -4
  180. package/dist/src/gateway/heartbeat/service.js +1 -1
  181. package/dist/src/gateway/hono/lib/config-payload.d.ts +52 -30
  182. package/dist/src/gateway/hono/lib/config-payload.js +4 -4
  183. package/dist/src/gateway/hono/middleware/auth.js +1 -2
  184. package/dist/src/gateway/hono/routes/capabilities.js +1 -1
  185. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  186. package/dist/src/gateway/hono/routes/config-patch/misc.js +72 -28
  187. package/dist/src/gateway/hono/routes/connection-waits.d.ts +3 -0
  188. package/dist/src/gateway/hono/routes/connection-waits.js +58 -0
  189. package/dist/src/gateway/hono/routes/connectors.js +7 -15
  190. package/dist/src/gateway/hono/routes/context-sources.d.ts +4 -0
  191. package/dist/src/gateway/hono/routes/context-sources.js +159 -0
  192. package/dist/src/gateway/hono/routes/index.js +4 -2
  193. package/dist/src/gateway/hono/routes/lazy-bundles.js +9 -4
  194. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  195. package/dist/src/gateway/hono/routes/notes.js +22 -7
  196. package/dist/src/gateway/hono/routes/projects.js +36 -44
  197. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +15 -1
  198. package/dist/src/gateway/hono/routes/side-chats.js +13 -2
  199. package/dist/src/gateway/hono/routes/tasks.js +2 -2
  200. package/dist/src/gateway/hono/routes/user-model.d.ts +3 -0
  201. package/dist/src/gateway/hono/routes/user-model.js +480 -0
  202. package/dist/src/gateway/memory-maintenance-automation-reconciler.d.ts +11 -0
  203. package/dist/src/gateway/memory-maintenance-automation-reconciler.js +72 -0
  204. package/dist/src/gateway/service/agent-runner.d.ts +9 -1
  205. package/dist/src/gateway/service/agent-runner.js +25 -1
  206. package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
  207. package/dist/src/gateway/service/config-coordinator.js +4 -4
  208. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
  209. package/dist/src/gateway/service/run-gateway-agent.js +18 -14
  210. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  211. package/dist/src/gateway/service/session-input-coordinator.js +12 -2
  212. package/dist/src/gateway/service.d.ts +3 -1
  213. package/dist/src/gateway/service.js +45 -14
  214. package/dist/src/gateway/side-chat/manager.d.ts +16 -3
  215. package/dist/src/gateway/side-chat/manager.js +117 -28
  216. package/dist/src/gateway/side-chat/run-service.d.ts +2 -0
  217. package/dist/src/gateway/side-chat/run-service.js +28 -5
  218. package/dist/src/gateway/side-chat/types.d.ts +9 -1
  219. package/dist/src/heartbeat/index.js +1 -1
  220. package/dist/src/knowledge/connected-knowledge-pipeline.d.ts +0 -2
  221. package/dist/src/knowledge/connected-knowledge-pipeline.js +46 -217
  222. package/dist/src/knowledge-memory/domain.d.ts +35 -0
  223. package/dist/src/knowledge-memory/index.d.ts +2 -0
  224. package/dist/src/knowledge-memory/index.js +2 -0
  225. package/dist/src/knowledge-memory/repository.d.ts +45 -0
  226. package/dist/src/knowledge-memory/repository.js +154 -0
  227. package/dist/src/memory-maintenance/index.d.ts +2 -0
  228. package/dist/src/memory-maintenance/index.js +3 -0
  229. package/dist/src/memory-maintenance/schedule.d.ts +13 -0
  230. package/dist/src/memory-maintenance/schedule.js +51 -0
  231. package/dist/src/memory-maintenance/service.d.ts +28 -0
  232. package/dist/src/memory-maintenance/service.js +216 -0
  233. package/dist/src/notes/service.d.ts +1 -0
  234. package/dist/src/notes/service.js +7 -1
  235. package/dist/src/notes/types.d.ts +16 -0
  236. package/dist/src/proactive/execution/context.d.ts +2 -2
  237. package/dist/src/proactive/execution/context.js +16 -11
  238. package/dist/src/proactive/index.d.ts +1 -1
  239. package/dist/src/proactive/index.js +2 -2
  240. package/dist/src/projects/index.d.ts +1 -1
  241. package/dist/src/projects/index.js +2 -2
  242. package/dist/src/projects/knowledge-bind.d.ts +1 -0
  243. package/dist/src/projects/knowledge-bind.js +15 -0
  244. package/dist/src/projects/project-loop.d.ts +3 -3
  245. package/dist/src/projects/project-loop.js +4 -4
  246. package/dist/src/projects/project-store.js +2 -1
  247. package/dist/src/realtime/runtime.js +1 -0
  248. package/dist/src/runtime-tools/manager.js +1 -1
  249. package/dist/src/storage/sqlite/collaboration-rule-repository.d.ts +17 -0
  250. package/dist/src/storage/sqlite/collaboration-rule-repository.js +54 -0
  251. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +30 -0
  252. package/dist/src/storage/sqlite/connection-wait-repository.js +338 -0
  253. package/dist/src/storage/sqlite/connector-account-repository.js +1 -1
  254. package/dist/src/storage/sqlite/context-evidence-repository.d.ts +24 -0
  255. package/dist/src/storage/sqlite/context-evidence-repository.js +52 -0
  256. package/dist/src/storage/sqlite/index.d.ts +3 -5
  257. package/dist/src/storage/sqlite/index.js +4 -6
  258. package/dist/src/storage/sqlite/knowledge-repository.d.ts +0 -19
  259. package/dist/src/storage/sqlite/knowledge-repository.js +1 -90
  260. package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +554 -0
  261. package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +18 -0
  262. package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +47 -0
  263. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  264. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  265. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  266. package/dist/src/storage/sqlite/notes-repository.d.ts +2 -1
  267. package/dist/src/storage/sqlite/notes-repository.js +37 -3
  268. package/dist/src/storage/sqlite/schema.js +1 -1
  269. package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -2
  270. package/dist/src/storage/sqlite/session-input-repository.js +16 -13
  271. package/dist/src/storage/sqlite/session-repository.js +4 -1
  272. package/dist/src/storage/sqlite/transcript-repository.js +1 -1
  273. package/dist/src/tasks/index.js +2 -2
  274. package/dist/src/tasks/project-operating-view-service.js +1 -1
  275. package/dist/src/tasks/task-application-service.js +6 -1
  276. package/dist/src/tasks/task-context-assembler.js +1 -1
  277. package/dist/src/tasks/task-context-repository.d.ts +0 -1
  278. package/dist/src/tasks/task-context-repository.js +1 -1
  279. package/dist/src/tasks/task-deletion-service.js +1 -1
  280. package/dist/src/tasks/task-handoff-service.js +1 -1
  281. package/dist/src/tasks/task-read-model-projector.js +1 -1
  282. package/dist/src/tasks/task-run-coordinator.js +1 -1
  283. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  284. package/dist/src/tasks/task-run-repository.js +1 -0
  285. package/dist/src/tasks/task-signal-service.js +1 -1
  286. package/dist/src/tui/tool-summary.js +2 -1
  287. package/dist/src/tui/tui-startup-resources.js +1 -1
  288. package/dist/src/user-context/changes.d.ts +1 -1
  289. package/dist/src/user-context/config.d.ts +135 -153
  290. package/dist/src/user-context/config.js +94 -99
  291. package/dist/src/user-context/relationship-continuity.d.ts +2 -2
  292. package/dist/src/user-context/relationship-continuity.js +34 -24
  293. package/dist/src/user-context/sources/activity-clustering.d.ts +9 -3
  294. package/dist/src/user-context/sources/index.js +2 -2
  295. package/dist/src/user-context/sources/repository.d.ts +1 -21
  296. package/dist/src/user-context/sources/repository.js +1 -183
  297. package/dist/src/user-context/sources/types.d.ts +0 -23
  298. package/dist/src/user-model/capture/executor.d.ts +40 -0
  299. package/dist/src/user-model/capture/executor.js +134 -0
  300. package/dist/src/user-model/capture/index.d.ts +2 -0
  301. package/dist/src/user-model/capture/index.js +3 -0
  302. package/dist/src/user-model/capture/semantic.d.ts +21 -0
  303. package/dist/src/user-model/capture/semantic.js +197 -0
  304. package/dist/src/user-model/domain.d.ts +93 -0
  305. package/dist/src/user-model/domain.js +33 -0
  306. package/dist/src/user-model/goals.d.ts +58 -0
  307. package/dist/src/user-model/goals.js +89 -0
  308. package/dist/src/user-model/importance.d.ts +11 -0
  309. package/dist/src/user-model/importance.js +17 -0
  310. package/dist/src/user-model/index.d.ts +5 -0
  311. package/dist/src/user-model/index.js +6 -0
  312. package/dist/src/user-model/repository.d.ts +23 -0
  313. package/dist/src/user-model/repository.js +268 -0
  314. package/dist/src/user-model/temporal.d.ts +10 -0
  315. package/dist/src/user-model/temporal.js +44 -0
  316. package/dist/src/voice/realtime/memory-context.d.ts +7 -2
  317. package/dist/src/voice/realtime/memory-context.js +39 -51
  318. package/dist/src/work-discovery/service.d.ts +3 -14
  319. package/dist/src/work-discovery/service.js +138 -99
  320. package/dist/src/work-discovery/types.d.ts +3 -3
  321. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  322. package/dist/src/workflows/service/workflow-session-bridge.js +12 -20
  323. package/package.json +1 -1
  324. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CUXApfcE.js +0 -1
  325. package/dist/gateway/static/root/assets/agents-DNq_GKuc.js +0 -1
  326. package/dist/gateway/static/root/assets/app-management-settings-panel-qfwAgyhQ.js +0 -1
  327. package/dist/gateway/static/root/assets/appearance-settings-DqQVUpCC.js +0 -1
  328. package/dist/gateway/static/root/assets/apps-page-dwIqYmXk.js +0 -1
  329. package/dist/gateway/static/root/assets/automations-workspace-SkdcSZ0i.js +0 -6
  330. package/dist/gateway/static/root/assets/browser-settings-page-CKCa6TvG.js +0 -8
  331. package/dist/gateway/static/root/assets/capabilities-settings-panel-DSp--zIZ.js +0 -7
  332. package/dist/gateway/static/root/assets/channels-settings-CMd2dDrI.js +0 -1
  333. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
  334. package/dist/gateway/static/root/assets/connectors-page-udWs5Kdm.js +0 -2
  335. package/dist/gateway/static/root/assets/dependency-picker-DpN3XZg9.js +0 -1
  336. package/dist/gateway/static/root/assets/desktop-pet-settings-DinCToZh.js +0 -1
  337. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +0 -1
  338. package/dist/gateway/static/root/assets/extension-settings-page-DcguCgsH.js +0 -1
  339. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +0 -1
  340. package/dist/gateway/static/root/assets/eye-off-DEAzt3g1.js +0 -1
  341. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +0 -1
  342. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
  343. package/dist/gateway/static/root/assets/gateway-config-api-Br7lSf6H.js +0 -1
  344. package/dist/gateway/static/root/assets/gateway-settings-CdPoDMuj.js +0 -1
  345. package/dist/gateway/static/root/assets/heartbeat-settings-DHk1hawP.js +0 -1
  346. package/dist/gateway/static/root/assets/home-page-YGipe_W6.js +0 -1
  347. package/dist/gateway/static/root/assets/index-D5TQQpeb.js +0 -71
  348. package/dist/gateway/static/root/assets/index-DReBaaTX.css +0 -2
  349. package/dist/gateway/static/root/assets/interaction-BmQogeqz.js +0 -1
  350. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
  351. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +0 -1
  352. package/dist/gateway/static/root/assets/local-context-graph-BjUf7fQ9.js +0 -1
  353. package/dist/gateway/static/root/assets/logs-page-CXKy6E_l.js +0 -2
  354. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
  355. package/dist/gateway/static/root/assets/messages-CHNYp8EQ.js +0 -3
  356. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
  357. package/dist/gateway/static/root/assets/mobile-pairing-wizard-3NKCniSp.js +0 -1
  358. package/dist/gateway/static/root/assets/models-hub-cache-nCfkBN8M.js +0 -1
  359. package/dist/gateway/static/root/assets/notes-page-DuqLahi6.js +0 -1
  360. package/dist/gateway/static/root/assets/notes-workbench-C7j9EdQk.js +0 -5
  361. package/dist/gateway/static/root/assets/oauth-api-8lP_qJpq.js +0 -1
  362. package/dist/gateway/static/root/assets/oauth-authorization-window-Cdolr2wE.js +0 -1
  363. package/dist/gateway/static/root/assets/page-tabs-BaEQMYm_.js +0 -1
  364. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
  365. package/dist/gateway/static/root/assets/preview-open-alternatives-CsNVTKC0.js +0 -1
  366. package/dist/gateway/static/root/assets/project-detail-page-CfebYVX0.js +0 -1
  367. package/dist/gateway/static/root/assets/projects-page-48GvzSVa.js +0 -1
  368. package/dist/gateway/static/root/assets/remote-access-hub-64xj_s2m.js +0 -1
  369. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
  370. package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
  371. package/dist/gateway/static/root/assets/sessions-page-CcwcdRN8.js +0 -1
  372. package/dist/gateway/static/root/assets/settings-advanced-gate-BaN84CyW.js +0 -1
  373. package/dist/gateway/static/root/assets/settings-form-section-DjWzRk4z.js +0 -1
  374. package/dist/gateway/static/root/assets/setup-status-panel-DVVOCNbr.js +0 -1
  375. package/dist/gateway/static/root/assets/shares-settings-DUYbYLi7.js +0 -1
  376. package/dist/gateway/static/root/assets/skill-reload-api-BGyD0gB9.js +0 -1
  377. package/dist/gateway/static/root/assets/skills-page-CjF8DTsN.js +0 -2
  378. package/dist/gateway/static/root/assets/system-settings-panel-BSYuRgFI.js +0 -1
  379. package/dist/gateway/static/root/assets/task-detail-page-YZYSTJH7.js +0 -1
  380. package/dist/gateway/static/root/assets/tunnel-api-FKUi9wDL.js +0 -1
  381. package/dist/gateway/static/root/assets/user-context-page-BCyiduKd.js +0 -2
  382. package/dist/gateway/static/root/assets/work-discovery-overlay-jhT2EzeH.js +0 -1
  383. package/dist/gateway/static/root/assets/workflows-page-DQC0TpMa.js +0 -5
  384. package/dist/src/agent/memory/builtin-provider.d.ts +0 -37
  385. package/dist/src/agent/memory/builtin-provider.js +0 -225
  386. package/dist/src/agent/memory/context/types.d.ts +0 -40
  387. package/dist/src/agent/memory/understanding/quality.d.ts +0 -8
  388. package/dist/src/agent/memory/understanding/quality.js +0 -18
  389. package/dist/src/agent/memory/understanding/service.d.ts +0 -19
  390. package/dist/src/agent/memory/understanding/service.js +0 -209
  391. package/dist/src/agent/memory/understanding/types.d.ts +0 -34
  392. package/dist/src/agent/memory/understanding/types.js +0 -1
  393. package/dist/src/agent/memory/user-context-coordinator.d.ts +0 -23
  394. package/dist/src/agent/memory/user-context-coordinator.js +0 -113
  395. package/dist/src/agent/tools/dreaming-tool.js +0 -37
  396. package/dist/src/agent/tools/memory-tool.d.ts +0 -9
  397. package/dist/src/agent/tools/memory-tool.js +0 -119
  398. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -11
  399. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -63
  400. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +0 -21
  401. package/dist/src/gateway/hono/routes/understanding-sources.js +0 -387
  402. package/dist/src/gateway/hono/routes/you.d.ts +0 -3
  403. package/dist/src/gateway/hono/routes/you.js +0 -457
  404. package/dist/src/projects/memory-bind.d.ts +0 -1
  405. package/dist/src/projects/memory-bind.js +0 -14
  406. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +0 -37
  407. package/dist/src/storage/sqlite/context-consolidation-repository.js +0 -64
  408. package/dist/src/storage/sqlite/memory-records-repository.d.ts +0 -217
  409. package/dist/src/storage/sqlite/memory-records-repository.js +0 -715
  410. package/dist/src/storage/sqlite/remote-context-repository.d.ts +0 -3
  411. package/dist/src/storage/sqlite/remote-context-repository.js +0 -40
  412. package/dist/src/storage/sqlite/understanding-focus-exclusions.d.ts +0 -2
  413. package/dist/src/storage/sqlite/understanding-focus-exclusions.js +0 -24
  414. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +0 -49
  415. package/dist/src/storage/sqlite/user-context-quality-repository.js +0 -118
  416. package/dist/src/storage/sqlite/user-context-repository.d.ts +0 -85
  417. package/dist/src/storage/sqlite/user-context-repository.js +0 -535
  418. package/dist/src/user-context/automatic-context.d.ts +0 -17
  419. package/dist/src/user-context/automatic-context.js +0 -85
  420. package/dist/src/user-context/consolidation.d.ts +0 -27
  421. package/dist/src/user-context/consolidation.js +0 -187
  422. package/dist/src/user-context/context-objects.d.ts +0 -17
  423. package/dist/src/user-context/context-objects.js +0 -99
  424. package/dist/src/user-context/evaluation/harness.d.ts +0 -13
  425. package/dist/src/user-context/evaluation/harness.js +0 -31
  426. package/dist/src/user-context/extraction/executor.d.ts +0 -22
  427. package/dist/src/user-context/extraction/executor.js +0 -142
  428. package/dist/src/user-context/extraction/repair.d.ts +0 -19
  429. package/dist/src/user-context/extraction/repair.js +0 -71
  430. package/dist/src/user-context/extraction/semantic.d.ts +0 -18
  431. package/dist/src/user-context/extraction/semantic.js +0 -148
  432. package/dist/src/user-context/focus-lifecycle.d.ts +0 -2
  433. package/dist/src/user-context/focus-lifecycle.js +0 -26
  434. package/dist/src/user-context/manual-understanding.d.ts +0 -12
  435. package/dist/src/user-context/manual-understanding.js +0 -37
  436. package/dist/src/user-context/planner.d.ts +0 -17
  437. package/dist/src/user-context/planner.js +0 -465
  438. package/dist/src/user-context/relationships/indexer.d.ts +0 -13
  439. package/dist/src/user-context/relationships/indexer.js +0 -185
  440. package/dist/src/user-context/relationships/service.d.ts +0 -22
  441. package/dist/src/user-context/relationships/service.js +0 -50
  442. package/dist/src/user-context/retriever.d.ts +0 -15
  443. package/dist/src/user-context/retriever.js +0 -124
  444. package/dist/src/user-context/scope.d.ts +0 -7
  445. package/dist/src/user-context/scope.js +0 -9
  446. package/dist/src/user-context/selection-policy.d.ts +0 -20
  447. package/dist/src/user-context/selection-policy.js +0 -33
  448. package/dist/src/user-context/understanding.d.ts +0 -15
  449. package/dist/src/user-context/understanding.js +0 -24
  450. package/dist/src/user-context/understandingQuality.d.ts +0 -5
  451. package/dist/src/user-context/understandingQuality.js +0 -48
  452. /package/dist/src/{agent/memory/context/types.js → knowledge-memory/domain.js} +0 -0
@@ -1,187 +0,0 @@
1
- import { finishContextConsolidationRun, recordContextConsolidationDecision, startContextConsolidationRun } from "../storage/sqlite/context-consolidation-repository.js";
2
- import { createUnderstanding, linkUnderstandingEvidence, listUnderstandingEvidence, listUnderstandings, setUnderstandingStatus } from "../storage/sqlite/user-context-repository.js";
3
- import "../storage/sqlite/index.js";
4
- //#region src/user-context/consolidation.ts
5
- const USER_CONTEXT_CONSOLIDATION_TOKEN = "__xopc_user_context_consolidation__";
6
- const USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID = "system-user-context-consolidation";
7
- const GLOBAL_CANDIDATE_KINDS = new Set(["preference", "routine"]);
8
- function stricterSensitivity(items) {
9
- const order = [
10
- "normal",
11
- "personal",
12
- "secret",
13
- "regulated"
14
- ];
15
- return order[Math.max(...items.map((item) => order.indexOf(item.sensitivity)))] ?? "personal";
16
- }
17
- function stricterDisclosurePolicy(items) {
18
- if (items.some((item) => item.disclosurePolicy === "silent")) return "silent";
19
- if (items.some((item) => item.disclosurePolicy === "ask_before_reference")) return "ask_before_reference";
20
- return "referenceable";
21
- }
22
- function createCrossProjectGlobalCandidates(minProjects) {
23
- const all = listUnderstandings();
24
- const existingGlobalKeys = new Set(all.filter((item) => item.scope.type === "global" && item.status !== "archived" && item.status !== "rejected").map((item) => item.canonicalKey));
25
- const groups = /* @__PURE__ */ new Map();
26
- for (const item of all) {
27
- if (item.status !== "active" || item.scope.type !== "project" || !item.scope.id || !GLOBAL_CANDIDATE_KINDS.has(item.kind)) continue;
28
- const normalizedStatement = item.statement.normalize("NFKC").toLocaleLowerCase().replace(/\s+/g, " ").trim();
29
- const groupKey = `${item.canonicalKey}\u0000${normalizedStatement}`;
30
- const group = groups.get(groupKey) ?? [];
31
- group.push(item);
32
- groups.set(groupKey, group);
33
- }
34
- let created = 0;
35
- for (const items of groups.values()) {
36
- const canonicalKey = items[0].canonicalKey;
37
- const projectCount = new Set(items.map((item) => item.scope.id)).size;
38
- if (projectCount < Math.max(2, minProjects) || existingGlobalKeys.has(canonicalKey)) continue;
39
- const exemplar = [...items].sort((left, right) => right.confidence - left.confidence)[0];
40
- const global = createUnderstanding({
41
- kind: exemplar.kind,
42
- canonicalKey,
43
- status: "candidate",
44
- scope: { type: "global" },
45
- explicitness: "inferred",
46
- durability: exemplar.durability,
47
- sensitivity: stricterSensitivity(items),
48
- disclosurePolicy: stricterDisclosurePolicy(items),
49
- confidence: items.reduce((sum, item) => sum + item.confidence, 0) / items.length,
50
- statement: exemplar.statement,
51
- createdBy: "consolidation",
52
- changeReason: `Repeated across ${projectCount} projects`
53
- });
54
- const linked = /* @__PURE__ */ new Set();
55
- for (const item of items) for (const evidence of listUnderstandingEvidence(item.id, "supports")) {
56
- if (linked.has(evidence.id)) continue;
57
- linkUnderstandingEvidence(global.versionId, evidence.id, "supports", item.confidence);
58
- linked.add(evidence.id);
59
- }
60
- existingGlobalKeys.add(canonicalKey);
61
- created += 1;
62
- }
63
- return created;
64
- }
65
- function distinctEvidenceCount(understandingId, relation) {
66
- return new Set(listUnderstandingEvidence(understandingId, relation).map((evidence) => `${evidence.sourceType}:${evidence.sourceInstanceId ?? ""}:${evidence.sourceRef}`)).size;
67
- }
68
- function resolveContextConsolidationConfig(config) {
69
- const dreaming = config.userContext.dreaming;
70
- return {
71
- enabled: config.userContext.enabled && dreaming.mode === "review",
72
- timezone: dreaming.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone ?? "UTC",
73
- time: dreaming.schedule.time,
74
- minEvidenceSources: dreaming.minEvidenceSources,
75
- limit: dreaming.limit
76
- };
77
- }
78
- function compileContextConsolidationCron(time) {
79
- const [hour, minute] = time.split(":").map(Number);
80
- return `${minute} ${hour} * * *`;
81
- }
82
- async function runContextConsolidation(input) {
83
- const resolved = resolveContextConsolidationConfig(input.config);
84
- if (input.triggerKind === "schedule" && !resolved.enabled) throw new Error("User context consolidation is off");
85
- const now = input.now ?? Date.now();
86
- const run = startContextConsolidationRun(input.triggerKind, now);
87
- const metrics = {
88
- scanned: 0,
89
- needsReview: 0,
90
- stale: 0,
91
- globalCandidates: 0
92
- };
93
- try {
94
- const understandings = listUnderstandings(["candidate", "active"]).slice(0, resolved.limit);
95
- for (const understanding of understandings) {
96
- metrics.scanned += 1;
97
- const evidenceCount = distinctEvidenceCount(understanding.id, "supports");
98
- const contradictionCount = distinctEvidenceCount(understanding.id, "contradicts");
99
- if (understanding.validTo != null && understanding.validTo <= now || understanding.expiresAt != null && understanding.expiresAt <= now) {
100
- setUnderstandingStatus(understanding.id, "stale", {
101
- actorType: "runtime",
102
- source: "consolidation-expired"
103
- });
104
- recordContextConsolidationDecision({
105
- runId: run.runId,
106
- understandingId: understanding.id,
107
- action: "stale",
108
- reasonCode: "validity_expired",
109
- evidenceCount,
110
- now
111
- });
112
- metrics.stale += 1;
113
- continue;
114
- }
115
- if (contradictionCount > 0) {
116
- setUnderstandingStatus(understanding.id, "needs_review", {
117
- actorType: "runtime",
118
- source: "consolidation-contradiction"
119
- });
120
- recordContextConsolidationDecision({
121
- runId: run.runId,
122
- understandingId: understanding.id,
123
- action: "needs_review",
124
- reasonCode: "contradictory_evidence",
125
- evidenceCount: contradictionCount,
126
- now
127
- });
128
- metrics.needsReview += 1;
129
- continue;
130
- }
131
- if (understanding.status === "active" && understanding.reviewAt != null && understanding.reviewAt <= now) {
132
- setUnderstandingStatus(understanding.id, "needs_review", {
133
- actorType: "runtime",
134
- source: "consolidation-review-due"
135
- });
136
- recordContextConsolidationDecision({
137
- runId: run.runId,
138
- understandingId: understanding.id,
139
- action: "needs_review",
140
- reasonCode: "review_due",
141
- evidenceCount,
142
- now
143
- });
144
- metrics.needsReview += 1;
145
- continue;
146
- }
147
- if (understanding.status === "candidate" && evidenceCount >= resolved.minEvidenceSources) {
148
- setUnderstandingStatus(understanding.id, "needs_review", {
149
- actorType: "runtime",
150
- source: "consolidation-evidence-threshold"
151
- });
152
- recordContextConsolidationDecision({
153
- runId: run.runId,
154
- understandingId: understanding.id,
155
- action: "needs_review",
156
- reasonCode: "independent_evidence_threshold",
157
- evidenceCount,
158
- now
159
- });
160
- metrics.needsReview += 1;
161
- }
162
- }
163
- metrics.globalCandidates = createCrossProjectGlobalCandidates(resolved.minEvidenceSources);
164
- return {
165
- run: finishContextConsolidationRun({
166
- runId: run.runId,
167
- ok: true,
168
- reason: "completed",
169
- metrics,
170
- now
171
- }) ?? run,
172
- metrics
173
- };
174
- } catch (error) {
175
- const reason = error instanceof Error ? error.message : String(error);
176
- finishContextConsolidationRun({
177
- runId: run.runId,
178
- ok: false,
179
- reason,
180
- metrics,
181
- now
182
- });
183
- throw error;
184
- }
185
- }
186
- //#endregion
187
- export { USER_CONTEXT_CONSOLIDATION_AUTOMATION_ID, USER_CONTEXT_CONSOLIDATION_TOKEN, compileContextConsolidationCron, resolveContextConsolidationConfig, runContextConsolidation };
@@ -1,17 +0,0 @@
1
- import type { ContextEvidence, UserContextScope } from './domain.js';
2
- export type ContextObjectView = 'current' | 'review' | 'history';
3
- export type ContextObjectOrigin = 'told_by_user' | 'observed' | 'inferred' | 'connected_source';
4
- export type ContextObject = {
5
- objectType: 'profile' | 'rule' | 'focus' | 'understanding';
6
- objectId: string;
7
- status: string;
8
- content: string;
9
- scope: UserContextScope;
10
- origin: ContextObjectOrigin;
11
- confidence: number;
12
- evidence: ContextEvidence[] | Array<{
13
- sourceRef: string;
14
- }>;
15
- updatedAt: number;
16
- };
17
- export declare function listContextObjects(view: ContextObjectView): ContextObject[];
@@ -1,99 +0,0 @@
1
- import { getUserProfile, listCollaborationRules, listUnderstandingEvidence, listUnderstandings } from "../storage/sqlite/user-context-repository.js";
2
- import "../storage/sqlite/index.js";
3
- import { getUnderstandingSourceGrant, getUnderstandingSourceRun, listUserFocusEvidence, listUserFocuses } from "./sources/repository.js";
4
- //#region src/user-context/context-objects.ts
5
- function understandingOrigin(item, evidence) {
6
- if (item.explicitness === "explicit") return "told_by_user";
7
- if (evidence.some((entry) => entry.sourceType === "connector")) return "connected_source";
8
- return item.explicitness === "observed" ? "observed" : "inferred";
9
- }
10
- function includesStatus(view, objectType, status) {
11
- if (view === "current") return status === "active";
12
- if (view === "review") return objectType === "understanding" ? [
13
- "candidate",
14
- "needs_review",
15
- "stale"
16
- ].includes(status) : objectType === "focus" && status === "candidate";
17
- return objectType === "understanding" ? ["archived", "rejected"].includes(status) : objectType === "focus" ? [
18
- "paused",
19
- "completed",
20
- "rejected"
21
- ].includes(status) : objectType === "rule" && ["disabled", "archived"].includes(status);
22
- }
23
- function listContextObjects(view) {
24
- const objects = [];
25
- if (view === "current") {
26
- const profile = getUserProfile();
27
- const fields = [
28
- ["callName", profile.callName],
29
- ["role", profile.role],
30
- ["primaryGoal", profile.primaryGoal],
31
- ["pronouns", profile.pronouns],
32
- ["timezone", profile.timezone],
33
- ["locale", profile.locale]
34
- ];
35
- for (const [field, value] of fields) {
36
- if (!value) continue;
37
- objects.push({
38
- objectType: "profile",
39
- objectId: field,
40
- status: "active",
41
- content: value,
42
- scope: { type: "global" },
43
- origin: "told_by_user",
44
- confidence: 1,
45
- evidence: [{ sourceRef: `user-profile://${field}` }],
46
- updatedAt: profile.updatedAt
47
- });
48
- }
49
- }
50
- for (const rule of listCollaborationRules()) {
51
- if (!includesStatus(view, "rule", rule.status)) continue;
52
- objects.push({
53
- objectType: "rule",
54
- objectId: rule.id,
55
- status: rule.status,
56
- content: rule.statement,
57
- scope: rule.scope,
58
- origin: "told_by_user",
59
- confidence: 1,
60
- evidence: [{ sourceRef: `collaboration-rule://${rule.revisionId}` }],
61
- updatedAt: rule.updatedAt
62
- });
63
- }
64
- for (const focus of listUserFocuses()) {
65
- if (!includesStatus(view, "focus", focus.status)) continue;
66
- const sourceRun = focus.sourceRunId ? getUnderstandingSourceRun(focus.sourceRunId) : null;
67
- const sourceGrant = sourceRun ? getUnderstandingSourceGrant(sourceRun.grantId) : null;
68
- const linkedEvidence = listUserFocusEvidence(focus.id);
69
- objects.push({
70
- objectType: "focus",
71
- objectId: focus.id,
72
- status: focus.status,
73
- content: `${focus.title}: ${focus.summary}`,
74
- scope: focus.scope,
75
- origin: focus.explicitness === "explicit" ? "told_by_user" : sourceGrant?.adapterId.startsWith("connector:") ? "connected_source" : focus.explicitness === "observed" ? "observed" : "inferred",
76
- confidence: focus.confidence,
77
- evidence: linkedEvidence.length ? linkedEvidence : focus.evidenceRefs.map((sourceRef) => ({ sourceRef })),
78
- updatedAt: focus.updatedAt
79
- });
80
- }
81
- for (const understanding of listUnderstandings()) {
82
- if (!includesStatus(view, "understanding", understanding.status)) continue;
83
- const evidence = listUnderstandingEvidence(understanding.id);
84
- objects.push({
85
- objectType: "understanding",
86
- objectId: understanding.id,
87
- status: understanding.status,
88
- content: understanding.statement,
89
- scope: understanding.scope,
90
- origin: understandingOrigin(understanding, evidence),
91
- confidence: understanding.confidence,
92
- evidence,
93
- updatedAt: understanding.updatedAt
94
- });
95
- }
96
- return objects.sort((left, right) => right.updatedAt - left.updatedAt);
97
- }
98
- //#endregion
99
- export { listContextObjects };
@@ -1,13 +0,0 @@
1
- export type RetrievalEvaluationCase = {
2
- id: string;
3
- expectedIds: string[];
4
- shouldAbstain?: boolean;
5
- retrieve: () => string[];
6
- };
7
- export type RetrievalEvaluationMetrics = {
8
- cases: number;
9
- recallAtK: number;
10
- precisionAtK: number;
11
- abstentionAccuracy: number;
12
- };
13
- export declare function evaluateRetrievalCases(cases: RetrievalEvaluationCase[], k?: number): RetrievalEvaluationMetrics;
@@ -1,31 +0,0 @@
1
- //#region src/user-context/evaluation/harness.ts
2
- function evaluateRetrievalCases(cases, k = 3) {
3
- let expected = 0;
4
- let recalled = 0;
5
- let returned = 0;
6
- let relevantReturned = 0;
7
- let abstentionCases = 0;
8
- let correctAbstentions = 0;
9
- for (const item of cases) {
10
- const results = [...new Set(item.retrieve())].slice(0, Math.max(1, k));
11
- const expectedIds = new Set(item.expectedIds);
12
- if (item.shouldAbstain) {
13
- abstentionCases += 1;
14
- if (results.length === 0) correctAbstentions += 1;
15
- continue;
16
- }
17
- expected += expectedIds.size;
18
- returned += results.length;
19
- const matches = results.filter((id) => expectedIds.has(id)).length;
20
- recalled += matches;
21
- relevantReturned += matches;
22
- }
23
- return {
24
- cases: cases.length,
25
- recallAtK: expected ? recalled / expected : 1,
26
- precisionAtK: returned ? relevantReturned / returned : 1,
27
- abstentionAccuracy: abstentionCases ? correctAbstentions / abstentionCases : 1
28
- };
29
- }
30
- //#endregion
31
- export { evaluateRetrievalCases };
@@ -1,22 +0,0 @@
1
- import type { Config } from '../../config/schema.js';
2
- import type { MemoryManager } from '../../agent/memory/manager.js';
3
- import type { UnderstandingReviewResult } from '../../agent/memory/understanding/types.js';
4
- import { type ExtractorId } from './registry.js';
5
- import type { SemanticEvidence, SemanticUnderstandingInterpretation } from './semantic.js';
6
- export type UnderstandingEvidenceMessage = SemanticEvidence & {
7
- createdAt: number;
8
- message: unknown;
9
- };
10
- export declare function emptyUnderstandingReview(): UnderstandingReviewResult;
11
- export declare function executeUnderstandingInterpretation(params: {
12
- interpretation: SemanticUnderstandingInterpretation;
13
- evidence: UnderstandingEvidenceMessage[];
14
- extractionRunId: string;
15
- extractorId: ExtractorId;
16
- sessionKey: string;
17
- turnId?: string;
18
- memoryManager: MemoryManager;
19
- getConfig: () => Config | undefined;
20
- reviewSource: 'turn' | 'background';
21
- processingPolicy: 'local_only' | 'remote_allowed';
22
- }): Promise<UnderstandingReviewResult>;
@@ -1,142 +0,0 @@
1
- import { createContextEvidence, getTurnPersonalization, getUnderstanding, recordContextFeedback, rejectUnderstanding, setUnderstandingStatus } from "../../storage/sqlite/user-context-repository.js";
2
- import { getSessionMetadata } from "../../storage/sqlite/session-repository.js";
3
- import "../../storage/sqlite/index.js";
4
- import { extractionInputHash } from "./registry.js";
5
- //#region src/user-context/extraction/executor.ts
6
- function emptyUnderstandingReview() {
7
- return {
8
- proposed: 0,
9
- created: 0,
10
- deduplicated: 0,
11
- rejected: 0,
12
- createdRecords: [],
13
- writeOutputs: []
14
- };
15
- }
16
- function resolveWritePolicy(config) {
17
- const memory = config?.userContext.memory;
18
- if (!memory || memory.mode === "off" || memory.mode === "readOnly") return "deny";
19
- return memory.writePolicy?.understanding ?? (memory.mode === "auto" ? "allow" : "confirm");
20
- }
21
- function recordTargetFeedback(turnId, targetIds, rating, reason) {
22
- if (!turnId || targetIds.length === 0) return;
23
- const personalization = getTurnPersonalization(turnId);
24
- if (!personalization) return;
25
- for (const objectId of targetIds) recordContextFeedback({
26
- turnId,
27
- runId: personalization.runId,
28
- objectType: "understanding",
29
- objectId,
30
- rating,
31
- reason
32
- });
33
- }
34
- async function executeUnderstandingInterpretation(params) {
35
- const { interpretation } = params;
36
- const result = emptyUnderstandingReview();
37
- const targets = interpretation.targetUnderstandingIds.flatMap((id) => {
38
- const item = getUnderstanding(id);
39
- return item ? [item] : [];
40
- });
41
- const targetIds = targets.map((item) => item.id);
42
- const policy = resolveWritePolicy(params.getConfig());
43
- if (interpretation.intent === "memory_forget") {
44
- for (const target of targets) {
45
- const rejected = rejectUnderstanding(target.id, "explicit user forget request", "user");
46
- result.writeOutputs.push({
47
- candidateKey: rejected.canonicalKey,
48
- objectId: rejected.id,
49
- versionId: rejected.versionId,
50
- outcome: "rejected"
51
- });
52
- }
53
- result.rejected += targets.length;
54
- recordTargetFeedback(params.turnId, targetIds, "irrelevant", "explicit_user_forget_request");
55
- return result;
56
- }
57
- if (interpretation.intent === "memory_confirm" && policy !== "deny") {
58
- for (const target of targets) {
59
- const confirmed = setUnderstandingStatus(target.id, "active", {
60
- explicitness: "explicit",
61
- confidence: 1,
62
- actorType: "user",
63
- source: "semantic-memory-confirmation"
64
- });
65
- result.createdRecords.push({
66
- id: confirmed.id,
67
- content: confirmed.statement,
68
- kind: confirmed.kind,
69
- status: confirmed.status
70
- });
71
- result.writeOutputs.push({
72
- candidateKey: confirmed.canonicalKey,
73
- objectId: confirmed.id,
74
- versionId: confirmed.versionId,
75
- outcome: "deduplicated"
76
- });
77
- result.deduplicated += 1;
78
- }
79
- recordTargetFeedback(params.turnId, targetIds, "helpful", "explicit_user_confirmation");
80
- }
81
- if (interpretation.intent === "memory_correct" && targets.length && interpretation.candidates.length === 0) {
82
- for (const target of targets) setUnderstandingStatus(target.id, "needs_review", {
83
- actorType: "user",
84
- source: "semantic-memory-correction"
85
- });
86
- recordTargetFeedback(params.turnId, targetIds, "wrong", "explicit_user_correction_without_replacement");
87
- return result;
88
- }
89
- if (interpretation.candidates.length === 0) return result;
90
- if (policy === "deny") {
91
- result.proposed = interpretation.candidates.length;
92
- result.rejected = interpretation.candidates.length;
93
- return result;
94
- }
95
- const evidenceByRef = new Map(params.evidence.map((entry) => [entry.ref, entry]));
96
- const candidates = interpretation.candidates.map((candidate) => ({
97
- ...candidate,
98
- explicitness: policy === "confirm" && candidate.explicitness === "explicit" ? "observed" : candidate.explicitness
99
- }));
100
- const evidenceIdsByRef = /* @__PURE__ */ new Map();
101
- for (const ref of new Set(candidates.flatMap((candidate) => candidate.evidenceRefs))) {
102
- const entry = evidenceByRef.get(ref);
103
- if (!entry || entry.role !== "user") continue;
104
- const evidence = createContextEvidence({
105
- sourceType: "conversation",
106
- sourceRef: `session:${params.sessionKey}:entry:${entry.ref}`,
107
- sourceRunId: params.extractionRunId,
108
- sessionId: params.sessionKey,
109
- ...params.turnId ? { turnId: params.turnId } : {},
110
- messageId: entry.ref,
111
- contentHash: extractionInputHash(JSON.stringify(entry.message)),
112
- retentionPolicy: "derived_only",
113
- processingPolicy: params.processingPolicy,
114
- extractorId: params.extractorId,
115
- extractorVersion: "1",
116
- trustLevel: "owner",
117
- observedAt: entry.createdAt
118
- });
119
- evidenceIdsByRef.set(ref, evidence.id);
120
- }
121
- const projectId = getSessionMetadata(params.sessionKey)?.projectId;
122
- for (const candidate of candidates) {
123
- const applied = await params.memoryManager.applyUnderstandingCandidates([candidate], {
124
- sessionKey: params.sessionKey,
125
- ...projectId ? { projectId } : {},
126
- evidenceIds: candidate.evidenceRefs.flatMap((ref) => evidenceIdsByRef.get(ref) ?? []),
127
- reviewSource: params.reviewSource,
128
- extractionRunId: params.extractionRunId,
129
- ...interpretation.intent === "memory_correct" ? { supersedesRecordIds: targetIds } : {}
130
- });
131
- result.proposed += applied.proposed;
132
- result.created += applied.created;
133
- result.deduplicated += applied.deduplicated;
134
- result.rejected += applied.rejected;
135
- result.createdRecords.push(...applied.createdRecords);
136
- result.writeOutputs.push(...applied.writeOutputs ?? []);
137
- }
138
- if (interpretation.intent === "memory_correct" && result.created > 0) recordTargetFeedback(params.turnId, targetIds, "wrong", "explicit_user_correction_with_replacement");
139
- return result;
140
- }
141
- //#endregion
142
- export { emptyUnderstandingReview, executeUnderstandingInterpretation };
@@ -1,19 +0,0 @@
1
- export type ContextRepairFilter = {
2
- runId?: string;
3
- sourceRef?: string;
4
- extractorId?: string;
5
- extractorVersion?: string;
6
- objectVersionId?: string;
7
- };
8
- export declare function repairExtractedContext(filter: ContextRepairFilter): {
9
- runIds: string[];
10
- repaired: Array<{
11
- objectType: 'focus' | 'understanding';
12
- objectId: string;
13
- }>;
14
- retained: Array<{
15
- objectType: 'focus' | 'understanding';
16
- objectId: string;
17
- reason: string;
18
- }>;
19
- };
@@ -1,71 +0,0 @@
1
- import { hasIndependentExtractionOutput, listContextExtractionOutputs, listContextExtractionRuns } from "../../storage/sqlite/context-extraction-repository.js";
2
- import { getUnderstanding, setUnderstandingStatus } from "../../storage/sqlite/user-context-repository.js";
3
- import "../../storage/sqlite/index.js";
4
- import { listUserFocuses, updateUserFocus } from "../sources/repository.js";
5
- //#region src/user-context/extraction/repair.ts
6
- function repairExtractedContext(filter) {
7
- const runs = listContextExtractionRuns({
8
- ...filter.sourceRef ? { sourceRef: filter.sourceRef } : {},
9
- ...filter.extractorId ? { extractorId: filter.extractorId } : {},
10
- ...filter.extractorVersion ? { extractorVersion: filter.extractorVersion } : {},
11
- limit: 500
12
- }).filter((run) => !filter.runId || run.id === filter.runId);
13
- const repaired = [];
14
- const retained = [];
15
- const seen = /* @__PURE__ */ new Set();
16
- const targetRunIds = runs.map((run) => run.id);
17
- for (const run of runs) for (const output of listContextExtractionOutputs(run.id)) {
18
- if (output.objectType !== "focus" && output.objectType !== "understanding" || !output.objectId) continue;
19
- if (filter.objectVersionId && output.versionId !== filter.objectVersionId) continue;
20
- const key = `${output.objectType}:${output.objectId}`;
21
- if (seen.has(key)) continue;
22
- seen.add(key);
23
- if (hasIndependentExtractionOutput(targetRunIds, output.objectType, output.objectId)) {
24
- retained.push({
25
- objectType: output.objectType,
26
- objectId: output.objectId,
27
- reason: "independent_extraction"
28
- });
29
- continue;
30
- }
31
- if (output.objectType === "understanding") {
32
- const understanding = getUnderstanding(output.objectId);
33
- if (!understanding) continue;
34
- if (understanding.explicitness === "explicit") {
35
- retained.push({
36
- objectType: "understanding",
37
- objectId: output.objectId,
38
- reason: "user_explicit"
39
- });
40
- continue;
41
- }
42
- setUnderstandingStatus(output.objectId, "archived", {
43
- actorType: "runtime",
44
- source: "context-extraction-repair"
45
- });
46
- } else {
47
- const focus = listUserFocuses().find((item) => item.id === output.objectId);
48
- if (!focus) continue;
49
- if (focus.explicitness === "explicit") {
50
- retained.push({
51
- objectType: "focus",
52
- objectId: output.objectId,
53
- reason: "user_explicit"
54
- });
55
- continue;
56
- }
57
- updateUserFocus(output.objectId, { status: "paused" });
58
- }
59
- repaired.push({
60
- objectType: output.objectType,
61
- objectId: output.objectId
62
- });
63
- }
64
- return {
65
- runIds: runs.map((run) => run.id),
66
- repaired,
67
- retained
68
- };
69
- }
70
- //#endregion
71
- export { repairExtractedContext };
@@ -1,18 +0,0 @@
1
- import type { UnderstandingCandidate } from '../../agent/memory/understanding/types.js';
2
- export declare const UNDERSTANDING_INTENTS: readonly ["memory_create", "memory_query", "memory_confirm", "memory_correct", "memory_forget", "user_assertion", "task_request", "none"];
3
- export type UnderstandingIntent = typeof UNDERSTANDING_INTENTS[number];
4
- export type SemanticEvidence = {
5
- ref: string;
6
- role: 'user' | 'assistant';
7
- text: string;
8
- };
9
- export type SemanticUnderstandingCandidate = UnderstandingCandidate & {
10
- evidenceRefs: string[];
11
- };
12
- export type SemanticUnderstandingInterpretation = {
13
- intent: UnderstandingIntent;
14
- candidates: SemanticUnderstandingCandidate[];
15
- targetUnderstandingIds: string[];
16
- abstentionReason?: string;
17
- };
18
- export declare function parseSemanticUnderstanding(raw: string, evidence: SemanticEvidence[], allowedTargetIds?: string[]): SemanticUnderstandingInterpretation | null;