@xopcai/xopc 0.0.180 → 0.0.187

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 (762) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{activity-store-DFKtQDgE.js → activity-store-WlR2zEvA.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CcTvB_4W.js → agent-avatar-dicebear-RedDszrG.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +2 -0
  8. package/dist/gateway/static/root/assets/{api-CUClAvuL.js → api-tVOllncq.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-Ib-cWKHM.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-CRSN8WuA.js → appearance-settings-5cQvq7hd.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-BBF9zspN.js → archive-plugin-Ct-shK4n.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-D3QQfA7w.js → attachment-load-CpPj3m-q.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-D78XOjJ3.js → binary-plugins-BpSXZBle.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-D_VVXlYX.js → block-editor-B8hR2tXc.js} +46 -46
  17. package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +8 -0
  18. package/dist/gateway/static/root/assets/browser-workflow-inputs-D_LAXUrh.js +1 -0
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-58DBMXgG.js → browser-workflows-page-CPAs7-6s.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +7 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-CKklVY2p.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +1 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-DYtoNV5A.js → channel-recipient-api-WWN-nbFL.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-logo-CxIXnifA.js → connector-logo-CdNkVFdB.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +2 -0
  28. package/dist/gateway/static/root/assets/desktop-pet-Bm_IEAf3.js +1 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-BOIp4q0Z.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8_lsW6S.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-debug-page-CMNnSJP6.js → extension-debug-page-DNashgGu.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-t0pJqLvM.js → extension-page-Bvo-5htX.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-aiR-tKnW.js → extension-settings-page-BBESdISV.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-CkyQBD6r.js → gateway-config-api-ClQvokMo.js} +1 -1
  35. package/dist/gateway/static/root/assets/{gateway-settings-BIZfAgfB.js → gateway-settings-CIRs2QVy.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CSU7UvzG.js → gateway-startup-retry-CntXJF6W.js} +1 -1
  37. package/dist/gateway/static/root/assets/heartbeat-settings-CWKcZuvc.js +1 -0
  38. package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +3 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-BR6Kb77X.js → image-generation-api-DjSAQwGy.js} +1 -1
  40. package/dist/gateway/static/root/assets/index-D-YfWVyS.css +1 -0
  41. package/dist/gateway/static/root/assets/index-vi5KlR5_.js +222 -0
  42. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D76uYKeQ.js → keyboard-shortcuts-settings-ahKHpjoW.js} +1 -1
  43. package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +2 -0
  44. package/dist/gateway/static/root/assets/{local-apps-page-BsLnojTh.js → local-apps-page-B6GKdgza.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-BNC8HUCI.js → locale-store-Bff30u5V.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +7 -0
  47. package/dist/gateway/static/root/assets/{markdown-split-D6smTQWD.js → markdown-split-BeNMJm_i.js} +1 -1
  48. package/dist/gateway/static/root/assets/{media-plugins-D1TmMF0A.js → media-plugins-Bdzrj_-6.js} +1 -1
  49. package/dist/gateway/static/root/assets/messages-CPxz48hr.js +3 -0
  50. package/dist/gateway/static/root/assets/{notes-page-Vt-diFf0.js → notes-page-MYIi-9S9.js} +1 -1
  51. package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +4 -0
  52. package/dist/gateway/static/root/assets/{page-tabs-BnSzIjH0.js → page-tabs-3t88bbGx.js} +1 -1
  53. package/dist/gateway/static/root/assets/{preview-open-alternatives-CF12Eqi4.js → preview-open-alternatives-Cf_BWbeE.js} +1 -1
  54. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
  55. package/dist/gateway/static/root/assets/{product-open-page-Du0TE_CU.js → product-open-page-CKq73c98.js} +1 -1
  56. package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +1 -0
  57. package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +1 -0
  58. package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +1 -0
  59. package/dist/gateway/static/root/assets/{schema-form-BKvpxqof.js → schema-form-NqOm-OG1.js} +1 -1
  60. package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +1 -0
  61. package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +1 -0
  62. package/dist/gateway/static/root/assets/{settings-form-section-kt6GIS32.js → settings-form-section-DYAS8p8z.js} +1 -1
  63. package/dist/gateway/static/root/assets/{settings-loading-skeleton-85eUPcKz.js → settings-loading-skeleton-DZFhxihA.js} +1 -1
  64. package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +1 -0
  65. package/dist/gateway/static/root/assets/{settings-page-layout-CkkCee_x.js → settings-page-layout-DfFfkdED.js} +1 -1
  66. package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +1 -0
  67. package/dist/gateway/static/root/assets/{share-preview-page-BtLEstaI.js → share-preview-page-CYtrQaZN.js} +1 -1
  68. package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +1 -0
  69. package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +1 -0
  70. package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +2 -0
  71. package/dist/gateway/static/root/assets/{skills-page.utils-C2SHvq8V.js → skills-page.utils-BBXirAjc.js} +1 -1
  72. package/dist/gateway/static/root/assets/system-settings-panel-DLf5YvFl.js +1 -0
  73. package/dist/gateway/static/root/assets/task-detail-page-DFGkuYfl.js +1 -0
  74. package/dist/gateway/static/root/assets/{theme-store-ClDa_Bci.js → theme-store-y7e_tvYi.js} +1 -1
  75. package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +1 -0
  76. package/dist/gateway/static/root/assets/{typed-models-lib-GsmwmB40.js → typed-models-lib-DR12j_dr.js} +1 -1
  77. package/dist/gateway/static/root/assets/use-save-bar-registration-BsvcJgZl.js +1 -0
  78. package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +1 -0
  79. package/dist/gateway/static/root/assets/{voice-api-key-field-Blaxsbb3.js → voice-api-key-field-DKADXFWD.js} +1 -1
  80. package/dist/gateway/static/root/assets/work-discovery-overlay-BC1nExf8.js +1 -0
  81. package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +1 -0
  82. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTG4RpRE.js → workflow-run-setup-panel-C8X5W-8k.js} +2 -2
  83. package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +11 -0
  84. package/dist/gateway/static/root/index.html +8 -8
  85. package/dist/package.js +1 -1
  86. package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
  87. package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
  88. package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
  89. package/dist/packages/gateway-contract/src/task-runs.js +80 -0
  90. package/dist/packages/gateway-contract/src/tasks.js +353 -0
  91. package/dist/src/activity/types.d.ts +2 -2
  92. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  93. package/dist/src/agent/agent-manager.d.ts +3 -3
  94. package/dist/src/agent/agent-manager.js +23 -22
  95. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  96. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  97. package/dist/src/agent/child-agent-factory.js +4 -10
  98. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  99. package/dist/src/agent/context/execution-scope.js +17 -20
  100. package/dist/src/agent/context/project-context.d.ts +6 -2
  101. package/dist/src/agent/context/project-context.js +17 -25
  102. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  103. package/dist/src/agent/embedded/model-runtime.js +1 -1
  104. package/dist/src/agent/embedded/run-turn.js +2 -0
  105. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  106. package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
  107. package/dist/src/agent/image/tool-model-config.js +1 -1
  108. package/dist/src/agent/inbound/inbound-loop.js +1 -1
  109. package/dist/src/agent/inbound/turn-dispatcher.js +1 -1
  110. package/dist/src/agent/ipc/inbox.js +1 -1
  111. package/dist/src/agent/lifecycle/progress.js +0 -1
  112. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +3 -5
  113. package/dist/src/agent/mcp/bundle-mcp-policy.js +8 -5
  114. package/dist/src/agent/mcp/index.js +2 -2
  115. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +5 -6
  116. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  117. package/dist/src/agent/memory/builtin-provider.js +75 -229
  118. package/dist/src/agent/memory/compaction.js +1 -1
  119. package/dist/src/agent/memory/context/planner.d.ts +3 -0
  120. package/dist/src/agent/memory/context/planner.js +32 -11
  121. package/dist/src/agent/memory/context/types.d.ts +6 -0
  122. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  123. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  124. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  125. package/dist/src/agent/memory/dreaming/config.js +47 -40
  126. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  127. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  128. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  129. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  130. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  131. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  132. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  133. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  134. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  135. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  136. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  137. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  138. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  139. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  140. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  141. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  142. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  143. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  144. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  145. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  146. package/dist/src/agent/memory/index.d.ts +1 -3
  147. package/dist/src/agent/memory/index.js +2 -3
  148. package/dist/src/agent/memory/manager.d.ts +1 -5
  149. package/dist/src/agent/memory/manager.js +1 -27
  150. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  151. package/dist/src/agent/memory/memory-config.js +2 -23
  152. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  153. package/dist/src/agent/memory/types.d.ts +5 -48
  154. package/dist/src/agent/memory/understanding/service.js +1 -2
  155. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  156. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  157. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  158. package/dist/src/agent/messaging/command-handler.js +0 -8
  159. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  160. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  161. package/dist/src/agent/middleware/index.d.ts +1 -1
  162. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  163. package/dist/src/agent/middleware/self-verify.js +7 -7
  164. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -66
  165. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  166. package/dist/src/agent/prompt/response-language.js +11 -0
  167. package/dist/src/agent/prompt/sections/behavior.js +2 -2
  168. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  169. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  170. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  171. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  172. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  173. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  174. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  175. package/dist/src/agent/prompt/subagent-context.js +1 -0
  176. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  177. package/dist/src/agent/prompt/system-prompt.js +10 -2
  178. package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -2
  179. package/dist/src/agent/service/direct-turn-helpers.js +8 -5
  180. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  181. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  182. package/dist/src/agent/service.d.ts +6 -9
  183. package/dist/src/agent/service.js +31 -25
  184. package/dist/src/agent/service.types.d.ts +2 -15
  185. package/dist/src/agent/session/index.d.ts +1 -1
  186. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  187. package/dist/src/agent/session/session-config-service.js +14 -0
  188. package/dist/src/agent/session/session-inspector.js +1 -1
  189. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  190. package/dist/src/agent/session/session-state-bag.js +10 -10
  191. package/dist/src/agent/skills/hub-lock.js +1 -1
  192. package/dist/src/agent/source-context/types.d.ts +1 -1
  193. package/dist/src/agent/source-context/types.js +1 -1
  194. package/dist/src/agent/starter-agents.js +1 -1
  195. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  196. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  197. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  198. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  199. package/dist/src/agent/tool-manuals/index.js +1 -1
  200. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  201. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  202. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  203. package/dist/src/agent/tools/apply-patch.js +1 -12
  204. package/dist/src/agent/tools/clarify-tool.js +1 -1
  205. package/dist/src/agent/tools/delegate-tool.js +4 -4
  206. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  207. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  208. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  209. package/dist/src/agent/tools/exec-command.js +2 -19
  210. package/dist/src/agent/tools/factory.d.ts +2 -4
  211. package/dist/src/agent/tools/factory.js +8 -29
  212. package/dist/src/agent/tools/index.d.ts +0 -2
  213. package/dist/src/agent/tools/index.js +1 -3
  214. package/dist/src/agent/tools/managed-job-tool.js +1 -1
  215. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  216. package/dist/src/agent/tools/memory-tool.js +14 -36
  217. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  218. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  219. package/dist/src/agent/tools/workflow-tool.js +4 -4
  220. package/dist/src/agent/tools/write.d.ts +0 -2
  221. package/dist/src/agent/tools/write.js +0 -11
  222. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  223. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  224. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  225. package/dist/src/agent/workflow/builtins/index.js +2 -2
  226. package/dist/src/agent/workflow/index.js +2 -2
  227. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  228. package/dist/src/agent/workflow/workflow-child-tools.js +0 -3
  229. package/dist/src/agent/workspace-runtime/registry.d.ts +2 -4
  230. package/dist/src/agent/workspace-runtime/registry.js +1 -2
  231. package/dist/src/agent-manifest/index.js +3 -3
  232. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  233. package/dist/src/agent-manifest/resolver.js +47 -20
  234. package/dist/src/agent-manifest/schema.d.ts +128 -52
  235. package/dist/src/agent-manifest/schema.js +46 -8
  236. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  237. package/dist/src/ai-assist/text-assist.js +4 -4
  238. package/dist/src/auth/credentials.js +2 -2
  239. package/dist/src/auth/profiles/store.js +1 -1
  240. package/dist/src/auth/sync-provider-auth.js +2 -2
  241. package/dist/src/automations/domain/defaults.js +1 -1
  242. package/dist/src/automations/domain/types.d.ts +15 -1
  243. package/dist/src/automations/domain/validation.d.ts +336 -12
  244. package/dist/src/automations/domain/validation.js +6 -0
  245. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  246. package/dist/src/automations/draft/automation-draft-validator.d.ts +62 -1
  247. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  248. package/dist/src/automations/index.js +1 -1
  249. package/dist/src/automations/service/action-executor.d.ts +2 -2
  250. package/dist/src/automations/service/action-executor.js +21 -1
  251. package/dist/src/automations/service/automation-service.js +21 -21
  252. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  253. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  254. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  255. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  256. package/dist/src/chat-commands/context.d.ts +0 -3
  257. package/dist/src/chat-commands/context.js +0 -2
  258. package/dist/src/chat-commands/index.d.ts +1 -2
  259. package/dist/src/chat-commands/index.js +3 -5
  260. package/dist/src/chat-commands/types.d.ts +0 -3
  261. package/dist/src/cli/command-catalog.js +0 -43
  262. package/dist/src/cli/command-loaders.js +0 -1
  263. package/dist/src/cli/command-manifest.js +0 -4
  264. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  265. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  266. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  267. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  268. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  269. package/dist/src/cli/commands/gateway/service.js +4 -4
  270. package/dist/src/cli/commands/models.js +1 -1
  271. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  272. package/dist/src/cli/commands/project.js +12 -33
  273. package/dist/src/cli/commands/providers.d.ts +4 -4
  274. package/dist/src/cli/commands/providers.js +16 -16
  275. package/dist/src/cli/commands/search.js +7 -7
  276. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  277. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  278. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  279. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  280. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  281. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  282. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  283. package/dist/src/cli/commands/skills.d.ts +7 -0
  284. package/dist/src/cli/commands/skills.js +16 -16
  285. package/dist/src/cli/commands/update.js +1 -1
  286. package/dist/src/cli/commands/voice.d.ts +1 -1
  287. package/dist/src/cli/commands/voice.js +6 -6
  288. package/dist/src/cli/templates.js +1 -1
  289. package/dist/src/commands/agents.config.js +2 -18
  290. package/dist/src/config/agent-profile.d.ts +1 -1
  291. package/dist/src/config/agent-profile.js +1 -1
  292. package/dist/src/config/index.js +7 -7
  293. package/dist/src/config/loader.js +1 -1
  294. package/dist/src/config/models-json.js +1 -1
  295. package/dist/src/config/paths.d.ts +0 -3
  296. package/dist/src/config/paths.js +2 -7
  297. package/dist/src/config/schema.d.ts +160 -258
  298. package/dist/src/config/schema.js +8 -114
  299. package/dist/src/config/web-patch.d.ts +0 -29
  300. package/dist/src/config/web-patch.js +2 -69
  301. package/dist/src/connectors/composio-catalog.js +7 -20
  302. package/dist/src/connectors/composio-sessions.js +14 -4
  303. package/dist/src/connectors/composio.d.ts +7 -2
  304. package/dist/src/connectors/composio.js +49 -40
  305. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  306. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  307. package/dist/src/connectors/connector-identity.d.ts +2 -0
  308. package/dist/src/connectors/connector-identity.js +64 -1
  309. package/dist/src/connectors/learning-coordinator.js +34 -15
  310. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  311. package/dist/src/connectors/learning-recipes.js +11 -1
  312. package/dist/src/connectors/source-change-publisher.js +5 -4
  313. package/dist/src/connectors/types.d.ts +16 -0
  314. package/dist/src/daemon/launchd.js +2 -2
  315. package/dist/src/daemon/schtasks.js +1 -1
  316. package/dist/src/daemon/service.js +3 -3
  317. package/dist/src/daemon/systemd.js +1 -1
  318. package/dist/src/daemon/types.d.ts +5 -5
  319. package/dist/src/discussions/analyzer.d.ts +6 -6
  320. package/dist/src/discussions/analyzer.js +32 -22
  321. package/dist/src/discussions/index.d.ts +3 -2
  322. package/dist/src/discussions/index.js +5 -4
  323. package/dist/src/discussions/live-worker.d.ts +5 -3
  324. package/dist/src/discussions/live-worker.js +24 -12
  325. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  326. package/dist/src/discussions/organizer-worker.js +58 -0
  327. package/dist/src/discussions/organizer.d.ts +22 -0
  328. package/dist/src/discussions/organizer.js +92 -0
  329. package/dist/src/discussions/repository.d.ts +16 -5
  330. package/dist/src/discussions/repository.js +159 -135
  331. package/dist/src/discussions/sealer.d.ts +25 -0
  332. package/dist/src/discussions/sealer.js +116 -0
  333. package/dist/src/discussions/service.d.ts +2 -1
  334. package/dist/src/discussions/service.js +70 -60
  335. package/dist/src/discussions/transcript.js +1 -1
  336. package/dist/src/discussions/types.d.ts +45 -20
  337. package/dist/src/discussions/types.js +4 -2
  338. package/dist/src/extensions/lockfile.js +1 -1
  339. package/dist/src/extensions/types/core.d.ts +3 -3
  340. package/dist/src/extensions/types/tui.d.ts +2 -2
  341. package/dist/src/extensions/update.d.ts +3 -3
  342. package/dist/src/extensions/update.js +13 -13
  343. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  344. package/dist/src/gateway/agent-builtin-tools.js +0 -1
  345. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  346. package/dist/src/gateway/agents-admin.js +17 -19
  347. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  348. package/dist/src/gateway/capability-presets-admin.js +59 -2
  349. package/dist/src/gateway/chat-limits.d.ts +6 -2
  350. package/dist/src/gateway/chat-limits.js +17 -3
  351. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  352. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  353. package/dist/src/gateway/file-path-classifier.js +1 -1
  354. package/dist/src/gateway/heartbeat/service.js +1 -1
  355. package/dist/src/gateway/hono/app.js +9 -10
  356. package/dist/src/gateway/hono/index.d.ts +1 -1
  357. package/dist/src/gateway/hono/index.js +2 -2
  358. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  359. package/dist/src/gateway/hono/lib/config-payload.js +6 -4
  360. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  361. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  362. package/dist/src/gateway/hono/routes/activity.js +1 -2
  363. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  364. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  365. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  366. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  367. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -6
  368. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  369. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  370. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  371. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  372. package/dist/src/gateway/hono/routes/home.js +2 -2
  373. package/dist/src/gateway/hono/routes/index.js +2 -4
  374. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  375. package/dist/src/gateway/hono/routes/media.js +9 -3
  376. package/dist/src/gateway/hono/routes/memory.js +38 -113
  377. package/dist/src/gateway/hono/routes/models.js +1 -1
  378. package/dist/src/gateway/hono/routes/projects.js +220 -588
  379. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  380. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  381. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  382. package/dist/src/gateway/hono/routes/workflows.js +7 -8
  383. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  384. package/dist/src/gateway/hono/routes/you.js +250 -78
  385. package/dist/src/gateway/hono/sse.d.ts +1 -16
  386. package/dist/src/gateway/hono/sse.js +4 -161
  387. package/dist/src/gateway/index.js +2 -2
  388. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  389. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  390. package/dist/src/gateway/security/csp.d.ts +2 -0
  391. package/dist/src/gateway/security/csp.js +4 -0
  392. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  393. package/dist/src/gateway/service/agent-runner.js +97 -46
  394. package/dist/src/gateway/service/config-coordinator.js +1 -1
  395. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  396. package/dist/src/gateway/service/run-gateway-agent.js +27 -42
  397. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  398. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  399. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  400. package/dist/src/gateway/service.d.ts +28 -16
  401. package/dist/src/gateway/service.js +150 -133
  402. package/dist/src/gateway/session-reset-service.js +6 -6
  403. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  404. package/dist/src/heartbeat/index.js +1 -1
  405. package/dist/src/i18n/index.d.ts +0 -1
  406. package/dist/src/i18n/index.js +1 -2
  407. package/dist/src/i18n/language-consistency.d.ts +10 -0
  408. package/dist/src/i18n/language-consistency.js +34 -0
  409. package/dist/src/i18n/response-language.d.ts +8 -0
  410. package/dist/src/i18n/response-language.js +17 -0
  411. package/dist/src/i18n/share-tool-bundle.js +2 -2
  412. package/dist/src/mcp/channel-bridge.js +5 -3
  413. package/dist/src/media/store.js +1 -1
  414. package/dist/src/media/types.d.ts +1 -1
  415. package/dist/src/media/uri.js +1 -2
  416. package/dist/src/media-understanding/runner.d.ts +1 -1
  417. package/dist/src/media-understanding/runner.js +9 -9
  418. package/dist/src/media-understanding/types.d.ts +4 -4
  419. package/dist/src/mobile/notification-service.js +16 -21
  420. package/dist/src/mobile/notification-types.d.ts +2 -2
  421. package/dist/src/notes/types.d.ts +0 -1
  422. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  423. package/dist/src/proactive/execution/context.js +45 -28
  424. package/dist/src/proactive/execution/insight.js +1 -1
  425. package/dist/src/proactive/temporal/worker.js +2 -2
  426. package/dist/src/projects/index.d.ts +0 -1
  427. package/dist/src/projects/index.js +1 -2
  428. package/dist/src/projects/project-loop.d.ts +16 -8
  429. package/dist/src/projects/project-loop.js +41 -48
  430. package/dist/src/projects/project-service.d.ts +14 -4
  431. package/dist/src/projects/project-service.js +18 -10
  432. package/dist/src/projects/project-store.d.ts +36 -3
  433. package/dist/src/projects/project-store.js +116 -14
  434. package/dist/src/projects/types.d.ts +50 -3
  435. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  436. package/dist/src/providers/index.js +2 -2
  437. package/dist/src/providers/model-registry.js +1 -1
  438. package/dist/src/providers/model-response.d.ts +4 -0
  439. package/dist/src/providers/model-response.js +28 -0
  440. package/dist/src/providers/register-runtime-providers.js +1 -1
  441. package/dist/src/session/config-types.d.ts +3 -0
  442. package/dist/src/session/index.d.ts +0 -1
  443. package/dist/src/session/index.js +1 -2
  444. package/dist/src/session/init-session-turn.js +6 -6
  445. package/dist/src/session/store.js +4 -4
  446. package/dist/src/session/types.d.ts +1 -6
  447. package/dist/src/share/site-proxy.js +1 -1
  448. package/dist/src/storage/sqlite/config-repository.js +7 -4
  449. package/dist/src/storage/sqlite/connection.js +1 -1
  450. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  451. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  452. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  453. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  454. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  455. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  456. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  457. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  458. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  459. package/dist/src/storage/sqlite/index.d.ts +6 -4
  460. package/dist/src/storage/sqlite/index.js +7 -5
  461. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  462. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  463. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  464. package/dist/src/storage/sqlite/memory-records-repository.js +109 -138
  465. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  466. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  467. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  468. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  469. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  470. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  471. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  472. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  473. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  474. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  475. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  476. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  477. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  478. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  479. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  480. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  481. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  482. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  483. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  484. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  485. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  486. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  487. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  488. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  489. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  490. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  491. package/dist/src/storage/sqlite/schema.js +5 -2
  492. package/dist/src/storage/sqlite/schema.sql +76 -61
  493. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  494. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  495. package/dist/src/storage/sqlite/session-repository.js +5 -6
  496. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  497. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  498. package/dist/src/tasks/execution-context.d.ts +23 -0
  499. package/dist/src/{work → tasks}/execution-context.js +7 -20
  500. package/dist/src/{work → tasks}/home-query-service.d.ts +16 -28
  501. package/dist/src/{work → tasks}/home-query-service.js +56 -126
  502. package/dist/src/tasks/index.d.ts +20 -0
  503. package/dist/src/tasks/index.js +21 -0
  504. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  505. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  506. package/dist/src/tasks/project-operating-view-service.js +77 -0
  507. package/dist/src/tasks/task-application-service.d.ts +35 -0
  508. package/dist/src/tasks/task-application-service.js +423 -0
  509. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  510. package/dist/src/tasks/task-context-assembler.js +125 -0
  511. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  512. package/dist/src/tasks/task-context-repository.js +97 -0
  513. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  514. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  515. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  516. package/dist/src/tasks/task-contract-planner.js +87 -0
  517. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  518. package/dist/src/tasks/task-dependency-service.js +81 -0
  519. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  520. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  521. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  522. package/dist/src/tasks/task-read-model-projector.js +93 -0
  523. package/dist/src/tasks/task-repository.d.ts +82 -0
  524. package/dist/src/tasks/task-repository.js +185 -0
  525. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  526. package/dist/src/tasks/task-run-coordinator.js +130 -0
  527. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  528. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  529. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  530. package/dist/src/tasks/task-run-repository.js +312 -0
  531. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  532. package/dist/src/tasks/task-signal-service.js +72 -0
  533. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  534. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  535. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  536. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  537. package/dist/src/tui/backends/embedded-backend.d.ts +11 -1
  538. package/dist/src/tui/backends/embedded-backend.js +29 -3
  539. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  540. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  541. package/dist/src/tui/components/settings-selector.js +0 -20
  542. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  543. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  544. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  545. package/dist/src/tui/tui-backend.d.ts +13 -1
  546. package/dist/src/tui/tui-backend.js +10 -1
  547. package/dist/src/tui/tui-command-formatters.js +1 -2
  548. package/dist/src/tui/tui-commands.js +8 -19
  549. package/dist/src/tui/tui-session-actions.js +0 -2
  550. package/dist/src/tui/tui-settings.d.ts +0 -6
  551. package/dist/src/tui/tui-settings.js +0 -10
  552. package/dist/src/tui/tui-startup-resources.js +1 -1
  553. package/dist/src/tui/tui-types.d.ts +1 -4
  554. package/dist/src/tui/tui-types.js +1 -2
  555. package/dist/src/tui/tui.js +90 -73
  556. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  557. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  558. package/dist/src/tunnel/frpc-extract.js +1 -1
  559. package/dist/src/user-context/config.d.ts +165 -16
  560. package/dist/src/user-context/config.js +74 -14
  561. package/dist/src/user-context/context-compiler.d.ts +4 -8
  562. package/dist/src/user-context/context-compiler.js +7 -10
  563. package/dist/src/user-context/interaction-state.js +8 -4
  564. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  565. package/dist/src/user-context/manual-understanding.js +69 -0
  566. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  567. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  568. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  569. package/dist/src/user-context/memory-readiness.js +41 -0
  570. package/dist/src/user-context/memory-use-audit.js +3 -2
  571. package/dist/src/user-context/projection.d.ts +13 -0
  572. package/dist/src/user-context/projection.js +13 -2
  573. package/dist/src/user-context/relationship-continuity.js +1 -1
  574. package/dist/src/user-context/runtime.d.ts +0 -2
  575. package/dist/src/user-context/runtime.js +1 -10
  576. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  577. package/dist/src/user-context/source-recommendations.js +9 -8
  578. package/dist/src/voice/stt/transcribe-core.js +3 -3
  579. package/dist/src/voice/stt/types.d.ts +2 -2
  580. package/dist/src/voice/tts/speak-core.js +4 -4
  581. package/dist/src/voice/tts/types.d.ts +2 -2
  582. package/dist/src/work-discovery/analyzer.js +5 -5
  583. package/dist/src/work-discovery/service.d.ts +1 -10
  584. package/dist/src/work-discovery/service.js +3 -5
  585. package/dist/src/work-discovery/types.d.ts +1 -1
  586. package/dist/src/workflows/domain/run.d.ts +3 -4
  587. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  588. package/dist/src/workflows/index.js +1 -1
  589. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  590. package/dist/src/workflows/service/workflow-run-service.js +105 -35
  591. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -2
  592. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  593. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  594. package/dist/src/workflows/store/run-index-store.js +10 -8
  595. package/dist/src/workflows/store/run-store.d.ts +1 -1
  596. package/dist/src/workflows/store/run-store.js +2 -2
  597. package/package.json +5 -5
  598. package/dist/gateway/static/root/assets/agents-DgGj9bu6.js +0 -2
  599. package/dist/gateway/static/root/assets/apps-page-B5xahuT-.js +0 -1
  600. package/dist/gateway/static/root/assets/automations-page-BUYrvMmD.js +0 -6
  601. package/dist/gateway/static/root/assets/browser-settings-page-Cjw07q9h.js +0 -8
  602. package/dist/gateway/static/root/assets/browser-workflow-inputs-_gu08MA4.js +0 -1
  603. package/dist/gateway/static/root/assets/capabilities-settings-panel-D_dfVxHY.js +0 -7
  604. package/dist/gateway/static/root/assets/capability-presets-api-DhCn9rPv.js +0 -1
  605. package/dist/gateway/static/root/assets/capability-presets-settings-panel-LWWIYUT7.js +0 -1
  606. package/dist/gateway/static/root/assets/channels-settings-Cyj5OunL.js +0 -1
  607. package/dist/gateway/static/root/assets/channels-status-swr-TEFnV0IG.js +0 -1
  608. package/dist/gateway/static/root/assets/connectors-page-0TobCpBB.js +0 -2
  609. package/dist/gateway/static/root/assets/desktop-pet-CwVSLL6N.js +0 -1
  610. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  611. package/dist/gateway/static/root/assets/dreaming-settings-Da9FeWQl.js +0 -3
  612. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  613. package/dist/gateway/static/root/assets/goals-settings-Dx9uTyWF.js +0 -1
  614. package/dist/gateway/static/root/assets/heartbeat-settings-Cnr5ORXL.js +0 -1
  615. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  616. package/dist/gateway/static/root/assets/index-BA56bQ68.js +0 -224
  617. package/dist/gateway/static/root/assets/local-app-workbench-page-DSUNtLHg.js +0 -2
  618. package/dist/gateway/static/root/assets/logs-page-yI8kpQtO.js +0 -7
  619. package/dist/gateway/static/root/assets/messages-H_iJjnEM.js +0 -3
  620. package/dist/gateway/static/root/assets/notes-workbench-BD297EZt.js +0 -4
  621. package/dist/gateway/static/root/assets/outcome-detail-page-C5i_ZR9a.js +0 -1
  622. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  623. package/dist/gateway/static/root/assets/project-detail-page-D1HGz7Dy.js +0 -1
  624. package/dist/gateway/static/root/assets/projects-page-CqP2TnW-.js +0 -1
  625. package/dist/gateway/static/root/assets/remote-access-hub-BXdVJLS3.js +0 -1
  626. package/dist/gateway/static/root/assets/save-bar-controls-B53UNtDM.js +0 -1
  627. package/dist/gateway/static/root/assets/schedule-field-C3dIMN5q.js +0 -1
  628. package/dist/gateway/static/root/assets/sessions-page-CPAwDdl5.js +0 -1
  629. package/dist/gateway/static/root/assets/settings-advanced-gate-C-jGsoft.js +0 -1
  630. package/dist/gateway/static/root/assets/settings-page-Di5x6Xrc.js +0 -1
  631. package/dist/gateway/static/root/assets/setup-status-panel-uxEE6gAB.js +0 -1
  632. package/dist/gateway/static/root/assets/shares-settings-2mcsMWgn.js +0 -1
  633. package/dist/gateway/static/root/assets/skill-reload-api-ocDwsrEt.js +0 -1
  634. package/dist/gateway/static/root/assets/skills-page-9_jfsFU5.js +0 -2
  635. package/dist/gateway/static/root/assets/system-settings-panel-CIJ66cUy.js +0 -1
  636. package/dist/gateway/static/root/assets/time-picker-D0zAsHOo.js +0 -1
  637. package/dist/gateway/static/root/assets/use-channel-catalog-BQz3K7xj.js +0 -1
  638. package/dist/gateway/static/root/assets/user-context-page-Bn4BLg4W.js +0 -1
  639. package/dist/gateway/static/root/assets/work-copy-Cwyan9Sn.js +0 -1
  640. package/dist/gateway/static/root/assets/work-discovery-page-iJ9RBSpu.js +0 -1
  641. package/dist/gateway/static/root/assets/work-item-detail-page-CqTH7PQX.js +0 -1
  642. package/dist/gateway/static/root/assets/work-page-H3m99ccS.js +0 -3
  643. package/dist/gateway/static/root/assets/workflows-page-BxZSKMfv.js +0 -11
  644. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  645. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  646. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  647. package/dist/src/agent/goals/checklist-judge.js +0 -237
  648. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  649. package/dist/src/agent/goals/checklist-types.js +0 -24
  650. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  651. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  652. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  653. package/dist/src/agent/goals/goal-locale.js +0 -61
  654. package/dist/src/agent/goals/judge.d.ts +0 -41
  655. package/dist/src/agent/goals/judge.js +0 -176
  656. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  657. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  658. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  659. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  660. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  661. package/dist/src/agent/goals/post-turn.js +0 -187
  662. package/dist/src/agent/goals/state.d.ts +0 -46
  663. package/dist/src/agent/goals/state.js +0 -80
  664. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  665. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  666. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  667. package/dist/src/agent/memory/dreaming/events.js +0 -42
  668. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  669. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  670. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  671. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  672. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  673. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  674. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  675. package/dist/src/agent/prompt/memory/index.js +0 -101
  676. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  677. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  678. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  679. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  680. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  681. package/dist/src/agent/tools/goal-tool.js +0 -136
  682. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  683. package/dist/src/chat-commands/builtins/goal.js +0 -122
  684. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  685. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  686. package/dist/src/cli/commands/goal.d.ts +0 -4
  687. package/dist/src/cli/commands/goal.js +0 -235
  688. package/dist/src/discussions/pipeline.d.ts +0 -33
  689. package/dist/src/discussions/pipeline.js +0 -205
  690. package/dist/src/discussions/worker.js +0 -74
  691. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  692. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  693. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  694. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  695. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  696. package/dist/src/gateway/hono/routes/goals.js +0 -786
  697. package/dist/src/gateway/hono/routes/work.js +0 -207
  698. package/dist/src/goals/goal-notifications.d.ts +0 -31
  699. package/dist/src/goals/goal-notifications.js +0 -157
  700. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  701. package/dist/src/goals/goal-queue-store.js +0 -133
  702. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  703. package/dist/src/goals/goal-queue-types.js +0 -1
  704. package/dist/src/goals/goal-runner.d.ts +0 -17
  705. package/dist/src/goals/goal-runner.js +0 -153
  706. package/dist/src/goals/goal-service.d.ts +0 -87
  707. package/dist/src/goals/goal-service.js +0 -323
  708. package/dist/src/goals/goal-store.d.ts +0 -44
  709. package/dist/src/goals/goal-store.js +0 -472
  710. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  711. package/dist/src/goals/goal-workflow-judge.js +0 -145
  712. package/dist/src/goals/index.d.ts +0 -10
  713. package/dist/src/goals/index.js +0 -7
  714. package/dist/src/goals/types.d.ts +0 -136
  715. package/dist/src/goals/types.js +0 -1
  716. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  717. package/dist/src/i18n/goals-bundle.js +0 -61
  718. package/dist/src/i18n/locales/goals.en.js +0 -36
  719. package/dist/src/i18n/locales/goals.zh.js +0 -35
  720. package/dist/src/projects/goal-bind.d.ts +0 -4
  721. package/dist/src/projects/goal-bind.js +0 -38
  722. package/dist/src/session/abort-cutoff.d.ts +0 -6
  723. package/dist/src/session/abort-cutoff.js +0 -8
  724. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  725. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  726. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  727. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  728. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  729. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  730. package/dist/src/work/execution-context.d.ts +0 -16
  731. package/dist/src/work/index.d.ts +0 -14
  732. package/dist/src/work/index.js +0 -15
  733. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  734. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  735. package/dist/src/work/outcome-execution-service.js +0 -60
  736. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  737. package/dist/src/work/outcome-projection-service.js +0 -51
  738. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  739. package/dist/src/work/outcome-receipt-service.js +0 -55
  740. package/dist/src/work/outcome-repository.d.ts +0 -50
  741. package/dist/src/work/outcome-repository.js +0 -112
  742. package/dist/src/work/outcome-run-coordinator.js +0 -117
  743. package/dist/src/work/project-operating-view-service.js +0 -46
  744. package/dist/src/work/work-intake-repository.d.ts +0 -49
  745. package/dist/src/work/work-intake-repository.js +0 -97
  746. package/dist/src/work/work-intake-service.d.ts +0 -26
  747. package/dist/src/work/work-intake-service.js +0 -171
  748. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  749. package/dist/src/work/work-value-metrics-service.js +0 -88
  750. package/dist/src/work-items/agent-context.d.ts +0 -7
  751. package/dist/src/work-items/agent-context.js +0 -73
  752. package/dist/src/work-items/index.d.ts +0 -5
  753. package/dist/src/work-items/index.js +0 -5
  754. package/dist/src/work-items/types.d.ts +0 -112
  755. package/dist/src/work-items/types.js +0 -1
  756. package/dist/src/work-items/work-item-service.d.ts +0 -36
  757. package/dist/src/work-items/work-item-service.js +0 -281
  758. package/dist/src/work-items/work-item-store.d.ts +0 -22
  759. package/dist/src/work-items/work-item-store.js +0 -313
  760. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  761. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  762. /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
@@ -24,40 +24,26 @@ function parseEvidence(json) {
24
24
  return [];
25
25
  }
26
26
  }
27
- function parseMemoryTraceFeedback(json) {
28
- try {
29
- const parsed = JSON.parse(json);
30
- if (!parsed || typeof parsed !== "object") return void 0;
31
- const obj = parsed;
32
- const outcome = obj.outcome;
33
- if (outcome !== "helpful" && outcome !== "not_helpful" && outcome !== "mixed" && outcome !== "irrelevant") return;
34
- return {
35
- outcome,
36
- ...typeof obj.score === "number" ? { score: obj.score } : {},
37
- ...typeof obj.reason === "string" ? { reason: obj.reason } : {},
38
- ...obj.source === "user" || obj.source === "evaluator" || obj.source === "system" ? { source: obj.source } : {},
39
- createdAt: typeof obj.createdAt === "string" ? obj.createdAt : (/* @__PURE__ */ new Date(0)).toISOString(),
40
- ...typeof obj.updatedAt === "string" ? { updatedAt: obj.updatedAt } : {}
41
- };
42
- } catch {
43
- return;
44
- }
45
- }
46
- function normalizeMemoryTraceFeedback(input, nowMs = Date.now(), existing) {
47
- const score = typeof input.score === "number" ? Math.max(-1, Math.min(1, input.score)) : void 0;
48
- const reason = typeof input.reason === "string" && input.reason.trim() ? input.reason.trim().slice(0, 1e3) : void 0;
49
- const nowIso = new Date(nowMs).toISOString();
27
+ function memoryFeedbackRowToPayload(row) {
50
28
  return {
51
- outcome: input.outcome,
52
- ...score != null ? { score } : {},
53
- ...reason ? { reason } : {},
54
- ...input.source ? { source: input.source } : {},
55
- createdAt: input.createdAt ?? existing?.createdAt ?? nowIso,
56
- updatedAt: input.updatedAt ?? nowIso
29
+ feedbackId: row.feedback_id,
30
+ traceId: row.trace_id,
31
+ turnId: row.turn_id,
32
+ level: row.level,
33
+ ...row.record_id ? { recordId: row.record_id } : {},
34
+ rating: row.rating,
35
+ ...row.score != null ? { score: row.score } : {},
36
+ ...row.reason_code ? { reasonCode: row.reason_code } : {},
37
+ ...row.note ? { note: row.note } : {},
38
+ source: row.source,
39
+ createdAt: new Date(row.created_at).toISOString(),
40
+ updatedAt: new Date(row.updated_at).toISOString()
57
41
  };
58
42
  }
43
+ function listFeedbackForTrace(traceId) {
44
+ return getSqliteDatabase().prepare(`SELECT * FROM memory_feedback WHERE trace_id = ? ORDER BY level, updated_at DESC`).all(traceId).map(memoryFeedbackRowToPayload);
45
+ }
59
46
  function memoryTraceRowToPayload(row) {
60
- const feedback = parseMemoryTraceFeedback(row.feedback_json);
61
47
  return {
62
48
  traceId: row.trace_id,
63
49
  ...row.session_key ? { sessionKey: row.session_key } : {},
@@ -69,7 +55,7 @@ function memoryTraceRowToPayload(row) {
69
55
  selectedRecordIds: parseStringArray(row.selected_record_ids_json),
70
56
  ...row.skipped_reason ? { skippedReason: row.skipped_reason } : {},
71
57
  ...row.error ? { error: row.error } : {},
72
- ...feedback ? { feedback } : {},
58
+ feedback: listFeedbackForTrace(row.trace_id),
73
59
  durationMs: row.duration_ms,
74
60
  createdAt: new Date(row.created_at).toISOString()
75
61
  };
@@ -398,6 +384,12 @@ function deleteMemoryRecord(recordId) {
398
384
  return db.prepare(`DELETE FROM memory_records WHERE record_id = ?`).run(recordId).changes > 0;
399
385
  });
400
386
  }
387
+ /** Change lifecycle status without reconstructing or weakening the record's provenance. */
388
+ function setMemoryRecordStatus(recordId, status, nowMs = Date.now()) {
389
+ return runSqliteWriteTransaction((db) => {
390
+ return db.prepare(`UPDATE memory_records SET status = ?, updated_at = ? WHERE record_id = ?`).run(status, nowMs, recordId).changes > 0;
391
+ });
392
+ }
401
393
  function markMemoryRecordsConflicted(recordIds, conflictGroupId) {
402
394
  const ids = [...new Set(recordIds.filter(Boolean))];
403
395
  if (!ids.length || !conflictGroupId.trim()) return 0;
@@ -500,13 +492,12 @@ function setMemoryProviderState(providerId, scopeKey, state) {
500
492
  function appendMemoryTraceEvent(input) {
501
493
  const id = input.traceId ?? randomUUID();
502
494
  const now = input.nowMs ?? Date.now();
503
- const feedback = input.feedback ? normalizeMemoryTraceFeedback(input.feedback, now) : void 0;
504
495
  runSqliteWriteTransaction((db) => {
505
496
  db.prepare(`INSERT INTO memory_trace_events (
506
497
  trace_id, session_key, turn_id, phase, provider_id, request_json,
507
- result_count, selected_record_ids_json, skipped_reason, error, feedback_json, duration_ms, created_at,
498
+ result_count, selected_record_ids_json, skipped_reason, error, duration_ms, created_at,
508
499
  user_id, source_agent_id
509
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sessionKey ?? null, input.turnId ?? null, input.phase, input.providerId, JSON.stringify(input.request ?? {}), input.resultCount ?? null, JSON.stringify(input.selectedRecordIds ?? []), input.skippedReason ?? null, input.error ?? null, JSON.stringify(feedback ?? {}), Math.max(0, Math.floor(input.durationMs ?? 0)), now, LOCAL_USER_ID, input.sourceAgentId ?? null);
500
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sessionKey ?? null, input.turnId ?? null, input.phase, input.providerId, JSON.stringify(input.request ?? {}), input.resultCount ?? null, JSON.stringify(input.selectedRecordIds ?? []), input.skippedReason ?? null, input.error ?? null, Math.max(0, Math.floor(input.durationMs ?? 0)), now, LOCAL_USER_ID, input.sourceAgentId ?? null);
510
501
  });
511
502
  return id;
512
503
  }
@@ -537,50 +528,24 @@ function listMemoryTraceEvents(options = {}) {
537
528
  ORDER BY created_at DESC
538
529
  LIMIT ?`).all(...params, limit).map(memoryTraceRowToPayload);
539
530
  }
540
- function setMemoryTraceFeedback(input) {
541
- const existing = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events WHERE trace_id = ?`).get(input.traceId);
542
- if (!existing) return null;
543
- const nowMs = input.nowMs ?? Date.now();
544
- const feedback = normalizeMemoryTraceFeedback(input.feedback, nowMs, parseMemoryTraceFeedback(existing.feedback_json));
545
- let remediation;
546
- runSqliteWriteTransaction((db) => {
547
- db.prepare(`UPDATE memory_trace_events SET feedback_json = ? WHERE trace_id = ?`).run(JSON.stringify(feedback), input.traceId);
548
- remediation = reconcileUserUnderstandingFeedback(db, existing, feedback, nowMs);
549
- });
550
- return {
551
- ...memoryTraceRowToPayload({
552
- ...existing,
553
- feedback_json: JSON.stringify(feedback)
554
- }),
555
- ...remediation ? { remediation } : {}
556
- };
557
- }
558
- function reconcileUserUnderstandingFeedback(db, trace, feedback, nowMs) {
559
- if (trace.phase !== "inject" || feedback.outcome !== "not_helpful") return void 0;
560
- const explicitCorrection = feedback.source === "system" && feedback.reason === "detected_explicit_user_correction";
531
+ function reconcileUserUnderstandingFeedback(db, trace, recordFeedback, nowMs) {
532
+ if (trace.phase !== "inject" || recordFeedback.length === 0) return void 0;
561
533
  const evaluatedRecordIds = [];
562
534
  const needsReviewRecordIds = [];
563
535
  const actions = [];
564
- for (const recordId of new Set(parseStringArray(trace.selected_record_ids_json))) {
536
+ const selected = new Set(parseStringArray(trace.selected_record_ids_json));
537
+ for (const feedback of recordFeedback) {
538
+ const recordId = feedback.record_id;
539
+ if (!recordId || !selected.has(recordId)) continue;
565
540
  const record = db.prepare(`SELECT * FROM memory_records
566
- WHERE record_id = ?
567
- AND status = 'active'
541
+ WHERE record_id = ? AND status = 'active'
568
542
  AND tags_json LIKE '%\"user-understanding\"%'`).get(recordId);
569
543
  if (!record) continue;
570
544
  evaluatedRecordIds.push(recordId);
571
- const feedbackRows = db.prepare(`SELECT trace.feedback_json
572
- FROM memory_trace_events AS trace
573
- JOIN json_each(trace.selected_record_ids_json) AS selected
574
- ON selected.value = ?
575
- WHERE trace.phase = 'inject'`).all(recordId);
576
- let helpful = 0;
577
- let notHelpful = 0;
578
- for (const row of feedbackRows) {
579
- const recordFeedback = parseMemoryTraceFeedback(row.feedback_json);
580
- if (recordFeedback?.outcome === "helpful") helpful += 1;
581
- if (recordFeedback?.outcome === "not_helpful") notHelpful += 1;
582
- }
583
- if (!explicitCorrection && (notHelpful < USER_UNDERSTANDING_REMEDIATION_POLICY.minNotHelpful || notHelpful <= helpful)) continue;
545
+ const rows = db.prepare(`SELECT rating FROM memory_feedback WHERE record_id = ?`).all(recordId);
546
+ const helpful = rows.filter((row) => row.rating === "helpful").length;
547
+ const notHelpful = rows.filter((row) => row.rating !== "helpful" && row.rating !== "mixed").length;
548
+ if (!(feedback.source === "system" && feedback.reason_code === "detected_explicit_user_correction") && (notHelpful < USER_UNDERSTANDING_REMEDIATION_POLICY.minNotHelpful || notHelpful <= helpful)) continue;
584
549
  const nextConfidence = record.confidence == null ? null : Math.round(Math.max(.1, record.confidence - USER_UNDERSTANDING_REMEDIATION_POLICY.confidencePenalty) * 1e3) / 1e3;
585
550
  if (db.prepare(`UPDATE memory_records
586
551
  SET status = 'needs_review', confidence = ?, review_after = ?, updated_at = ?
@@ -604,37 +569,46 @@ function reconcileUserUnderstandingFeedback(db, trace, feedback, nowMs) {
604
569
  if (needsReviewRecordIds.length > 0) db.prepare(`INSERT INTO memory_trace_events (
605
570
  trace_id, session_key, turn_id, phase, provider_id, request_json,
606
571
  result_count, selected_record_ids_json, skipped_reason, error,
607
- feedback_json, duration_ms, created_at
608
- ) VALUES (?, ?, ?, 'remediation', 'user-understanding', ?, ?, ?, NULL, NULL, '{}', 0, ?)`).run(randomUUID(), trace.session_key, trace.turn_id, JSON.stringify({
572
+ duration_ms, created_at, user_id, source_agent_id
573
+ ) VALUES (?, ?, ?, 'remediation', 'user-understanding', ?, ?, ?, NULL, NULL, 0, ?, ?, ?)`).run(randomUUID(), trace.session_key, trace.turn_id, JSON.stringify({
609
574
  triggerTraceId: trace.trace_id,
610
- reason: explicitCorrection ? "explicit_user_correction" : "repeated_not_helpful_feedback",
575
+ reason: "record_feedback_threshold",
611
576
  policy: USER_UNDERSTANDING_REMEDIATION_POLICY,
612
577
  actions
613
- }), needsReviewRecordIds.length, JSON.stringify(needsReviewRecordIds), nowMs);
578
+ }), needsReviewRecordIds.length, JSON.stringify(needsReviewRecordIds), nowMs, LOCAL_USER_ID, trace.source_agent_id);
614
579
  return result;
615
580
  }
616
- function findLatestMemoryInjectTrace(input) {
617
- const row = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events
618
- WHERE ${[
619
- `session_key = ?`,
620
- `phase = 'inject'`,
621
- `created_at <= ?`
622
- ].join(" AND ")}
623
- ORDER BY created_at DESC
624
- LIMIT 1`).get(input.sessionKey, input.beforeMs ?? Date.now());
625
- if (!row) return null;
626
- const trace = memoryTraceRowToPayload(row);
627
- if (input.requireSelectedRecords && trace.selectedRecordIds.length === 0) return null;
628
- return trace;
629
- }
630
- function setLatestMemoryInjectFeedback(input) {
631
- const row = findLatestMemoryInjectTrace(input);
632
- if (!row) return null;
633
- return setMemoryTraceFeedback({
634
- traceId: row.traceId,
635
- feedback: input.feedback,
636
- nowMs: input.nowMs
581
+ function setMemoryTurnFeedback(input) {
582
+ const turnId = input.turnId.trim();
583
+ if (!turnId) return null;
584
+ const trace = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events WHERE turn_id = ? AND phase = 'inject'`).get(turnId);
585
+ if (!trace) return null;
586
+ const nowMs = input.nowMs ?? Date.now();
587
+ const source = input.source ?? "user";
588
+ const selected = new Set(parseStringArray(trace.selected_record_ids_json));
589
+ const records = (input.records ?? []).filter((item) => selected.has(item.recordId));
590
+ let remediation;
591
+ runSqliteWriteTransaction((db) => {
592
+ const upsert = db.prepare(`INSERT INTO memory_feedback (
593
+ feedback_id, trace_id, turn_id, record_id, level, rating, score,
594
+ reason_code, note, source, created_at, updated_at
595
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
596
+ ON CONFLICT DO UPDATE SET rating = excluded.rating, score = excluded.score,
597
+ reason_code = excluded.reason_code, note = excluded.note, updated_at = excluded.updated_at`);
598
+ upsert.run(randomUUID(), trace.trace_id, turnId, null, "response", input.rating, typeof input.score === "number" ? Math.max(-1, Math.min(1, input.score)) : null, input.reasonCode?.trim().slice(0, 200) || null, input.note?.trim().slice(0, 2e3) || null, source, nowMs, nowMs);
599
+ for (const item of records) upsert.run(randomUUID(), trace.trace_id, turnId, item.recordId, "record", item.rating, null, item.reasonCode?.trim().slice(0, 200) || null, item.note?.trim().slice(0, 2e3) || null, source, nowMs, nowMs);
600
+ remediation = reconcileUserUnderstandingFeedback(db, trace, db.prepare(`SELECT * FROM memory_feedback WHERE trace_id = ? AND level = 'record' AND source = ?`).all(trace.trace_id, source), nowMs);
637
601
  });
602
+ return {
603
+ ...memoryTraceRowToPayload(trace),
604
+ ...remediation ? { remediation } : {}
605
+ };
606
+ }
607
+ function getMemoryTurnFeedback(turnId) {
608
+ const normalized = turnId.trim();
609
+ if (!normalized) return null;
610
+ const trace = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events WHERE turn_id = ? AND phase = 'inject'`).get(normalized);
611
+ return trace ? memoryTraceRowToPayload(trace) : null;
638
612
  }
639
613
  function summarizeMemoryRecallFeedback(options = {}) {
640
614
  const where = ["phase IN (?, ?)"];
@@ -654,41 +628,37 @@ function summarizeMemoryRecallFeedback(options = {}) {
654
628
  params.push(options.sessionKey);
655
629
  }
656
630
  const limit = Math.max(1, Math.min(5e3, options.limit ?? 1e3));
657
- const rows = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events
658
- WHERE ${where.join(" AND ")}
659
- ORDER BY created_at DESC
660
- LIMIT ?`).all(...params, limit);
631
+ const rows = getSqliteDatabase().prepare(`SELECT feedback.* FROM memory_feedback AS feedback
632
+ JOIN memory_trace_events AS trace ON trace.trace_id = feedback.trace_id
633
+ WHERE feedback.level = 'record' AND ${where.map((clause) => `trace.${clause}`).join(" AND ")}
634
+ ORDER BY feedback.updated_at DESC LIMIT ?`).all(...params, limit);
661
635
  const summaries = /* @__PURE__ */ new Map();
662
636
  for (const row of rows) {
663
- const feedback = parseMemoryTraceFeedback(row.feedback_json);
664
- if (!feedback) continue;
665
- const recordIds = parseStringArray(row.selected_record_ids_json);
666
- for (const recordId of recordIds) {
667
- if (options.recordId && recordId !== options.recordId) continue;
668
- const current = summaries.get(recordId) ?? {
669
- recordId,
670
- helpful: 0,
671
- notHelpful: 0,
672
- mixed: 0,
673
- irrelevant: 0,
674
- total: 0,
675
- averageScore: null,
676
- scoreTotal: 0,
677
- scoreCount: 0
678
- };
679
- if (feedback.outcome === "helpful") current.helpful += 1;
680
- if (feedback.outcome === "not_helpful") current.notHelpful += 1;
681
- if (feedback.outcome === "mixed") current.mixed += 1;
682
- if (feedback.outcome === "irrelevant") current.irrelevant += 1;
683
- current.total += 1;
684
- if (typeof feedback.score === "number") {
685
- current.scoreTotal += feedback.score;
686
- current.scoreCount += 1;
687
- current.averageScore = current.scoreTotal / current.scoreCount;
688
- }
689
- current.lastFeedbackAt ??= feedback.updatedAt ?? feedback.createdAt;
690
- summaries.set(recordId, current);
637
+ const recordId = row.record_id;
638
+ if (!recordId || options.recordId && recordId !== options.recordId) continue;
639
+ const current = summaries.get(recordId) ?? {
640
+ recordId,
641
+ helpful: 0,
642
+ notHelpful: 0,
643
+ mixed: 0,
644
+ irrelevant: 0,
645
+ total: 0,
646
+ averageScore: null,
647
+ scoreTotal: 0,
648
+ scoreCount: 0
649
+ };
650
+ if (row.rating === "helpful") current.helpful += 1;
651
+ if (row.rating === "not_helpful" || row.rating === "incorrect" || row.rating === "outdated" || row.rating === "sensitive") current.notHelpful += 1;
652
+ if (row.rating === "mixed") current.mixed += 1;
653
+ if (row.rating === "irrelevant") current.irrelevant += 1;
654
+ current.total += 1;
655
+ if (typeof row.score === "number") {
656
+ current.scoreTotal += row.score;
657
+ current.scoreCount += 1;
658
+ current.averageScore = current.scoreTotal / current.scoreCount;
691
659
  }
660
+ current.lastFeedbackAt ??= new Date(row.updated_at).toISOString();
661
+ summaries.set(recordId, current);
692
662
  }
693
663
  return [...summaries.values()].map(({ scoreTotal: _scoreTotal, scoreCount: _scoreCount, ...summary }) => summary).sort((a, b) => b.total - a.total);
694
664
  }
@@ -775,17 +745,18 @@ function summarizeUserUnderstandingQuality(options = {}) {
775
745
  helpfulRate: null
776
746
  };
777
747
  if (understandingRecordIds.size > 0) {
778
- const recallRows = db.prepare(`SELECT selected_record_ids_json, feedback_json FROM memory_trace_events
779
- WHERE phase IN ('search', 'inject') AND created_at >= ?`).all(sinceMs);
748
+ const recallRows = db.prepare(`SELECT feedback.rating, trace.selected_record_ids_json
749
+ FROM memory_feedback AS feedback
750
+ JOIN memory_trace_events AS trace ON trace.trace_id = feedback.trace_id
751
+ WHERE feedback.level = 'response' AND trace.phase IN ('search', 'inject')
752
+ AND feedback.updated_at >= ?`).all(sinceMs);
780
753
  for (const row of recallRows) {
781
- const feedback = parseMemoryTraceFeedback(row.feedback_json);
782
- if (!feedback) continue;
783
- if (!parseStringArray(row.selected_record_ids_json).some((recordId) => understandingRecordIds.has(recordId))) continue;
754
+ if (!parseStringArray(row.selected_record_ids_json).some((id) => understandingRecordIds.has(id))) continue;
784
755
  recall.total += 1;
785
- if (feedback.outcome === "helpful") recall.helpful += 1;
786
- if (feedback.outcome === "not_helpful") recall.notHelpful += 1;
787
- if (feedback.outcome === "mixed") recall.mixed += 1;
788
- if (feedback.outcome === "irrelevant") recall.irrelevant += 1;
756
+ if (row.rating === "helpful") recall.helpful += 1;
757
+ if (row.rating === "not_helpful" || row.rating === "incorrect" || row.rating === "outdated" || row.rating === "sensitive") recall.notHelpful += 1;
758
+ if (row.rating === "mixed") recall.mixed += 1;
759
+ if (row.rating === "irrelevant") recall.irrelevant += 1;
789
760
  }
790
761
  }
791
762
  recall.helpfulRate = metricRate(recall.helpful, recall.total);
@@ -813,4 +784,4 @@ function parseJsonValue(json, fallback) {
813
784
  }
814
785
  }
815
786
  //#endregion
816
- export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLatestMemoryInjectTrace, getMemoryProviderState, getMemoryRecord, hasUnresolvedMemoryConflict, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, markMemoryRecordsConflicted, searchMemoryRecords, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
787
+ export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, getMemoryProviderState, getMemoryRecord, getMemoryTurnFeedback, hasUnresolvedMemoryConflict, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, markMemoryRecordsConflicted, searchMemoryRecords, setMemoryProviderState, setMemoryRecordStatus, setMemoryTurnFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
@@ -0,0 +1,2 @@
1
+ ALTER TABLE outcome_contracts ADD COLUMN assumptions_json TEXT NOT NULL DEFAULT '[]';
2
+ ALTER TABLE outcome_contracts ADD COLUMN risks_json TEXT NOT NULL DEFAULT '[]';
@@ -0,0 +1 @@
1
+ ALTER TABLE context_snapshots ADD COLUMN allocation_json TEXT;
@@ -0,0 +1,88 @@
1
+ CREATE TABLE outcome_execution_state (
2
+ outcome_id TEXT PRIMARY KEY,
3
+ description TEXT,
4
+ agent_id TEXT NOT NULL DEFAULT 'main',
5
+ priority TEXT NOT NULL DEFAULT 'normal'
6
+ CHECK (priority IN ('low', 'normal', 'high')),
7
+ active_session_key TEXT,
8
+ next_action TEXT,
9
+ blocked_reason TEXT,
10
+ ui_locale TEXT CHECK (ui_locale IS NULL OR ui_locale IN ('en', 'zh')),
11
+ source TEXT NOT NULL DEFAULT 'chat',
12
+ project_id TEXT,
13
+ context_text TEXT,
14
+ context_attachments_json TEXT NOT NULL DEFAULT '[]',
15
+ created_at INTEGER NOT NULL,
16
+ updated_at INTEGER NOT NULL,
17
+ FOREIGN KEY (outcome_id) REFERENCES outcomes(outcome_id) ON DELETE CASCADE,
18
+ FOREIGN KEY (project_id) REFERENCES projects(project_id) ON DELETE SET NULL
19
+ );
20
+
21
+ CREATE INDEX idx_outcome_execution_session
22
+ ON outcome_execution_state(active_session_key);
23
+ CREATE INDEX idx_outcome_execution_project
24
+ ON outcome_execution_state(project_id, updated_at DESC);
25
+
26
+ INSERT INTO outcome_execution_state (
27
+ outcome_id, description, agent_id, priority, active_session_key,
28
+ next_action, blocked_reason, ui_locale, source, project_id,
29
+ context_text, context_attachments_json, created_at, updated_at
30
+ )
31
+ SELECT
32
+ goals.outcome_id, goals.description, goals.agent_id, goals.priority,
33
+ goals.active_session_key, goals.next_action, goals.blocked_reason,
34
+ goals.ui_locale, goals.source, goals.project_id,
35
+ goal_context_messages.text,
36
+ COALESCE(goal_context_messages.attachments_json, '[]'),
37
+ goals.created_at, goals.updated_at
38
+ FROM goals
39
+ LEFT JOIN goal_context_messages ON goal_context_messages.goal_id = goals.goal_id
40
+ WHERE goals.outcome_id IS NOT NULL;
41
+
42
+ CREATE TABLE outcome_queue (
43
+ queue_id TEXT PRIMARY KEY,
44
+ outcome_id TEXT NOT NULL,
45
+ status TEXT NOT NULL,
46
+ payload_json TEXT NOT NULL,
47
+ attempts INTEGER NOT NULL,
48
+ max_retries INTEGER NOT NULL,
49
+ enqueued_at INTEGER NOT NULL,
50
+ started_at INTEGER,
51
+ finished_at INTEGER,
52
+ next_run_at INTEGER,
53
+ session_key TEXT,
54
+ last_error TEXT,
55
+ source TEXT NOT NULL,
56
+ FOREIGN KEY (outcome_id) REFERENCES outcomes(outcome_id) ON DELETE CASCADE
57
+ );
58
+
59
+ CREATE INDEX idx_outcome_queue_status_next
60
+ ON outcome_queue(status, next_run_at, enqueued_at);
61
+ CREATE INDEX idx_outcome_queue_outcome_status
62
+ ON outcome_queue(outcome_id, status);
63
+ CREATE INDEX idx_outcome_queue_enqueued
64
+ ON outcome_queue(enqueued_at DESC);
65
+
66
+ INSERT INTO outcome_queue (
67
+ queue_id, outcome_id, status, payload_json, attempts, max_retries,
68
+ enqueued_at, started_at, finished_at, next_run_at, session_key,
69
+ last_error, source
70
+ )
71
+ SELECT
72
+ goal_queue.queue_id, goals.outcome_id, goal_queue.status,
73
+ goal_queue.payload_json, goal_queue.attempts, goal_queue.max_retries,
74
+ goal_queue.enqueued_at, goal_queue.started_at, goal_queue.finished_at,
75
+ goal_queue.next_run_at, goal_queue.session_key, goal_queue.last_error,
76
+ goal_queue.source
77
+ FROM goal_queue
78
+ JOIN goals ON goals.goal_id = goal_queue.goal_id
79
+ WHERE goals.outcome_id IS NOT NULL;
80
+
81
+ ALTER TABLE workflow_runs ADD COLUMN outcome_id TEXT;
82
+ UPDATE workflow_runs
83
+ SET outcome_id = (
84
+ SELECT goals.outcome_id FROM goals WHERE goals.goal_id = workflow_runs.goal_id
85
+ )
86
+ WHERE goal_id IS NOT NULL;
87
+ CREATE INDEX idx_workflow_runs_outcome_created
88
+ ON workflow_runs(outcome_id, created_at_ms DESC);
@@ -0,0 +1,174 @@
1
+ CREATE TABLE outcome_links_next (
2
+ outcome_id TEXT NOT NULL,
3
+ subject_kind TEXT NOT NULL CHECK (subject_kind IN (
4
+ 'project', 'work_item', 'session', 'workflow',
5
+ 'automation', 'artifact', 'source'
6
+ )),
7
+ subject_id TEXT NOT NULL,
8
+ relation TEXT NOT NULL DEFAULT 'supports',
9
+ created_at INTEGER NOT NULL,
10
+ PRIMARY KEY (outcome_id, subject_kind, subject_id),
11
+ FOREIGN KEY (outcome_id) REFERENCES outcomes(outcome_id) ON DELETE CASCADE
12
+ );
13
+ INSERT INTO outcome_links_next
14
+ SELECT outcome_id, subject_kind, subject_id, relation, created_at
15
+ FROM outcome_links WHERE subject_kind <> 'goal';
16
+ DROP TABLE outcome_links;
17
+ ALTER TABLE outcome_links_next RENAME TO outcome_links;
18
+ CREATE INDEX idx_outcome_links_subject ON outcome_links(subject_kind, subject_id);
19
+
20
+ CREATE TABLE execution_receipts_next (
21
+ run_id TEXT PRIMARY KEY,
22
+ session_key TEXT NOT NULL,
23
+ channel TEXT NOT NULL,
24
+ objective TEXT NOT NULL,
25
+ status TEXT NOT NULL CHECK (status IN ('running', 'succeeded', 'failed', 'cancelled')),
26
+ summary TEXT,
27
+ contract_json TEXT,
28
+ evidence_json TEXT NOT NULL DEFAULT '[]',
29
+ feedback_outcome TEXT CHECK (feedback_outcome IN ('helpful', 'not_helpful')),
30
+ feedback_reason TEXT,
31
+ needs_correction INTEGER CHECK (needs_correction IN (0, 1)),
32
+ support_fit INTEGER CHECK (support_fit IN (0, 1)),
33
+ started_at INTEGER NOT NULL,
34
+ completed_at INTEGER,
35
+ updated_at INTEGER NOT NULL,
36
+ verification_status TEXT NOT NULL DEFAULT 'unverified'
37
+ CHECK (verification_status IN ('passed', 'failed', 'unverified')),
38
+ verification_json TEXT NOT NULL DEFAULT '{"checks":[]}',
39
+ failure_code TEXT,
40
+ failure_phase TEXT,
41
+ recovery_action TEXT,
42
+ project_id TEXT,
43
+ work_item_id TEXT,
44
+ origin TEXT,
45
+ trigger_kind TEXT,
46
+ parent_run_id TEXT,
47
+ next_action TEXT,
48
+ needs_user INTEGER NOT NULL DEFAULT 0,
49
+ context_trace_id TEXT,
50
+ completion_verdict TEXT CHECK (completion_verdict IN ('achieved', 'partial', 'not_achieved')),
51
+ completion_verdict_source TEXT CHECK (completion_verdict_source IN ('system', 'user')),
52
+ correction_text TEXT,
53
+ projection_version INTEGER NOT NULL DEFAULT 0,
54
+ projected_at INTEGER,
55
+ outcome_id TEXT,
56
+ contract_version INTEGER,
57
+ attempt INTEGER NOT NULL DEFAULT 1,
58
+ strategy TEXT,
59
+ FOREIGN KEY (session_key) REFERENCES sessions(session_key) ON DELETE CASCADE
60
+ );
61
+ INSERT INTO execution_receipts_next (
62
+ run_id, session_key, channel, objective, status, summary, contract_json,
63
+ evidence_json, feedback_outcome, feedback_reason, needs_correction, support_fit,
64
+ started_at, completed_at, updated_at, verification_status, verification_json,
65
+ failure_code, failure_phase, recovery_action, project_id, work_item_id, origin,
66
+ trigger_kind, parent_run_id, next_action, needs_user, context_trace_id,
67
+ completion_verdict, completion_verdict_source, correction_text, projection_version,
68
+ projected_at, outcome_id, contract_version, attempt, strategy
69
+ )
70
+ SELECT
71
+ run_id, session_key, channel, objective, status, summary, contract_json,
72
+ evidence_json, feedback_outcome, feedback_reason, needs_correction, support_fit,
73
+ started_at, completed_at, updated_at, verification_status, verification_json,
74
+ failure_code, failure_phase, recovery_action, project_id, work_item_id,
75
+ CASE WHEN origin = 'goal' THEN 'outcome' ELSE origin END,
76
+ trigger_kind, parent_run_id, next_action, needs_user, context_trace_id,
77
+ completion_verdict, completion_verdict_source, correction_text, projection_version,
78
+ projected_at, outcome_id, contract_version, attempt, strategy
79
+ FROM execution_receipts;
80
+ DROP TABLE execution_receipts;
81
+ ALTER TABLE execution_receipts_next RENAME TO execution_receipts;
82
+ CREATE INDEX idx_execution_receipts_session_started ON execution_receipts(session_key, started_at DESC);
83
+ CREATE INDEX idx_execution_receipts_status_started ON execution_receipts(status, started_at DESC);
84
+ CREATE INDEX idx_execution_receipts_project_updated ON execution_receipts(project_id, updated_at DESC);
85
+ CREATE INDEX idx_execution_receipts_work_item_updated ON execution_receipts(work_item_id, updated_at DESC);
86
+ CREATE INDEX idx_execution_receipts_unprojected ON execution_receipts(projection_version, completed_at DESC);
87
+ CREATE INDEX idx_execution_receipts_outcome_started ON execution_receipts(outcome_id, started_at DESC);
88
+
89
+ CREATE TABLE work_intakes_next (
90
+ intake_id TEXT PRIMARY KEY,
91
+ idempotency_key TEXT NOT NULL UNIQUE,
92
+ request_fingerprint TEXT NOT NULL,
93
+ objective TEXT NOT NULL,
94
+ proposal_json TEXT NOT NULL,
95
+ session_key TEXT,
96
+ agent_id TEXT,
97
+ status TEXT NOT NULL CHECK (status IN ('proposed', 'confirmed', 'expired', 'cancelled')),
98
+ execution_mode TEXT NOT NULL DEFAULT 'run_now' CHECK (execution_mode IN ('create_only', 'run_now')),
99
+ project_id TEXT,
100
+ queue_id TEXT,
101
+ expires_at INTEGER NOT NULL,
102
+ created_at INTEGER NOT NULL,
103
+ confirmed_at INTEGER,
104
+ updated_at INTEGER NOT NULL,
105
+ outcome_id TEXT,
106
+ FOREIGN KEY (project_id) REFERENCES projects(project_id) ON DELETE SET NULL,
107
+ FOREIGN KEY (outcome_id) REFERENCES outcomes(outcome_id) ON DELETE SET NULL
108
+ );
109
+ INSERT INTO work_intakes_next (
110
+ intake_id, idempotency_key, request_fingerprint, objective, proposal_json,
111
+ session_key, agent_id, status, execution_mode, project_id, queue_id,
112
+ expires_at, created_at, confirmed_at, updated_at, outcome_id
113
+ )
114
+ SELECT intake_id, idempotency_key, request_fingerprint, objective, proposal_json,
115
+ session_key, agent_id, status, execution_mode, project_id, queue_id,
116
+ expires_at, created_at, confirmed_at, updated_at, outcome_id
117
+ FROM work_intakes;
118
+ DROP TABLE work_intakes;
119
+ ALTER TABLE work_intakes_next RENAME TO work_intakes;
120
+ CREATE INDEX idx_work_intakes_status_updated ON work_intakes(status, updated_at DESC);
121
+ CREATE INDEX idx_work_intakes_expires ON work_intakes(status, expires_at);
122
+
123
+ CREATE TABLE workflow_runs_next (
124
+ run_id TEXT PRIMARY KEY,
125
+ agent_id TEXT NOT NULL,
126
+ definition_id TEXT NOT NULL,
127
+ definition_version TEXT NOT NULL,
128
+ outcome_id TEXT,
129
+ session_key TEXT NOT NULL,
130
+ parent_session_key TEXT,
131
+ status TEXT NOT NULL,
132
+ source_kind TEXT NOT NULL,
133
+ source_json TEXT NOT NULL,
134
+ metadata_json TEXT,
135
+ title TEXT NOT NULL,
136
+ created_at_ms INTEGER NOT NULL,
137
+ started_at_ms INTEGER,
138
+ completed_at_ms INTEGER,
139
+ metrics_json TEXT NOT NULL,
140
+ result_preview TEXT,
141
+ error_message TEXT,
142
+ project_id TEXT
143
+ );
144
+ INSERT INTO workflow_runs_next (
145
+ run_id, agent_id, definition_id, definition_version, outcome_id, session_key,
146
+ parent_session_key, status, source_kind, source_json, metadata_json, title,
147
+ created_at_ms, started_at_ms, completed_at_ms, metrics_json, result_preview,
148
+ error_message, project_id
149
+ )
150
+ SELECT run_id, agent_id, definition_id, definition_version, outcome_id, session_key,
151
+ parent_session_key, status, source_kind, source_json, metadata_json, title,
152
+ created_at_ms, started_at_ms, completed_at_ms, metrics_json, result_preview,
153
+ error_message, project_id
154
+ FROM workflow_runs;
155
+ DROP TABLE workflow_runs;
156
+ ALTER TABLE workflow_runs_next RENAME TO workflow_runs;
157
+ CREATE INDEX idx_workflow_runs_created ON workflow_runs(agent_id, created_at_ms DESC);
158
+ CREATE INDEX idx_workflow_runs_status_created ON workflow_runs(agent_id, status, created_at_ms DESC);
159
+ CREATE INDEX idx_workflow_runs_definition_created ON workflow_runs(definition_id, created_at_ms DESC);
160
+ CREATE INDEX idx_workflow_runs_project ON workflow_runs(project_id, created_at_ms DESC);
161
+ CREATE INDEX idx_workflow_runs_outcome_created ON workflow_runs(outcome_id, created_at_ms DESC);
162
+
163
+ DELETE FROM work_item_links WHERE kind = 'goal';
164
+ DELETE FROM work_item_update_suggestions WHERE source_kind = 'goal';
165
+ DELETE FROM work_item_events WHERE type = 'goal_created';
166
+
167
+ DROP TABLE goal_context_messages;
168
+ DROP TABLE goal_queue;
169
+ DROP TABLE goal_checklist_items;
170
+ DROP TABLE goal_runs;
171
+ DROP TABLE goal_events;
172
+ DROP TABLE goal_evidence;
173
+ DROP TABLE goal_session_links;
174
+ DROP TABLE goals;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE execution_receipts ADD COLUMN judgment_json TEXT;
2
+ ALTER TABLE outcome_execution_state
3
+ ADD COLUMN approved_boundaries_json TEXT NOT NULL DEFAULT '[]';
@@ -0,0 +1,35 @@
1
+ CREATE TABLE session_inputs (
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'
10
+ )),
11
+ content TEXT NOT NULL,
12
+ attachments_json TEXT,
13
+ thinking TEXT,
14
+ position INTEGER NOT NULL,
15
+ target_run_id TEXT,
16
+ run_id TEXT,
17
+ version INTEGER NOT NULL DEFAULT 1,
18
+ error TEXT,
19
+ created_at_ms INTEGER NOT NULL,
20
+ updated_at_ms INTEGER NOT NULL,
21
+ UNIQUE(session_key, client_message_id)
22
+ );
23
+
24
+ CREATE INDEX idx_session_inputs_pending
25
+ ON session_inputs(session_key, status, position, created_at_ms);
26
+
27
+ CREATE TABLE session_input_runtime (
28
+ session_key TEXT PRIMARY KEY,
29
+ active_run_id TEXT,
30
+ active_input_id TEXT,
31
+ revision INTEGER NOT NULL DEFAULT 0,
32
+ updated_at_ms INTEGER NOT NULL
33
+ );
34
+
35
+ ALTER TABLE sessions DROP COLUMN abort_cutoff_timestamp;
@@ -0,0 +1,6 @@
1
+ DROP TABLE IF EXISTS work_intakes;
2
+
3
+ ALTER TABLE outcome_execution_state ADD COLUMN request_id TEXT;
4
+ CREATE UNIQUE INDEX idx_outcome_execution_request
5
+ ON outcome_execution_state(request_id)
6
+ WHERE request_id IS NOT NULL;