@xopcai/xopc 0.0.247 → 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 (509) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/src/update-offset-store.js +17 -54
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/extensions/weixin/src/auth/accounts.js +3 -5
  5. package/dist/extensions/weixin/src/monitor/monitor.js +3 -5
  6. package/dist/extensions/weixin/src/storage/sync-buf.d.ts +3 -6
  7. package/dist/extensions/weixin/src/storage/sync-buf.js +9 -22
  8. package/dist/gateway/static/root/assets/{activity-store-BlxqErph.js → activity-store-B759R_qf.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DmaFeojS.js → agent-avatar-dicebear-BUu7EnwM.js} +1 -1
  10. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-C1rXNUAG.js +1 -0
  11. package/dist/gateway/static/root/assets/agents-DK9HjHO0.js +1 -0
  12. package/dist/gateway/static/root/assets/{api-BbXzyQMj.js → api-Cg0v7Lpn.js} +1 -1
  13. package/dist/gateway/static/root/assets/app-management-settings-panel-C9DkCW_d.js +1 -0
  14. package/dist/gateway/static/root/assets/appearance-settings-CFggS95Y.js +1 -0
  15. package/dist/gateway/static/root/assets/apps-page-jOvT-fzU.js +1 -0
  16. package/dist/gateway/static/root/assets/{archive-plugin-DD2SweEH.js → archive-plugin-BQrilVVv.js} +1 -1
  17. package/dist/gateway/static/root/assets/{attachment-load-BG82bNBQ.js → attachment-load-BG0BliqV.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automations-page-CqBZ89He.js → automations-page-Bo4RiTkh.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-workspace-BKjKTlW8.js +6 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-B6LKm5Zv.js → binary-plugins-BCnyNU0C.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-BJKvGVXd.js → block-editor-Db8DlVvg.js} +50 -50
  22. package/dist/gateway/static/root/assets/browser-settings-page-Dzq18pO1.js +8 -0
  23. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BAAc151l.js → browser-workflow-inputs-C71vfl0b.js} +1 -1
  24. package/dist/gateway/static/root/assets/{browser-workflows-page-DoE4Uuns.js → browser-workflows-page-vvmSYKsO.js} +2 -2
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-DW4SBQf4.js +7 -0
  26. package/dist/gateway/static/root/assets/channels-settings-57OGuewD.js +1 -0
  27. package/dist/gateway/static/root/assets/{channels-status-swr-CCBCtLDg.js → channels-status-swr-CKyV3jY5.js} +1 -1
  28. package/dist/gateway/static/root/assets/{chat-terminal-dock-BsRWnz7M.js → chat-terminal-dock-B1Xd6OFB.js} +2 -2
  29. package/dist/gateway/static/root/assets/connectors-page-CT_I3kbR.js +2 -0
  30. package/dist/gateway/static/root/assets/{cron-expression-DdCgsH2c.js → cron-expression-D-F9vjtE.js} +1 -1
  31. package/dist/gateway/static/root/assets/{date-picker-dt37Lt8e.js → date-picker-B2OoYvic.js} +1 -1
  32. package/dist/gateway/static/root/assets/dependency-picker-BiGx9Sbj.js +1 -0
  33. package/dist/gateway/static/root/assets/{desktop-pet-Nw_Pgkk3.js → desktop-pet-BNMRqipe.js} +1 -1
  34. package/dist/gateway/static/root/assets/desktop-pet-settings-DeYbIV7A.js +1 -0
  35. package/dist/gateway/static/root/assets/{extension-debug-page-BHSst0WN.js → extension-debug-page-COyn05ub.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-page-DXbL4cQZ.js → extension-page-oH43chS2.js} +1 -1
  37. package/dist/gateway/static/root/assets/extension-settings-page-BMO59994.js +1 -0
  38. package/dist/gateway/static/root/assets/gateway-config-api-cimpViGk.js +1 -0
  39. package/dist/gateway/static/root/assets/{gateway-config-swr-826dipyU.js → gateway-config-swr-BGdHwT4e.js} +1 -1
  40. package/dist/gateway/static/root/assets/gateway-settings-BHJtnSic.js +1 -0
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-DyvcAIMm.js → gateway-startup-retry-CuaM3b4c.js} +1 -1
  42. package/dist/gateway/static/root/assets/heartbeat-settings-DNhrZHqx.js +1 -0
  43. package/dist/gateway/static/root/assets/home-page-BiHwiBnQ.js +1 -0
  44. package/dist/gateway/static/root/assets/{image-generation-api-D7cyfks6.js → image-generation-api-D7duj7Uj.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-DGeGmj4k.css +2 -0
  46. package/dist/gateway/static/root/assets/index-aBs0EfQB.js +72 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-EY4cu-6W.js → keyboard-shortcuts-settings-D8Zw_lYd.js} +1 -1
  48. package/dist/gateway/static/root/assets/local-app-workbench-page-eBFVWmtH.js +2 -0
  49. package/dist/gateway/static/root/assets/{local-apps-page-Dh7OxX0S.js → local-apps-page-CvPDPRwb.js} +1 -1
  50. package/dist/gateway/static/root/assets/{locale-store-CBoCuIMx.js → locale-store-zEL8bkwx.js} +1 -1
  51. package/dist/gateway/static/root/assets/logs-page-ClvcWlL6.js +2 -0
  52. package/dist/gateway/static/root/assets/{management-settings-ZjiL3A-S.js → management-settings-D8moh99U.js} +1 -1
  53. package/dist/gateway/static/root/assets/{markdown-split-B4BxkTpU.js → markdown-split-D7V3j0vE.js} +1 -1
  54. package/dist/gateway/static/root/assets/{markdown-view-BXsHghJd.js → markdown-view-DGRN-8wP.js} +1 -1
  55. package/dist/gateway/static/root/assets/{media-plugins-D15XBiEo.js → media-plugins-BLaE5b1Y.js} +1 -1
  56. package/dist/gateway/static/root/assets/messages-W5P19VTF.js +11 -0
  57. package/dist/gateway/static/root/assets/mobile-pairing-wizard-DiVDuCxl.js +1 -0
  58. package/dist/gateway/static/root/assets/note-detail-panel-CEEvR-fV.js +5 -0
  59. package/dist/gateway/static/root/assets/notes-page-BLqgXNCx.js +8 -0
  60. package/dist/gateway/static/root/assets/page-tabs-BFMGjA60.js +1 -0
  61. package/dist/gateway/static/root/assets/preview-open-alternatives-DNEWZN7H.js +1 -0
  62. package/dist/gateway/static/root/assets/{product-open-page-CAJeUXeU.js → product-open-page-Co5u7asH.js} +1 -1
  63. package/dist/gateway/static/root/assets/project-detail-page-CIiFJ5tk.js +1 -0
  64. package/dist/gateway/static/root/assets/projects-page-B3UF-Pfm.js +1 -0
  65. package/dist/gateway/static/root/assets/{registry-api-BhGKnvLP.js → registry-api-Cg92zSod.js} +1 -1
  66. package/dist/gateway/static/root/assets/remote-access-hub-BUtpkJPG.js +1 -0
  67. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BhKcyEId.js → runtime-tools-settings-panel-C0ByNmlV.js} +2 -2
  68. package/dist/gateway/static/root/assets/{schema-form-L0s7RWCi.js → schema-form-Dq_VQpuY.js} +1 -1
  69. package/dist/gateway/static/root/assets/sessions-page-UgJmG-V4.js +1 -0
  70. package/dist/gateway/static/root/assets/settings-advanced-gate-DDCzpdkl.js +1 -0
  71. package/dist/gateway/static/root/assets/settings-form-section-CZu6FX4k.js +1 -0
  72. package/dist/gateway/static/root/assets/{settings-page-CTKoztlF.js → settings-page-S8ekeUZd.js} +1 -1
  73. package/dist/gateway/static/root/assets/setup-status-panel-BdVmwXMv.js +1 -0
  74. package/dist/gateway/static/root/assets/{share-preview-page-CiiLLz5A.js → share-preview-page-D2fEidbn.js} +1 -1
  75. package/dist/gateway/static/root/assets/shares-settings-BdsqnCYj.js +1 -0
  76. package/dist/gateway/static/root/assets/skill-reload-api-ghzAQKna.js +1 -0
  77. package/dist/gateway/static/root/assets/skills-page-AYiPlgZE.js +2 -0
  78. package/dist/gateway/static/root/assets/{skills-page.utils-CwRekJSJ.js → skills-page.utils-DGzl-ib-.js} +1 -1
  79. package/dist/gateway/static/root/assets/system-settings-panel-5Xd5mIiR.js +1 -0
  80. package/dist/gateway/static/root/assets/task-detail-page-BQAUaCDD.js +1 -0
  81. package/dist/gateway/static/root/assets/{theme-store-hybK3oC9.js → theme-store-ZVClZKQ0.js} +1 -1
  82. package/dist/gateway/static/root/assets/tunnel-api-CdZN1Jin.js +1 -0
  83. package/dist/gateway/static/root/assets/{use-autosave-DX5YZ3Nn.js → use-autosave-czRI0NBc.js} +1 -1
  84. package/dist/gateway/static/root/assets/user-model-page-W3GTm6nA.js +2 -0
  85. package/dist/gateway/static/root/assets/{voice-api-key-field-ocnZbAyi.js → voice-api-key-field-8YEvA3cU.js} +1 -1
  86. package/dist/gateway/static/root/assets/{voice-config-api-CBbiF1T3.js → voice-config-api-CopF64lY.js} +1 -1
  87. package/dist/gateway/static/root/assets/work-discovery-overlay-keLtqYYJ.js +1 -0
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DaErGvxO.js → workflow-run-setup-panel-Dy5WgYMO.js} +2 -2
  89. package/dist/gateway/static/root/assets/workflows-page-BbAV3h7n.js +5 -0
  90. package/dist/gateway/static/root/index.html +10 -26
  91. package/dist/package.js +1 -1
  92. package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
  93. package/dist/src/agent/agent-manager.d.ts +4 -4
  94. package/dist/src/agent/agent-manager.js +31 -15
  95. package/dist/src/agent/background-review/coordinator.d.ts +2 -4
  96. package/dist/src/agent/background-review/coordinator.js +5 -30
  97. package/dist/src/agent/background-review/prompts.d.ts +4 -2
  98. package/dist/src/agent/background-review/prompts.js +24 -19
  99. package/dist/src/agent/background-review/run-background-review.d.ts +6 -7
  100. package/dist/src/agent/background-review/run-background-review.js +47 -41
  101. package/dist/src/agent/background-review/settings.d.ts +0 -1
  102. package/dist/src/agent/background-review/settings.js +6 -7
  103. package/dist/src/agent/commands/command-registry.d.ts +1 -0
  104. package/dist/src/agent/commands/command-registry.js +12 -22
  105. package/dist/src/agent/context/audit.d.ts +36 -0
  106. package/dist/src/agent/context/audit.js +97 -0
  107. package/dist/src/agent/context/coordinator.d.ts +26 -0
  108. package/dist/src/agent/context/coordinator.js +72 -0
  109. package/dist/src/agent/context/execution-context.d.ts +54 -0
  110. package/dist/src/agent/context/execution-context.js +147 -0
  111. package/dist/src/agent/context/execution-scope.js +1 -1
  112. package/dist/src/agent/context/prepend.d.ts +2 -0
  113. package/dist/src/agent/context/prepend.js +28 -0
  114. package/dist/src/agent/context/project-context.d.ts +3 -3
  115. package/dist/src/agent/context/project-context.js +26 -23
  116. package/dist/src/agent/embedded/index.js +1 -1
  117. package/dist/src/agent/embedded/run-for-session.js +1 -0
  118. package/dist/src/agent/embedded/run-turn.js +22 -2
  119. package/dist/src/agent/embedded/types.d.ts +1 -25
  120. package/dist/src/agent/external-tools/composio-provider.js +87 -92
  121. package/dist/src/agent/external-tools/gateway-tools.d.ts +4 -1
  122. package/dist/src/agent/external-tools/gateway-tools.js +153 -41
  123. package/dist/src/agent/external-tools/index.js +1 -1
  124. package/dist/src/agent/external-tools/search-error.d.ts +12 -0
  125. package/dist/src/agent/external-tools/search-error.js +29 -0
  126. package/dist/src/agent/external-tools/service.d.ts +4 -0
  127. package/dist/src/agent/external-tools/service.js +22 -2
  128. package/dist/src/agent/ipc/inbox.d.ts +8 -31
  129. package/dist/src/agent/ipc/inbox.js +64 -133
  130. package/dist/src/agent/memory/compaction-policy.js +1 -1
  131. package/dist/src/agent/memory/compaction-promotion.js +45 -77
  132. package/dist/src/agent/memory/create-memory-manager.js +1 -3
  133. package/dist/src/agent/memory/index.d.ts +0 -5
  134. package/dist/src/agent/memory/index.js +2 -5
  135. package/dist/src/agent/memory/manager.d.ts +0 -16
  136. package/dist/src/agent/memory/manager.js +11 -40
  137. package/dist/src/agent/memory/memory-config.js +1 -1
  138. package/dist/src/agent/memory/runtime.d.ts +2 -2
  139. package/dist/src/agent/memory/runtime.js +9 -19
  140. package/dist/src/agent/memory/types.d.ts +1 -1
  141. package/dist/src/agent/orchestration/agent-orchestrator.js +13 -21
  142. package/dist/src/agent/prompt/sections/memory-skills.js +25 -36
  143. package/dist/src/agent/prompt/sections/tooling.js +10 -4
  144. package/dist/src/agent/prompt/service-prompt-builder.js +4 -3
  145. package/dist/src/agent/service/direct-turn-helpers.js +6 -23
  146. package/dist/src/agent/service/process-direct-one-shot.js +15 -10
  147. package/dist/src/agent/service/process-direct-streaming.js +5 -3
  148. package/dist/src/agent/service.js +4 -3
  149. package/dist/src/agent/tasks/task-judge-service.js +1 -1
  150. package/dist/src/agent/tools/clarify-tool.d.ts +1 -0
  151. package/dist/src/agent/tools/delegate-tool.js +5 -2
  152. package/dist/src/agent/tools/factory.js +36 -19
  153. package/dist/src/agent/tools/index.d.ts +3 -2
  154. package/dist/src/agent/tools/index.js +4 -3
  155. package/dist/src/agent/tools/knowledge-memory-tool.d.ts +9 -0
  156. package/dist/src/agent/tools/knowledge-memory-tool.js +129 -0
  157. package/dist/src/agent/tools/{dreaming-tool.d.ts → memory-maintenance-tool.d.ts} +2 -2
  158. package/dist/src/agent/tools/memory-maintenance-tool.js +31 -0
  159. package/dist/src/agent/tools/user-context-tool.d.ts +8 -0
  160. package/dist/src/agent/tools/user-context-tool.js +81 -0
  161. package/dist/src/agent/tools/xopc-use-tool.js +2 -2
  162. package/dist/src/agent/workflow/catalog.d.ts +1 -8
  163. package/dist/src/agent/workflow/catalog.js +44 -102
  164. package/dist/src/agent/workflow/index.d.ts +1 -1
  165. package/dist/src/agent/workflow/index.js +2 -2
  166. package/dist/src/automations/domain/types.d.ts +1 -0
  167. package/dist/src/automations/service/action-executor.js +2 -2
  168. package/dist/src/automations/service/automation-service.js +2 -2
  169. package/dist/src/channels/manager.d.ts +1 -1
  170. package/dist/src/channels/manager.js +2 -2
  171. package/dist/src/channels/outbound/persist-store.d.ts +2 -8
  172. package/dist/src/channels/outbound/persist-store.js +11 -38
  173. package/dist/src/channels/outbound-sender.d.ts +1 -1
  174. package/dist/src/channels/outbound-sender.js +2 -2
  175. package/dist/src/chat-commands/builtins/understanding.js +24 -6
  176. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  177. package/dist/src/config/schema.d.ts +68 -75
  178. package/dist/src/config/schema.js +31 -20
  179. package/dist/src/config/web-patch.d.ts +1 -1
  180. package/dist/src/connectors/composio-managed-client.js +6 -2
  181. package/dist/src/connectors/composio-triggers.d.ts +2 -2
  182. package/dist/src/connectors/composio-triggers.js +8 -15
  183. package/dist/src/connectors/connected-source-understanding.d.ts +1 -3
  184. package/dist/src/connectors/connected-source-understanding.js +86 -99
  185. package/dist/src/connectors/connection-candidates.d.ts +11 -0
  186. package/dist/src/connectors/connection-candidates.js +58 -0
  187. package/dist/src/connectors/connection-capabilities.d.ts +4 -0
  188. package/dist/src/connectors/connection-capabilities.js +37 -0
  189. package/dist/src/connectors/connection-recovery-service.d.ts +42 -0
  190. package/dist/src/connectors/connection-recovery-service.js +396 -0
  191. package/dist/src/connectors/learning-coordinator.d.ts +0 -2
  192. package/dist/src/connectors/learning-coordinator.js +6 -7
  193. package/dist/src/connectors/principal.d.ts +5 -0
  194. package/dist/src/connectors/principal.js +18 -0
  195. package/dist/src/gateway/agent-builtin-tools.d.ts +28 -10
  196. package/dist/src/gateway/agent-builtin-tools.js +30 -9
  197. package/dist/src/gateway/automation-agent-session.js +3 -0
  198. package/dist/src/gateway/chat-stream/mapper.js +1 -28
  199. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -24
  200. package/dist/src/gateway/clarify-bridge.d.ts +4 -0
  201. package/dist/src/gateway/clarify-bridge.js +9 -4
  202. package/dist/src/gateway/heartbeat/service.js +1 -1
  203. package/dist/src/gateway/hono/lib/config-payload.d.ts +52 -30
  204. package/dist/src/gateway/hono/lib/config-payload.js +4 -4
  205. package/dist/src/gateway/hono/lib/extension-store.js +8 -25
  206. package/dist/src/gateway/hono/middleware/auth.js +1 -2
  207. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  208. package/dist/src/gateway/hono/routes/config-patch/misc.js +72 -28
  209. package/dist/src/gateway/hono/routes/connection-waits.d.ts +3 -0
  210. package/dist/src/gateway/hono/routes/connection-waits.js +58 -0
  211. package/dist/src/gateway/hono/routes/connectors.js +4 -12
  212. package/dist/src/gateway/hono/routes/context-sources.d.ts +4 -0
  213. package/dist/src/gateway/hono/routes/context-sources.js +159 -0
  214. package/dist/src/gateway/hono/routes/index.js +4 -2
  215. package/dist/src/gateway/hono/routes/lazy-bundles.js +9 -4
  216. package/dist/src/gateway/hono/routes/notes.js +22 -7
  217. package/dist/src/gateway/hono/routes/projects.js +37 -45
  218. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +15 -1
  219. package/dist/src/gateway/hono/routes/side-chats.js +13 -2
  220. package/dist/src/gateway/hono/routes/tasks.js +2 -2
  221. package/dist/src/gateway/hono/routes/user-model.d.ts +3 -0
  222. package/dist/src/gateway/hono/routes/user-model.js +480 -0
  223. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  224. package/dist/src/gateway/memory-maintenance-automation-reconciler.d.ts +11 -0
  225. package/dist/src/gateway/memory-maintenance-automation-reconciler.js +72 -0
  226. package/dist/src/gateway/service/agent-runner.d.ts +9 -1
  227. package/dist/src/gateway/service/agent-runner.js +25 -1
  228. package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
  229. package/dist/src/gateway/service/config-coordinator.js +4 -4
  230. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -0
  231. package/dist/src/gateway/service/run-gateway-agent.js +18 -14
  232. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  233. package/dist/src/gateway/service/session-input-coordinator.js +12 -2
  234. package/dist/src/gateway/service.d.ts +3 -1
  235. package/dist/src/gateway/service.js +49 -19
  236. package/dist/src/gateway/side-chat/manager.d.ts +16 -3
  237. package/dist/src/gateway/side-chat/manager.js +117 -28
  238. package/dist/src/gateway/side-chat/run-service.d.ts +2 -0
  239. package/dist/src/gateway/side-chat/run-service.js +28 -5
  240. package/dist/src/gateway/side-chat/types.d.ts +9 -1
  241. package/dist/src/heartbeat/index.js +1 -1
  242. package/dist/src/knowledge/connected-knowledge-pipeline.d.ts +0 -2
  243. package/dist/src/knowledge/connected-knowledge-pipeline.js +46 -217
  244. package/dist/src/knowledge-memory/domain.d.ts +35 -0
  245. package/dist/src/knowledge-memory/index.d.ts +2 -0
  246. package/dist/src/knowledge-memory/index.js +2 -0
  247. package/dist/src/knowledge-memory/repository.d.ts +45 -0
  248. package/dist/src/knowledge-memory/repository.js +154 -0
  249. package/dist/src/memory-maintenance/index.d.ts +2 -0
  250. package/dist/src/memory-maintenance/index.js +3 -0
  251. package/dist/src/memory-maintenance/schedule.d.ts +13 -0
  252. package/dist/src/memory-maintenance/schedule.js +51 -0
  253. package/dist/src/memory-maintenance/service.d.ts +28 -0
  254. package/dist/src/memory-maintenance/service.js +216 -0
  255. package/dist/src/notes/index.d.ts +1 -1
  256. package/dist/src/notes/index.js +2 -2
  257. package/dist/src/notes/paths.d.ts +0 -3
  258. package/dist/src/notes/paths.js +1 -10
  259. package/dist/src/notes/service.d.ts +1 -1
  260. package/dist/src/notes/service.js +7 -4
  261. package/dist/src/notes/store.d.ts +0 -2
  262. package/dist/src/notes/store.js +33 -80
  263. package/dist/src/notes/types.d.ts +16 -0
  264. package/dist/src/proactive/execution/context.d.ts +2 -2
  265. package/dist/src/proactive/execution/context.js +16 -11
  266. package/dist/src/proactive/index.d.ts +1 -1
  267. package/dist/src/proactive/index.js +2 -2
  268. package/dist/src/projects/index.d.ts +1 -1
  269. package/dist/src/projects/index.js +2 -2
  270. package/dist/src/projects/knowledge-bind.d.ts +1 -0
  271. package/dist/src/projects/knowledge-bind.js +15 -0
  272. package/dist/src/projects/project-loop.d.ts +3 -3
  273. package/dist/src/projects/project-loop.js +4 -4
  274. package/dist/src/projects/project-store.js +2 -1
  275. package/dist/src/realtime/runtime.js +1 -0
  276. package/dist/src/runtime-tools/manager.js +1 -1
  277. package/dist/src/share/hosted-session-share.d.ts +1 -4
  278. package/dist/src/share/hosted-session-share.js +14 -47
  279. package/dist/src/share/share-auto.d.ts +1 -1
  280. package/dist/src/share/share-auto.js +2 -2
  281. package/dist/src/share/share-store.d.ts +2 -7
  282. package/dist/src/share/share-store.js +153 -195
  283. package/dist/src/share/share-types.d.ts +0 -4
  284. package/dist/src/share/site-share-store.d.ts +3 -8
  285. package/dist/src/share/site-share-store.js +94 -153
  286. package/dist/src/share/site-share-types.d.ts +0 -4
  287. package/dist/src/storage/sqlite/collaboration-rule-repository.d.ts +17 -0
  288. package/dist/src/storage/sqlite/collaboration-rule-repository.js +54 -0
  289. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +30 -0
  290. package/dist/src/storage/sqlite/connection-wait-repository.js +338 -0
  291. package/dist/src/storage/sqlite/connection.d.ts +1 -2
  292. package/dist/src/storage/sqlite/connection.js +50 -47
  293. package/dist/src/storage/sqlite/connector-account-repository.js +1 -1
  294. package/dist/src/storage/sqlite/context-evidence-repository.d.ts +24 -0
  295. package/dist/src/storage/sqlite/context-evidence-repository.js +52 -0
  296. package/dist/src/storage/sqlite/durable-queue.d.ts +16 -0
  297. package/dist/src/storage/sqlite/durable-queue.js +52 -0
  298. package/dist/src/storage/sqlite/durable-state.d.ts +16 -0
  299. package/dist/src/storage/sqlite/durable-state.js +43 -0
  300. package/dist/src/storage/sqlite/index.d.ts +3 -5
  301. package/dist/src/storage/sqlite/index.js +4 -6
  302. package/dist/src/storage/sqlite/knowledge-repository.d.ts +0 -19
  303. package/dist/src/storage/sqlite/knowledge-repository.js +1 -90
  304. package/dist/src/storage/sqlite/migrations/146_understanding_focus_exclusions.sql +9 -0
  305. package/dist/src/storage/sqlite/migrations/147_durable_application_state.sql +39 -0
  306. package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +554 -0
  307. package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +18 -0
  308. package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +47 -0
  309. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  310. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  311. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  312. package/dist/src/storage/sqlite/notes-repository.d.ts +2 -1
  313. package/dist/src/storage/sqlite/notes-repository.js +37 -3
  314. package/dist/src/storage/sqlite/schema.js +1 -1
  315. package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -2
  316. package/dist/src/storage/sqlite/session-input-repository.js +16 -13
  317. package/dist/src/storage/sqlite/session-repository.js +4 -1
  318. package/dist/src/storage/sqlite/transcript-repository.js +1 -1
  319. package/dist/src/tasks/index.js +2 -2
  320. package/dist/src/tasks/project-operating-view-service.js +1 -1
  321. package/dist/src/tasks/task-application-service.js +6 -1
  322. package/dist/src/tasks/task-context-assembler.js +1 -1
  323. package/dist/src/tasks/task-context-repository.d.ts +0 -1
  324. package/dist/src/tasks/task-context-repository.js +1 -1
  325. package/dist/src/tasks/task-deletion-service.js +1 -1
  326. package/dist/src/tasks/task-handoff-service.js +1 -1
  327. package/dist/src/tasks/task-read-model-projector.js +1 -1
  328. package/dist/src/tasks/task-run-coordinator.js +1 -1
  329. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  330. package/dist/src/tasks/task-run-repository.js +1 -0
  331. package/dist/src/tasks/task-signal-service.js +1 -1
  332. package/dist/src/tui/tool-summary.js +2 -1
  333. package/dist/src/tui/tui-scoped-models.js +9 -6
  334. package/dist/src/user-context/changes.d.ts +1 -1
  335. package/dist/src/user-context/config.d.ts +135 -153
  336. package/dist/src/user-context/config.js +94 -99
  337. package/dist/src/user-context/relationship-continuity.d.ts +2 -2
  338. package/dist/src/user-context/relationship-continuity.js +34 -24
  339. package/dist/src/user-context/sources/activity-clustering.d.ts +9 -3
  340. package/dist/src/user-context/sources/index.js +2 -2
  341. package/dist/src/user-context/sources/repository.d.ts +1 -21
  342. package/dist/src/user-context/sources/repository.js +1 -183
  343. package/dist/src/user-context/sources/types.d.ts +0 -23
  344. package/dist/src/user-model/capture/executor.d.ts +40 -0
  345. package/dist/src/user-model/capture/executor.js +134 -0
  346. package/dist/src/user-model/capture/index.d.ts +2 -0
  347. package/dist/src/user-model/capture/index.js +3 -0
  348. package/dist/src/user-model/capture/semantic.d.ts +21 -0
  349. package/dist/src/user-model/capture/semantic.js +197 -0
  350. package/dist/src/user-model/domain.d.ts +93 -0
  351. package/dist/src/user-model/domain.js +33 -0
  352. package/dist/src/user-model/goals.d.ts +58 -0
  353. package/dist/src/user-model/goals.js +89 -0
  354. package/dist/src/user-model/importance.d.ts +11 -0
  355. package/dist/src/user-model/importance.js +17 -0
  356. package/dist/src/user-model/index.d.ts +5 -0
  357. package/dist/src/user-model/index.js +6 -0
  358. package/dist/src/user-model/repository.d.ts +23 -0
  359. package/dist/src/user-model/repository.js +268 -0
  360. package/dist/src/user-model/temporal.d.ts +10 -0
  361. package/dist/src/user-model/temporal.js +44 -0
  362. package/dist/src/voice/realtime/agentEngine.js +63 -18
  363. package/dist/src/voice/realtime/conversationTurn.d.ts +20 -0
  364. package/dist/src/voice/realtime/conversationTurn.js +83 -0
  365. package/dist/src/voice/realtime/memory-context.d.ts +7 -2
  366. package/dist/src/voice/realtime/memory-context.js +39 -51
  367. package/dist/src/voice/realtime/omniEngine.js +72 -18
  368. package/dist/src/work-discovery/service.d.ts +3 -14
  369. package/dist/src/work-discovery/service.js +138 -99
  370. package/dist/src/work-discovery/types.d.ts +3 -3
  371. package/dist/src/workflows/authoring/workflow-draft-store.d.ts +1 -5
  372. package/dist/src/workflows/authoring/workflow-draft-store.js +23 -43
  373. package/dist/src/workflows/index.js +2 -2
  374. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  375. package/dist/src/workflows/service/workflow-session-bridge.js +12 -20
  376. package/dist/src/workflows/store/event-store.d.ts +1 -2
  377. package/dist/src/workflows/store/event-store.js +19 -64
  378. package/dist/src/workflows/store/paths.d.ts +0 -2
  379. package/dist/src/workflows/store/paths.js +1 -7
  380. package/dist/src/workflows/store/run-store.d.ts +0 -1
  381. package/dist/src/workflows/store/run-store.js +1 -24
  382. package/package.json +3 -3
  383. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-eG49pM-z.js +0 -1
  384. package/dist/gateway/static/root/assets/agents-CZwf1mgZ.js +0 -1
  385. package/dist/gateway/static/root/assets/app-management-settings-panel-BODskFTb.js +0 -1
  386. package/dist/gateway/static/root/assets/appearance-settings-DeaVvaYZ.js +0 -1
  387. package/dist/gateway/static/root/assets/apps-page-BZG3BK7f.js +0 -1
  388. package/dist/gateway/static/root/assets/automations-workspace-CB7Yl2_B.js +0 -6
  389. package/dist/gateway/static/root/assets/browser-settings-page-Bu42Ljfw.js +0 -8
  390. package/dist/gateway/static/root/assets/capabilities-settings-panel-Cg7zCxEH.js +0 -7
  391. package/dist/gateway/static/root/assets/channels-settings-EDTZ8P3y.js +0 -1
  392. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
  393. package/dist/gateway/static/root/assets/connectors-page-kh7PEkSS.js +0 -2
  394. package/dist/gateway/static/root/assets/dependency-picker-oi7cdv2C.js +0 -1
  395. package/dist/gateway/static/root/assets/desktop-pet-settings-D9OO-exo.js +0 -1
  396. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +0 -1
  397. package/dist/gateway/static/root/assets/extension-settings-page-FTD7nE8v.js +0 -1
  398. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +0 -1
  399. package/dist/gateway/static/root/assets/eye-off-DEAzt3g1.js +0 -1
  400. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +0 -1
  401. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
  402. package/dist/gateway/static/root/assets/gateway-config-api-c-8ENciH.js +0 -1
  403. package/dist/gateway/static/root/assets/gateway-settings-BxvyTRl0.js +0 -1
  404. package/dist/gateway/static/root/assets/heartbeat-settings-C1S2Ccui.js +0 -1
  405. package/dist/gateway/static/root/assets/home-page-Bqx-SMWV.js +0 -1
  406. package/dist/gateway/static/root/assets/index-Cif1_3Jx.js +0 -71
  407. package/dist/gateway/static/root/assets/index-Dbh5SXyV.css +0 -2
  408. package/dist/gateway/static/root/assets/interaction-BmQogeqz.js +0 -1
  409. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
  410. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +0 -1
  411. package/dist/gateway/static/root/assets/local-app-workbench-page-sDdw7Y3Q.js +0 -2
  412. package/dist/gateway/static/root/assets/logs-page-DUsxXdDp.js +0 -2
  413. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
  414. package/dist/gateway/static/root/assets/messages-BbdwoxVo.js +0 -3
  415. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
  416. package/dist/gateway/static/root/assets/mobile-pairing-wizard-Dv87XewB.js +0 -1
  417. package/dist/gateway/static/root/assets/models-hub-cache-88f4fzYS.js +0 -1
  418. package/dist/gateway/static/root/assets/notes-page-DOe0lOcQ.js +0 -1
  419. package/dist/gateway/static/root/assets/notes-workbench-Cy0oYbWP.js +0 -4
  420. package/dist/gateway/static/root/assets/oauth-api-BjSUDIgq.js +0 -1
  421. package/dist/gateway/static/root/assets/oauth-authorization-window-Cdolr2wE.js +0 -1
  422. package/dist/gateway/static/root/assets/page-tabs-BaEQMYm_.js +0 -1
  423. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
  424. package/dist/gateway/static/root/assets/preview-open-alternatives-CsNVTKC0.js +0 -1
  425. package/dist/gateway/static/root/assets/project-detail-page-fgD1xc4O.js +0 -1
  426. package/dist/gateway/static/root/assets/projects-page-CiTiEcOc.js +0 -1
  427. package/dist/gateway/static/root/assets/remote-access-hub-Dc0GrNSp.js +0 -1
  428. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
  429. package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
  430. package/dist/gateway/static/root/assets/sessions-page-BPOW3yaM.js +0 -1
  431. package/dist/gateway/static/root/assets/settings-advanced-gate-Bz4s9BBY.js +0 -1
  432. package/dist/gateway/static/root/assets/settings-form-section-DjWzRk4z.js +0 -1
  433. package/dist/gateway/static/root/assets/setup-status-panel-rllj-j7k.js +0 -1
  434. package/dist/gateway/static/root/assets/shares-settings-DMj7onCX.js +0 -1
  435. package/dist/gateway/static/root/assets/skill-reload-api-DRB366nS.js +0 -1
  436. package/dist/gateway/static/root/assets/skills-page-cBT9jCof.js +0 -2
  437. package/dist/gateway/static/root/assets/system-settings-panel-Byrk4DQy.js +0 -1
  438. package/dist/gateway/static/root/assets/task-detail-page-CheX3zmK.js +0 -1
  439. package/dist/gateway/static/root/assets/tunnel-api-jKzujxFU.js +0 -1
  440. package/dist/gateway/static/root/assets/user-context-page-CWy3Pqtk.js +0 -1
  441. package/dist/gateway/static/root/assets/work-discovery-overlay-DE4_YpDn.js +0 -1
  442. package/dist/gateway/static/root/assets/workflows-page-y4O9-BTf.js +0 -5
  443. package/dist/src/agent/memory/builtin-provider.d.ts +0 -37
  444. package/dist/src/agent/memory/builtin-provider.js +0 -225
  445. package/dist/src/agent/memory/context/types.d.ts +0 -40
  446. package/dist/src/agent/memory/understanding/quality.d.ts +0 -8
  447. package/dist/src/agent/memory/understanding/quality.js +0 -18
  448. package/dist/src/agent/memory/understanding/service.d.ts +0 -19
  449. package/dist/src/agent/memory/understanding/service.js +0 -209
  450. package/dist/src/agent/memory/understanding/types.d.ts +0 -34
  451. package/dist/src/agent/memory/understanding/types.js +0 -1
  452. package/dist/src/agent/memory/user-context-coordinator.d.ts +0 -23
  453. package/dist/src/agent/memory/user-context-coordinator.js +0 -113
  454. package/dist/src/agent/tools/dreaming-tool.js +0 -37
  455. package/dist/src/agent/tools/memory-tool.d.ts +0 -9
  456. package/dist/src/agent/tools/memory-tool.js +0 -119
  457. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -11
  458. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -63
  459. package/dist/src/gateway/hono/routes/understanding-sources.d.ts +0 -21
  460. package/dist/src/gateway/hono/routes/understanding-sources.js +0 -387
  461. package/dist/src/gateway/hono/routes/you.d.ts +0 -3
  462. package/dist/src/gateway/hono/routes/you.js +0 -443
  463. package/dist/src/projects/memory-bind.d.ts +0 -1
  464. package/dist/src/projects/memory-bind.js +0 -14
  465. package/dist/src/storage/sqlite/context-consolidation-repository.d.ts +0 -37
  466. package/dist/src/storage/sqlite/context-consolidation-repository.js +0 -64
  467. package/dist/src/storage/sqlite/memory-records-repository.d.ts +0 -217
  468. package/dist/src/storage/sqlite/memory-records-repository.js +0 -715
  469. package/dist/src/storage/sqlite/remote-context-repository.d.ts +0 -3
  470. package/dist/src/storage/sqlite/remote-context-repository.js +0 -40
  471. package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +0 -49
  472. package/dist/src/storage/sqlite/user-context-quality-repository.js +0 -118
  473. package/dist/src/storage/sqlite/user-context-repository.d.ts +0 -85
  474. package/dist/src/storage/sqlite/user-context-repository.js +0 -535
  475. package/dist/src/user-context/automatic-context.d.ts +0 -17
  476. package/dist/src/user-context/automatic-context.js +0 -85
  477. package/dist/src/user-context/consolidation.d.ts +0 -27
  478. package/dist/src/user-context/consolidation.js +0 -187
  479. package/dist/src/user-context/context-objects.d.ts +0 -17
  480. package/dist/src/user-context/context-objects.js +0 -99
  481. package/dist/src/user-context/evaluation/harness.d.ts +0 -13
  482. package/dist/src/user-context/evaluation/harness.js +0 -31
  483. package/dist/src/user-context/extraction/executor.d.ts +0 -22
  484. package/dist/src/user-context/extraction/executor.js +0 -142
  485. package/dist/src/user-context/extraction/repair.d.ts +0 -19
  486. package/dist/src/user-context/extraction/repair.js +0 -71
  487. package/dist/src/user-context/extraction/semantic.d.ts +0 -18
  488. package/dist/src/user-context/extraction/semantic.js +0 -148
  489. package/dist/src/user-context/focus-lifecycle.d.ts +0 -2
  490. package/dist/src/user-context/focus-lifecycle.js +0 -26
  491. package/dist/src/user-context/manual-understanding.d.ts +0 -12
  492. package/dist/src/user-context/manual-understanding.js +0 -37
  493. package/dist/src/user-context/planner.d.ts +0 -17
  494. package/dist/src/user-context/planner.js +0 -465
  495. package/dist/src/user-context/relationships/indexer.d.ts +0 -13
  496. package/dist/src/user-context/relationships/indexer.js +0 -185
  497. package/dist/src/user-context/relationships/service.d.ts +0 -22
  498. package/dist/src/user-context/relationships/service.js +0 -50
  499. package/dist/src/user-context/retriever.d.ts +0 -15
  500. package/dist/src/user-context/retriever.js +0 -124
  501. package/dist/src/user-context/scope.d.ts +0 -7
  502. package/dist/src/user-context/scope.js +0 -9
  503. package/dist/src/user-context/selection-policy.d.ts +0 -20
  504. package/dist/src/user-context/selection-policy.js +0 -33
  505. package/dist/src/user-context/understanding.d.ts +0 -15
  506. package/dist/src/user-context/understanding.js +0 -24
  507. package/dist/src/user-context/understandingQuality.d.ts +0 -5
  508. package/dist/src/user-context/understandingQuality.js +0 -48
  509. /package/dist/src/{agent/memory/context/types.js → knowledge-memory/domain.js} +0 -0
@@ -0,0 +1,554 @@
1
+ CREATE TABLE user_assertion_slots (
2
+ slot_id TEXT PRIMARY KEY,
3
+ principal_id TEXT NOT NULL,
4
+ subject_type TEXT NOT NULL CHECK(subject_type IN ('user', 'person', 'goal', 'project', 'topic')),
5
+ subject_id TEXT NOT NULL,
6
+ predicate TEXT NOT NULL,
7
+ cardinality TEXT NOT NULL CHECK(cardinality IN ('single', 'multiple')),
8
+ scope_type TEXT NOT NULL CHECK(scope_type IN ('global', 'agent', 'workspace', 'project', 'session')),
9
+ scope_id TEXT,
10
+ created_at INTEGER NOT NULL
11
+ );
12
+
13
+ CREATE UNIQUE INDEX idx_user_assertion_slots_identity
14
+ ON user_assertion_slots(
15
+ principal_id, subject_type, subject_id, predicate, scope_type, COALESCE(scope_id, '')
16
+ );
17
+ CREATE INDEX idx_user_assertion_slots_subject
18
+ ON user_assertion_slots(principal_id, subject_type, subject_id, predicate);
19
+ CREATE INDEX idx_user_assertion_slots_scope
20
+ ON user_assertion_slots(principal_id, scope_type, scope_id);
21
+
22
+ CREATE TABLE user_assertions (
23
+ assertion_id TEXT PRIMARY KEY,
24
+ slot_id TEXT NOT NULL REFERENCES user_assertion_slots(slot_id) ON DELETE CASCADE,
25
+ kind TEXT NOT NULL CHECK(kind IN (
26
+ 'identity', 'preference', 'value', 'routine', 'capability',
27
+ 'relationship', 'current_state', 'derived_insight'
28
+ )),
29
+ value_json TEXT NOT NULL CHECK(json_valid(value_json)),
30
+ normalized_value TEXT NOT NULL,
31
+ statement TEXT NOT NULL,
32
+ authority TEXT NOT NULL CHECK(authority IN (
33
+ 'user_explicit', 'user_observed', 'system_inferred', 'external_untrusted'
34
+ )),
35
+ status TEXT NOT NULL CHECK(status IN (
36
+ 'candidate', 'active', 'needs_review', 'conflicted', 'stale', 'archived', 'rejected'
37
+ )),
38
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
39
+ declared_importance REAL CHECK(declared_importance IS NULL OR (declared_importance >= 0 AND declared_importance <= 1)),
40
+ inferred_importance REAL NOT NULL CHECK(inferred_importance >= 0 AND inferred_importance <= 1),
41
+ consequence TEXT NOT NULL CHECK(consequence IN ('low', 'medium', 'high', 'critical')),
42
+ actionability REAL NOT NULL CHECK(actionability >= 0 AND actionability <= 1),
43
+ volatility TEXT NOT NULL CHECK(volatility IN ('stable', 'slow', 'dynamic', 'event')),
44
+ sensitivity TEXT NOT NULL CHECK(sensitivity IN ('normal', 'personal', 'secret', 'regulated')),
45
+ disclosure_policy TEXT NOT NULL CHECK(disclosure_policy IN ('silent', 'referenceable', 'ask_before_reference')),
46
+ applicability_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(applicability_json)),
47
+ valid_from INTEGER,
48
+ valid_to INTEGER,
49
+ observed_at INTEGER NOT NULL,
50
+ recorded_at INTEGER NOT NULL,
51
+ review_at INTEGER,
52
+ supersedes_assertion_id TEXT REFERENCES user_assertions(assertion_id) ON DELETE SET NULL,
53
+ created_by TEXT NOT NULL CHECK(created_by IN ('user', 'runtime', 'connector', 'maintenance', 'migration')),
54
+ created_at INTEGER NOT NULL,
55
+ CHECK(valid_to IS NULL OR valid_from IS NULL OR valid_to >= valid_from)
56
+ );
57
+
58
+ CREATE INDEX idx_user_assertions_slot_status
59
+ ON user_assertions(slot_id, status, valid_from, valid_to);
60
+ CREATE INDEX idx_user_assertions_review
61
+ ON user_assertions(status, review_at) WHERE review_at IS NOT NULL;
62
+ CREATE INDEX idx_user_assertions_recorded
63
+ ON user_assertions(recorded_at DESC);
64
+
65
+ CREATE VIRTUAL TABLE user_assertions_fts USING fts5(
66
+ statement,
67
+ assertion_id UNINDEXED,
68
+ slot_id UNINDEXED,
69
+ tokenize='unicode61'
70
+ );
71
+
72
+ CREATE TABLE user_assertion_evidence (
73
+ assertion_id TEXT NOT NULL REFERENCES user_assertions(assertion_id) ON DELETE CASCADE,
74
+ evidence_id TEXT NOT NULL REFERENCES context_evidence(evidence_id) ON DELETE CASCADE,
75
+ relation TEXT NOT NULL CHECK(relation IN ('supports', 'contradicts', 'supersedes')),
76
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
77
+ created_at INTEGER NOT NULL,
78
+ PRIMARY KEY(assertion_id, evidence_id, relation)
79
+ );
80
+
81
+ CREATE INDEX idx_user_assertion_evidence_source
82
+ ON user_assertion_evidence(evidence_id, relation);
83
+
84
+ CREATE TABLE user_assertion_status_events (
85
+ event_id TEXT PRIMARY KEY,
86
+ assertion_id TEXT NOT NULL REFERENCES user_assertions(assertion_id) ON DELETE CASCADE,
87
+ from_status TEXT,
88
+ to_status TEXT NOT NULL,
89
+ actor_type TEXT NOT NULL CHECK(actor_type IN ('user', 'runtime', 'maintenance', 'migration')),
90
+ reason TEXT NOT NULL,
91
+ source_run_id TEXT,
92
+ created_at INTEGER NOT NULL
93
+ );
94
+
95
+ CREATE INDEX idx_user_assertion_status_events_assertion
96
+ ON user_assertion_status_events(assertion_id, created_at DESC);
97
+
98
+ CREATE TABLE user_goals (
99
+ goal_id TEXT PRIMARY KEY,
100
+ principal_id TEXT NOT NULL,
101
+ parent_goal_id TEXT REFERENCES user_goals(goal_id) ON DELETE SET NULL,
102
+ status TEXT NOT NULL CHECK(status IN ('proposed', 'active', 'paused', 'achieved', 'abandoned')),
103
+ scope_type TEXT NOT NULL CHECK(scope_type IN ('global', 'agent', 'workspace', 'project', 'session')),
104
+ scope_id TEXT,
105
+ declared_importance REAL CHECK(declared_importance IS NULL OR (declared_importance >= 0 AND declared_importance <= 1)),
106
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
107
+ authority TEXT NOT NULL CHECK(authority IN ('user_explicit', 'user_observed', 'system_inferred', 'external_untrusted')),
108
+ target_at INTEGER,
109
+ valid_from INTEGER,
110
+ valid_to INTEGER,
111
+ review_at INTEGER,
112
+ current_revision_id TEXT NOT NULL REFERENCES user_goal_revisions(revision_id) DEFERRABLE INITIALLY DEFERRED,
113
+ created_at INTEGER NOT NULL,
114
+ updated_at INTEGER NOT NULL
115
+ );
116
+
117
+ CREATE TABLE user_goal_revisions (
118
+ revision_id TEXT PRIMARY KEY,
119
+ goal_id TEXT NOT NULL REFERENCES user_goals(goal_id) ON DELETE CASCADE,
120
+ title TEXT NOT NULL,
121
+ desired_outcome TEXT NOT NULL,
122
+ success_criteria_json TEXT NOT NULL DEFAULT '[]' CHECK(json_valid(success_criteria_json)),
123
+ evidence_id TEXT REFERENCES context_evidence(evidence_id) ON DELETE SET NULL,
124
+ created_by TEXT NOT NULL CHECK(created_by IN ('user', 'runtime', 'connector', 'maintenance', 'migration')),
125
+ change_reason TEXT NOT NULL,
126
+ created_at INTEGER NOT NULL
127
+ );
128
+
129
+ CREATE INDEX idx_user_goals_status
130
+ ON user_goals(principal_id, status, updated_at DESC);
131
+ CREATE INDEX idx_user_goals_scope
132
+ ON user_goals(principal_id, scope_type, scope_id, status);
133
+
134
+ CREATE TABLE user_priority_windows (
135
+ priority_id TEXT PRIMARY KEY,
136
+ principal_id TEXT NOT NULL,
137
+ target_type TEXT NOT NULL CHECK(target_type IN ('goal', 'project', 'task', 'assertion', 'topic')),
138
+ target_id TEXT NOT NULL,
139
+ rank TEXT NOT NULL CHECK(rank IN ('primary', 'secondary', 'background')),
140
+ declared_importance REAL CHECK(declared_importance IS NULL OR (declared_importance >= 0 AND declared_importance <= 1)),
141
+ urgency REAL NOT NULL CHECK(urgency >= 0 AND urgency <= 1),
142
+ scope_type TEXT NOT NULL CHECK(scope_type IN ('global', 'agent', 'workspace', 'project', 'session')),
143
+ scope_id TEXT,
144
+ valid_from INTEGER NOT NULL,
145
+ valid_to INTEGER NOT NULL,
146
+ review_at INTEGER NOT NULL,
147
+ status TEXT NOT NULL CHECK(status IN ('active', 'paused', 'completed', 'expired')),
148
+ evidence_id TEXT REFERENCES context_evidence(evidence_id) ON DELETE SET NULL,
149
+ created_at INTEGER NOT NULL,
150
+ updated_at INTEGER NOT NULL,
151
+ CHECK(valid_to >= valid_from)
152
+ );
153
+
154
+ CREATE INDEX idx_user_priority_windows_active
155
+ ON user_priority_windows(principal_id, status, valid_from, valid_to);
156
+ CREATE INDEX idx_user_priority_windows_target
157
+ ON user_priority_windows(target_type, target_id, status);
158
+
159
+ CREATE TABLE knowledge_items (
160
+ knowledge_id TEXT PRIMARY KEY,
161
+ principal_id TEXT NOT NULL,
162
+ kind TEXT NOT NULL CHECK(kind IN (
163
+ 'project_fact', 'workspace_fact', 'decision', 'task_lesson',
164
+ 'commitment', 'open_question', 'episode', 'note'
165
+ )),
166
+ scope_type TEXT NOT NULL CHECK(scope_type IN ('global', 'agent', 'workspace', 'project', 'session')),
167
+ scope_id TEXT,
168
+ content TEXT NOT NULL,
169
+ canonical_key TEXT NOT NULL,
170
+ status TEXT NOT NULL CHECK(status IN ('candidate', 'active', 'needs_review', 'stale', 'archived', 'rejected')),
171
+ confidence REAL NOT NULL CHECK(confidence >= 0 AND confidence <= 1),
172
+ importance REAL NOT NULL CHECK(importance >= 0 AND importance <= 1),
173
+ valid_from INTEGER,
174
+ valid_to INTEGER,
175
+ expires_at INTEGER,
176
+ review_at INTEGER,
177
+ origin_class TEXT NOT NULL CHECK(origin_class IN ('owner', 'agent', 'system', 'untrusted')),
178
+ source_agent_id TEXT,
179
+ source_session_id TEXT,
180
+ source_turn_id TEXT,
181
+ derived_from_recalled_context INTEGER NOT NULL DEFAULT 0 CHECK(derived_from_recalled_context IN (0, 1)),
182
+ source_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(source_json)),
183
+ created_at INTEGER NOT NULL,
184
+ updated_at INTEGER NOT NULL,
185
+ CHECK(valid_to IS NULL OR valid_from IS NULL OR valid_to >= valid_from)
186
+ );
187
+
188
+ CREATE INDEX idx_knowledge_items_status
189
+ ON knowledge_items(principal_id, status, updated_at DESC);
190
+ CREATE INDEX idx_knowledge_items_scope
191
+ ON knowledge_items(principal_id, scope_type, scope_id, status);
192
+ CREATE INDEX idx_knowledge_items_lifecycle
193
+ ON knowledge_items(status, expires_at, review_at);
194
+ CREATE UNIQUE INDEX idx_knowledge_items_canonical
195
+ ON knowledge_items(principal_id, canonical_key, scope_type, COALESCE(scope_id, ''))
196
+ WHERE status IN ('candidate', 'active', 'needs_review', 'stale');
197
+
198
+ CREATE VIRTUAL TABLE knowledge_items_fts USING fts5(
199
+ content,
200
+ knowledge_id UNINDEXED,
201
+ tokenize='unicode61'
202
+ );
203
+
204
+ CREATE TABLE memory_maintenance_runs (
205
+ run_id TEXT PRIMARY KEY,
206
+ principal_id TEXT NOT NULL,
207
+ job_type TEXT NOT NULL CHECK(job_type IN ('temporal_sweep', 'daily_reconciliation', 'weekly_knowledge', 'manual_repair')),
208
+ idempotency_key TEXT NOT NULL UNIQUE,
209
+ algorithm_version TEXT NOT NULL,
210
+ config_snapshot_json TEXT NOT NULL CHECK(json_valid(config_snapshot_json)),
211
+ status TEXT NOT NULL CHECK(status IN ('running', 'completed', 'failed')),
212
+ cursor_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(cursor_json)),
213
+ metrics_json TEXT NOT NULL DEFAULT '{}' CHECK(json_valid(metrics_json)),
214
+ error_message TEXT,
215
+ started_at INTEGER NOT NULL,
216
+ finished_at INTEGER
217
+ );
218
+
219
+ CREATE INDEX idx_memory_maintenance_runs_principal
220
+ ON memory_maintenance_runs(principal_id, started_at DESC);
221
+
222
+ CREATE TABLE memory_maintenance_decisions (
223
+ decision_id TEXT PRIMARY KEY,
224
+ run_id TEXT NOT NULL REFERENCES memory_maintenance_runs(run_id) ON DELETE CASCADE,
225
+ object_type TEXT NOT NULL CHECK(object_type IN ('assertion', 'goal', 'priority', 'knowledge', 'evidence', 'index')),
226
+ object_id TEXT NOT NULL,
227
+ action TEXT NOT NULL,
228
+ reason TEXT NOT NULL,
229
+ before_json TEXT,
230
+ after_json TEXT,
231
+ created_at INTEGER NOT NULL
232
+ );
233
+
234
+ CREATE INDEX idx_memory_maintenance_decisions_run
235
+ ON memory_maintenance_decisions(run_id, created_at);
236
+
237
+ CREATE TABLE execution_context_runs (
238
+ run_id TEXT PRIMARY KEY,
239
+ principal_id TEXT NOT NULL,
240
+ turn_id TEXT NOT NULL UNIQUE,
241
+ session_id TEXT NOT NULL,
242
+ query_hash TEXT NOT NULL,
243
+ as_of INTEGER NOT NULL,
244
+ budget_json TEXT NOT NULL CHECK(json_valid(budget_json)),
245
+ metrics_json TEXT NOT NULL CHECK(json_valid(metrics_json)),
246
+ created_at INTEGER NOT NULL
247
+ );
248
+
249
+ CREATE TABLE execution_context_items (
250
+ run_id TEXT NOT NULL REFERENCES execution_context_runs(run_id) ON DELETE CASCADE,
251
+ object_type TEXT NOT NULL CHECK(object_type IN ('rule', 'assertion', 'goal', 'priority', 'knowledge')),
252
+ object_id TEXT NOT NULL,
253
+ score REAL,
254
+ reasons_json TEXT NOT NULL DEFAULT '[]' CHECK(json_valid(reasons_json)),
255
+ included INTEGER NOT NULL CHECK(included IN (0, 1)),
256
+ created_at INTEGER NOT NULL,
257
+ PRIMARY KEY(run_id, object_type, object_id)
258
+ );
259
+
260
+ CREATE TABLE execution_context_feedback (
261
+ turn_id TEXT PRIMARY KEY REFERENCES execution_context_runs(turn_id) ON DELETE CASCADE,
262
+ rating TEXT NOT NULL CHECK(rating IN ('helpful', 'irrelevant')),
263
+ reason TEXT,
264
+ created_at INTEGER NOT NULL,
265
+ updated_at INTEGER NOT NULL
266
+ );
267
+
268
+ -- One-way data cutover. Runtime code after this migration reads only the new domains.
269
+ CREATE TEMP TABLE migrated_profile_facts (
270
+ assertion_id TEXT PRIMARY KEY,
271
+ principal_id TEXT NOT NULL,
272
+ predicate TEXT NOT NULL,
273
+ kind TEXT NOT NULL,
274
+ statement TEXT NOT NULL,
275
+ observed_at INTEGER NOT NULL,
276
+ created_at INTEGER NOT NULL
277
+ );
278
+
279
+ INSERT INTO migrated_profile_facts
280
+ SELECT 'profile-call-name-' || principal_id, principal_id, 'identity.call_name', 'identity', call_name, updated_at, created_at
281
+ FROM user_profiles WHERE trim(call_name) <> ''
282
+ UNION ALL
283
+ SELECT 'profile-pronouns-' || principal_id, principal_id, 'identity.pronouns', 'identity', pronouns, updated_at, created_at
284
+ FROM user_profiles WHERE trim(pronouns) <> ''
285
+ UNION ALL
286
+ SELECT 'profile-timezone-' || principal_id, principal_id, 'preference.timezone', 'preference', timezone, updated_at, created_at
287
+ FROM user_profiles WHERE trim(timezone) <> ''
288
+ UNION ALL
289
+ SELECT 'profile-locale-' || principal_id, principal_id, 'preference.locale', 'preference', locale, updated_at, created_at
290
+ FROM user_profiles WHERE trim(locale) <> ''
291
+ UNION ALL
292
+ SELECT 'profile-role-' || principal_id, principal_id, 'identity.role', 'identity', role, updated_at, created_at
293
+ FROM user_profiles WHERE trim(role) <> '';
294
+
295
+ INSERT INTO user_assertion_slots (
296
+ slot_id, principal_id, subject_type, subject_id, predicate, cardinality,
297
+ scope_type, scope_id, created_at
298
+ )
299
+ SELECT 'slot-' || assertion_id, principal_id, 'user', 'self', predicate, 'single',
300
+ 'global', NULL, created_at
301
+ FROM migrated_profile_facts;
302
+
303
+ INSERT INTO user_assertions (
304
+ assertion_id, slot_id, kind, value_json, normalized_value, statement,
305
+ authority, status, confidence, declared_importance, inferred_importance,
306
+ consequence, actionability, volatility, sensitivity, disclosure_policy,
307
+ applicability_json, observed_at, recorded_at, created_by, created_at
308
+ )
309
+ SELECT assertion_id, 'slot-' || assertion_id, kind, json_quote(statement),
310
+ lower(trim(statement)), statement, 'user_explicit', 'active', 1.0, 0.8, 0.8,
311
+ 'medium', 0.8, 'stable', 'personal', 'referenceable', '{}', observed_at,
312
+ observed_at, 'migration', created_at
313
+ FROM migrated_profile_facts;
314
+
315
+ INSERT INTO user_assertion_slots (
316
+ slot_id, principal_id, subject_type, subject_id, predicate, cardinality,
317
+ scope_type, scope_id, created_at
318
+ )
319
+ SELECT
320
+ 'migrated-slot-' || u.understanding_id, u.principal_id,
321
+ CASE WHEN u.kind = 'relationship' THEN 'person' ELSE 'user' END,
322
+ CASE WHEN u.kind = 'relationship' THEN u.understanding_id ELSE 'self' END,
323
+ 'imported.' || u.kind || '.' || u.understanding_id,
324
+ 'single', u.scope_type, u.scope_id, u.created_at
325
+ FROM user_understandings u
326
+ WHERE u.kind NOT IN ('boundary', 'long_term_goal', 'project_context', 'task_lesson');
327
+
328
+ INSERT INTO user_assertions (
329
+ assertion_id, slot_id, kind, value_json, normalized_value, statement,
330
+ authority, status, confidence, declared_importance, inferred_importance,
331
+ consequence, actionability, volatility, sensitivity, disclosure_policy,
332
+ applicability_json, valid_from, valid_to, observed_at, recorded_at, review_at,
333
+ supersedes_assertion_id, created_by, created_at
334
+ )
335
+ SELECT
336
+ u.understanding_id, 'migrated-slot-' || u.understanding_id,
337
+ CASE u.kind
338
+ WHEN 'preference' THEN 'preference'
339
+ WHEN 'relationship' THEN 'relationship'
340
+ WHEN 'routine' THEN 'routine'
341
+ WHEN 'current_state' THEN 'current_state'
342
+ ELSE 'derived_insight'
343
+ END,
344
+ json_quote(v.statement), lower(trim(v.statement)), v.statement,
345
+ CASE u.explicitness WHEN 'explicit' THEN 'user_explicit'
346
+ WHEN 'observed' THEN 'user_observed' ELSE 'system_inferred' END,
347
+ u.status, u.confidence, NULL,
348
+ CASE WHEN u.explicitness = 'explicit' THEN 0.7 ELSE 0.5 END,
349
+ 'medium', 0.5,
350
+ CASE u.kind WHEN 'current_state' THEN 'event' WHEN 'routine' THEN 'slow' ELSE 'stable' END,
351
+ u.sensitivity, u.disclosure_policy, v.payload_json,
352
+ u.valid_from, COALESCE(u.valid_to, u.expires_at), u.updated_at, u.updated_at,
353
+ u.review_at,
354
+ CASE WHEN EXISTS (
355
+ SELECT 1 FROM user_understandings prior
356
+ WHERE prior.understanding_id = u.supersedes_id
357
+ AND prior.kind NOT IN ('boundary', 'long_term_goal', 'project_context', 'task_lesson')
358
+ ) THEN u.supersedes_id ELSE NULL END,
359
+ CASE v.created_by WHEN 'user' THEN 'user' WHEN 'connector' THEN 'connector'
360
+ WHEN 'consolidation' THEN 'maintenance' ELSE 'runtime' END,
361
+ u.created_at
362
+ FROM user_understandings u
363
+ JOIN user_understanding_versions v ON v.version_id = u.current_version_id
364
+ WHERE u.kind NOT IN ('boundary', 'long_term_goal', 'project_context', 'task_lesson');
365
+
366
+ INSERT INTO user_assertions_fts(statement, assertion_id, slot_id)
367
+ SELECT statement, assertion_id, slot_id FROM user_assertions;
368
+
369
+ INSERT OR IGNORE INTO user_assertion_evidence (
370
+ assertion_id, evidence_id, relation, confidence, created_at
371
+ )
372
+ SELECT v.understanding_id, l.evidence_id, l.relation, l.confidence, e.created_at
373
+ FROM understanding_evidence_links l
374
+ JOIN user_understanding_versions v ON v.version_id = l.version_id
375
+ JOIN context_evidence e ON e.evidence_id = l.evidence_id
376
+ WHERE EXISTS (SELECT 1 FROM user_assertions a WHERE a.assertion_id = v.understanding_id);
377
+
378
+ INSERT INTO user_assertion_status_events (
379
+ event_id, assertion_id, from_status, to_status, actor_type, reason, created_at
380
+ )
381
+ SELECT lower(hex(randomblob(16))), assertion_id, NULL, status, 'migration',
382
+ 'Imported during user-model cutover.', created_at
383
+ FROM user_assertions;
384
+
385
+ INSERT INTO collaboration_rules (
386
+ rule_id, principal_id, category, status, priority, scope_type, scope_id,
387
+ conditions_json, current_revision_id, created_at, updated_at
388
+ )
389
+ SELECT
390
+ 'migrated-boundary-' || u.understanding_id, u.principal_id, 'boundary',
391
+ CASE WHEN u.status = 'active' AND u.explicitness = 'explicit' THEN 'active' ELSE 'disabled' END,
392
+ 50, u.scope_type, u.scope_id, json_object('enforcementLevel', 'planner'),
393
+ 'migrated-boundary-revision-' || u.understanding_id, u.created_at, u.updated_at
394
+ FROM user_understandings u WHERE u.kind = 'boundary';
395
+
396
+ INSERT INTO collaboration_rule_revisions (
397
+ revision_id, rule_id, statement, created_by, created_at
398
+ )
399
+ SELECT 'migrated-boundary-revision-' || u.understanding_id,
400
+ 'migrated-boundary-' || u.understanding_id, v.statement, 'user', v.created_at
401
+ FROM user_understandings u
402
+ JOIN user_understanding_versions v ON v.version_id = u.current_version_id
403
+ WHERE u.kind = 'boundary';
404
+
405
+ INSERT INTO user_goals (
406
+ goal_id, principal_id, status, scope_type, scope_id, declared_importance,
407
+ confidence, authority, target_at, valid_from, valid_to, review_at,
408
+ current_revision_id, created_at, updated_at
409
+ )
410
+ SELECT
411
+ 'understanding-goal-' || u.understanding_id, u.principal_id,
412
+ CASE u.status WHEN 'active' THEN 'active' WHEN 'archived' THEN 'abandoned'
413
+ WHEN 'rejected' THEN 'abandoned' ELSE 'proposed' END,
414
+ u.scope_type, u.scope_id, CASE WHEN u.explicitness = 'explicit' THEN 0.7 ELSE NULL END,
415
+ u.confidence,
416
+ CASE u.explicitness WHEN 'explicit' THEN 'user_explicit'
417
+ WHEN 'observed' THEN 'user_observed' ELSE 'system_inferred' END,
418
+ u.valid_to, u.valid_from, u.valid_to, u.review_at,
419
+ 'understanding-goal-revision-' || u.understanding_id, u.created_at, u.updated_at
420
+ FROM user_understandings u WHERE u.kind = 'long_term_goal';
421
+
422
+ INSERT INTO user_goal_revisions (
423
+ revision_id, goal_id, title, desired_outcome, evidence_id, created_by, change_reason, created_at
424
+ )
425
+ SELECT 'understanding-goal-revision-' || u.understanding_id,
426
+ 'understanding-goal-' || u.understanding_id, v.statement, v.statement,
427
+ (SELECT l.evidence_id FROM understanding_evidence_links l
428
+ WHERE l.version_id = v.version_id AND l.relation = 'supports' LIMIT 1),
429
+ CASE WHEN u.explicitness = 'explicit' THEN 'user' ELSE 'migration' END,
430
+ 'Imported during user-model cutover.', v.created_at
431
+ FROM user_understandings u
432
+ JOIN user_understanding_versions v ON v.version_id = u.current_version_id
433
+ WHERE u.kind = 'long_term_goal';
434
+
435
+ INSERT INTO user_goals (
436
+ goal_id, principal_id, status, scope_type, scope_id, declared_importance,
437
+ confidence, authority, valid_from, valid_to, review_at, current_revision_id,
438
+ created_at, updated_at
439
+ )
440
+ SELECT
441
+ 'focus-goal-' || f.focus_id, f.principal_id,
442
+ CASE f.status WHEN 'active' THEN 'active' WHEN 'paused' THEN 'paused'
443
+ WHEN 'completed' THEN 'achieved' WHEN 'rejected' THEN 'abandoned' ELSE 'proposed' END,
444
+ f.scope_type, f.scope_id, CASE WHEN f.explicitness = 'explicit' THEN 0.8 ELSE NULL END,
445
+ f.confidence,
446
+ CASE f.explicitness WHEN 'explicit' THEN 'user_explicit'
447
+ WHEN 'observed' THEN 'user_observed' ELSE 'system_inferred' END,
448
+ f.valid_from, f.valid_to, f.review_at, 'focus-goal-revision-' || f.focus_id,
449
+ f.created_at, f.updated_at
450
+ FROM user_focuses f;
451
+
452
+ INSERT INTO user_goal_revisions (
453
+ revision_id, goal_id, title, desired_outcome, evidence_id, created_by, change_reason, created_at
454
+ )
455
+ SELECT 'focus-goal-revision-' || f.focus_id, 'focus-goal-' || f.focus_id,
456
+ f.title, f.summary,
457
+ (SELECT l.evidence_id FROM user_focus_evidence_links l
458
+ WHERE l.version_id = f.current_version_id AND l.relation = 'supports' LIMIT 1),
459
+ CASE WHEN f.explicitness = 'explicit' THEN 'user' ELSE 'migration' END,
460
+ 'Imported during user-model cutover.', f.created_at
461
+ FROM user_focuses f;
462
+
463
+ INSERT INTO user_priority_windows (
464
+ priority_id, principal_id, target_type, target_id, rank, declared_importance,
465
+ urgency, scope_type, scope_id, valid_from, valid_to, review_at, status,
466
+ created_at, updated_at
467
+ )
468
+ SELECT
469
+ 'focus-priority-' || f.focus_id, f.principal_id, 'goal', 'focus-goal-' || f.focus_id,
470
+ CASE f.horizon WHEN 'current' THEN 'primary' WHEN 'ongoing' THEN 'secondary' ELSE 'background' END,
471
+ CASE WHEN f.explicitness = 'explicit' THEN 0.8 ELSE NULL END,
472
+ CASE f.horizon WHEN 'current' THEN 0.9 WHEN 'ongoing' THEN 0.5 ELSE 0.2 END,
473
+ f.scope_type, f.scope_id, COALESCE(f.valid_from, f.created_at),
474
+ COALESCE(f.valid_to, f.review_at, f.updated_at + 2592000000),
475
+ COALESCE(f.review_at, f.updated_at + 604800000),
476
+ CASE f.status WHEN 'active' THEN 'active' WHEN 'completed' THEN 'completed' ELSE 'paused' END,
477
+ f.created_at, f.updated_at
478
+ FROM user_focuses f;
479
+
480
+ INSERT OR IGNORE INTO knowledge_items (
481
+ knowledge_id, principal_id, kind, scope_type, scope_id, content, canonical_key,
482
+ status, confidence, importance, valid_from, valid_to, expires_at, review_at,
483
+ origin_class, source_agent_id, source_session_id, source_turn_id,
484
+ derived_from_recalled_context, source_json, created_at, updated_at
485
+ )
486
+ SELECT
487
+ r.record_id, COALESCE(r.user_id, 'local-owner'),
488
+ CASE r.kind WHEN 'workspace_fact' THEN 'workspace_fact'
489
+ WHEN 'project_context' THEN 'project_fact' WHEN 'task_lesson' THEN 'task_lesson'
490
+ WHEN 'decision' THEN 'decision' WHEN 'commitment' THEN 'commitment'
491
+ WHEN 'open_question' THEN 'open_question' WHEN 'episode' THEN 'episode' ELSE 'note' END,
492
+ CASE WHEN r.project_id IS NOT NULL THEN 'project' WHEN r.session_key IS NOT NULL THEN 'session'
493
+ WHEN r.workspace_id IS NOT NULL THEN 'workspace' WHEN r.source_agent_id IS NOT NULL THEN 'agent'
494
+ ELSE 'global' END,
495
+ COALESCE(r.project_id, r.session_key, r.workspace_id, r.source_agent_id),
496
+ r.content, COALESCE(r.canonical_key, 'record:' || r.record_id),
497
+ CASE WHEN r.status IN ('candidate', 'active', 'stale', 'archived', 'rejected') THEN r.status
498
+ ELSE 'needs_review' END,
499
+ COALESCE(r.confidence, 0.5), COALESCE(r.importance, 0.5), r.valid_from, r.valid_to,
500
+ r.expires_at, r.review_after,
501
+ CASE WHEN r.origin_class IN ('owner', 'agent', 'system', 'untrusted') THEN r.origin_class
502
+ WHEN r.explicitness = 'explicit' THEN 'owner' ELSE 'agent' END,
503
+ r.source_agent_id, COALESCE(r.source_session_id, r.session_key), r.source_turn_id,
504
+ r.derived_from_recalled_context, r.source_json, r.created_at, r.updated_at
505
+ FROM memory_records r;
506
+
507
+ INSERT OR IGNORE INTO knowledge_items (
508
+ knowledge_id, principal_id, kind, scope_type, scope_id, content, canonical_key,
509
+ status, confidence, importance, valid_from, valid_to, expires_at, review_at,
510
+ origin_class, source_json, created_at, updated_at
511
+ )
512
+ SELECT
513
+ 'understanding-knowledge-' || u.understanding_id, u.principal_id,
514
+ CASE u.kind WHEN 'project_context' THEN 'project_fact' ELSE 'task_lesson' END,
515
+ u.scope_type, u.scope_id, v.statement, u.canonical_key,
516
+ u.status, u.confidence, CASE WHEN u.explicitness = 'explicit' THEN 0.7 ELSE 0.5 END,
517
+ u.valid_from, u.valid_to, u.expires_at, u.review_at,
518
+ CASE WHEN u.explicitness = 'explicit' THEN 'owner' ELSE 'agent' END,
519
+ v.payload_json, u.created_at, u.updated_at
520
+ FROM user_understandings u
521
+ JOIN user_understanding_versions v ON v.version_id = u.current_version_id
522
+ WHERE u.kind IN ('project_context', 'task_lesson');
523
+
524
+ INSERT INTO knowledge_items_fts(content, knowledge_id)
525
+ SELECT content, knowledge_id FROM knowledge_items;
526
+
527
+ DROP TABLE migrated_profile_facts;
528
+ DROP TABLE IF EXISTS understanding_focus_exclusions;
529
+ DROP TABLE IF EXISTS user_focus_evidence_links;
530
+ DROP TABLE IF EXISTS user_focus_versions;
531
+ DROP TABLE IF EXISTS understanding_evidence_links;
532
+ DROP TABLE IF EXISTS understanding_status_events;
533
+ DROP TABLE IF EXISTS context_temporal_assertions;
534
+ DROP TABLE IF EXISTS context_object_relations;
535
+ DROP TABLE IF EXISTS context_consolidation_decisions;
536
+ DROP TABLE IF EXISTS context_consolidation_runs;
537
+ DROP TABLE IF EXISTS user_understanding_fts;
538
+ DROP TABLE IF EXISTS user_understanding_versions;
539
+ DROP TABLE IF EXISTS user_understandings;
540
+ DROP TABLE IF EXISTS user_focuses;
541
+ DROP TABLE IF EXISTS user_profiles;
542
+ DROP TABLE IF EXISTS context_feedback;
543
+ DROP TABLE IF EXISTS context_run_items;
544
+ DROP TABLE IF EXISTS context_runs;
545
+ DROP TABLE IF EXISTS context_consents;
546
+ DROP TABLE IF EXISTS context_suppressions;
547
+ DROP TABLE IF EXISTS memory_feedback;
548
+ DROP TABLE IF EXISTS memory_trace_events;
549
+ DROP TABLE IF EXISTS memory_reference_consents;
550
+ DROP TABLE IF EXISTS memory_signals;
551
+ DROP TABLE IF EXISTS memory_evidence;
552
+ DROP TABLE IF EXISTS memory_records_fts;
553
+ DROP TABLE IF EXISTS memory_records;
554
+ DROP TABLE IF EXISTS memory_provider_state;
@@ -0,0 +1,18 @@
1
+ ALTER TABLE knowledge_items
2
+ ADD COLUMN record_class TEXT NOT NULL DEFAULT 'memory'
3
+ CHECK(record_class IN ('memory', 'source_index'));
4
+
5
+ UPDATE knowledge_items
6
+ SET record_class = 'source_index'
7
+ WHERE canonical_key LIKE 'source-item:%';
8
+
9
+ DELETE FROM knowledge_items_fts
10
+ WHERE knowledge_id IN (
11
+ SELECT knowledge_id FROM knowledge_items WHERE canonical_key LIKE 'source-day:%'
12
+ );
13
+
14
+ DELETE FROM knowledge_items
15
+ WHERE canonical_key LIKE 'source-day:%';
16
+
17
+ CREATE INDEX idx_knowledge_items_class_status
18
+ ON knowledge_items(principal_id, record_class, status, updated_at DESC);
@@ -0,0 +1,47 @@
1
+ CREATE TABLE session_inputs_v150 (
2
+ id TEXT PRIMARY KEY,
3
+ session_key TEXT NOT NULL,
4
+ client_message_id TEXT NOT NULL,
5
+ requested_delivery TEXT NOT NULL CHECK (requested_delivery IN ('next', 'steer')),
6
+ effective_delivery TEXT NOT NULL CHECK (effective_delivery IN ('next', 'steer')),
7
+ status TEXT NOT NULL CHECK (status IN (
8
+ 'queued', 'running', 'injecting',
9
+ 'completed', 'cancelled', 'failed', 'interrupted', 'suspended'
10
+ )),
11
+ content TEXT NOT NULL,
12
+ attachments_json TEXT,
13
+ thinking TEXT,
14
+ origin_json TEXT NOT NULL,
15
+ position INTEGER NOT NULL,
16
+ target_run_id TEXT,
17
+ run_id TEXT,
18
+ version INTEGER NOT NULL DEFAULT 1,
19
+ error TEXT,
20
+ created_at_ms INTEGER NOT NULL,
21
+ updated_at_ms INTEGER NOT NULL,
22
+ expected_session_id TEXT,
23
+ context_refs_json TEXT,
24
+ context_snapshots_json TEXT,
25
+ kind TEXT NOT NULL DEFAULT 'message' CHECK (kind IN ('message', 'connection_resume')),
26
+ payload_json TEXT,
27
+ task_run_id TEXT,
28
+ UNIQUE(session_key, client_message_id)
29
+ );
30
+
31
+ INSERT INTO session_inputs_v150 (id,session_key,client_message_id,requested_delivery,effective_delivery,status,content,attachments_json,thinking,origin_json,position,target_run_id,run_id,version,error,created_at_ms,updated_at_ms,expected_session_id,context_refs_json,context_snapshots_json) SELECT id,session_key,client_message_id,requested_delivery,effective_delivery,status,content,attachments_json,thinking,origin_json,position,target_run_id,run_id,version,error,created_at_ms,updated_at_ms,expected_session_id,context_refs_json,context_snapshots_json FROM session_inputs;
32
+ DROP TABLE session_inputs;
33
+ ALTER TABLE session_inputs_v150 RENAME TO session_inputs;
34
+ CREATE INDEX idx_session_inputs_pending ON session_inputs(session_key,status,position,created_at_ms);
35
+
36
+ CREATE TABLE session_connection_waits (
37
+ id TEXT PRIMARY KEY,
38
+ principal_id TEXT NOT NULL,
39
+ session_key TEXT NOT NULL,
40
+ session_id TEXT NOT NULL,
41
+ status TEXT NOT NULL CHECK (status IN ('open','queued','closed')),
42
+ version INTEGER NOT NULL,
43
+ data_json TEXT NOT NULL
44
+ );
45
+ CREATE UNIQUE INDEX idx_connection_wait_active ON session_connection_waits(principal_id,session_id)
46
+ WHERE status IN ('open','queued');
47
+ CREATE INDEX idx_connection_wait_session ON session_connection_waits(session_key);
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
3
3
  /** Baseline schema version applied from schema.sql on first open. */
4
4
  export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
5
5
  /** Latest schema version this release supports (increment when adding migrations). */
6
- export declare const XOPC_DB_SCHEMA_VERSION = 145;
6
+ export declare const XOPC_DB_SCHEMA_VERSION = 150;
7
7
  export declare function resolveMigrationsDir(override?: string): string;
8
8
  /**
9
9
  * Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
@@ -12,7 +12,7 @@ const log = createLogger("Sqlite:Migrations");
12
12
  /** Baseline schema version applied from schema.sql on first open. */
13
13
  const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
14
14
  /** Latest schema version this release supports (increment when adding migrations). */
15
- const XOPC_DB_SCHEMA_VERSION = 145;
15
+ const XOPC_DB_SCHEMA_VERSION = 150;
16
16
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
17
17
  function backupBeforeTaskCutover(db, databasePath) {
18
18
  db.exec("PRAGMA wal_checkpoint(FULL)");
@@ -57,7 +57,7 @@ function applySingleMigration(db, migration) {
57
57
  * Each step runs in its own transaction and updates schema_meta on success.
58
58
  */
59
59
  function applyPendingMigrations(db, options = {}) {
60
- const targetVersion = options.targetVersion ?? 145;
60
+ const targetVersion = options.targetVersion ?? 150;
61
61
  let currentVersion = readSchemaVersion(db);
62
62
  if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
63
63
  if (currentVersion >= targetVersion) return currentVersion;
@@ -94,7 +94,7 @@ function applyPendingMigrations(db, options = {}) {
94
94
  }
95
95
  /** Inspect schema version without mutating the database. */
96
96
  function inspectSchemaMigrationStatus(db, options = {}) {
97
- const appVersion = options.targetVersion ?? 145;
97
+ const appVersion = options.targetVersion ?? 150;
98
98
  const dbVersion = readSchemaVersion(db);
99
99
  if (dbVersion > appVersion) return {
100
100
  dbVersion,
@@ -19,7 +19,7 @@ const log = createLogger('Sqlite:Migrations');
19
19
  export const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
20
20
 
21
21
  /** Latest schema version this release supports (increment when adding migrations). */
22
- export const XOPC_DB_SCHEMA_VERSION = 145;
22
+ export const XOPC_DB_SCHEMA_VERSION = 150;
23
23
 
24
24
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
25
25