@xopcai/xopc 0.0.180 → 0.0.188

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 (838) 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/demo-memory/src/index.js +1 -0
  5. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -3
  6. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
  7. package/dist/extensions/telegram/src/draft-stream.d.ts +0 -4
  8. package/dist/extensions/telegram/src/draft-stream.js +1 -53
  9. package/dist/extensions/telegram/xopc.extension.json +1 -1
  10. package/dist/gateway/static/root/assets/{activity-store-DFKtQDgE.js → activity-store--QoUGhiS.js} +1 -1
  11. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CcTvB_4W.js → agent-avatar-dicebear-B0yweLNQ.js} +1 -1
  12. package/dist/gateway/static/root/assets/agents-C6OV-gMm.js +2 -0
  13. package/dist/gateway/static/root/assets/{api-CUClAvuL.js → api-5laWqfiE.js} +1 -1
  14. package/dist/gateway/static/root/assets/{app-management-settings-panel-Ib-cWKHM.js → app-management-settings-panel-BXJ8Jiv_.js} +1 -1
  15. package/dist/gateway/static/root/assets/{appearance-settings-CRSN8WuA.js → appearance-settings-DG9n9D1M.js} +1 -1
  16. package/dist/gateway/static/root/assets/apps-page-Ci14lDeO.js +1 -0
  17. package/dist/gateway/static/root/assets/{archive-plugin-BBF9zspN.js → archive-plugin-Ceh5qrZf.js} +1 -1
  18. package/dist/gateway/static/root/assets/{attachment-load-D3QQfA7w.js → attachment-load-jFW7uYf7.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-page-Q1xmb4Rh.js +6 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-D78XOjJ3.js → binary-plugins-XDlkI1r4.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-D_VVXlYX.js → block-editor-kyKc2IhE.js} +46 -46
  22. package/dist/gateway/static/root/assets/browser-settings-page-DbowrHXD.js +8 -0
  23. package/dist/gateway/static/root/assets/browser-workflow-inputs-BJa5Iz_v.js +1 -0
  24. package/dist/gateway/static/root/assets/{browser-workflows-page-58DBMXgG.js → browser-workflows-page-CTQQOsn5.js} +2 -2
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-DoZPFdKF.js +7 -0
  26. package/dist/gateway/static/root/assets/capability-presets-api-Dn-7MMEo.js +1 -0
  27. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Bt8Hnx0h.js +1 -0
  28. package/dist/gateway/static/root/assets/{channel-recipient-api-DYtoNV5A.js → channel-recipient-api-BgIkWq01.js} +1 -1
  29. package/dist/gateway/static/root/assets/channels-settings-Bpsebsru.js +1 -0
  30. package/dist/gateway/static/root/assets/channels-status-swr-DFmdYRE5.js +1 -0
  31. package/dist/gateway/static/root/assets/{connector-logo-CxIXnifA.js → connector-logo-TRr9ybf6.js} +1 -1
  32. package/dist/gateway/static/root/assets/connectors-page-Tg5kl22i.js +2 -0
  33. package/dist/gateway/static/root/assets/desktop-pet-CSwd00CV.js +1 -0
  34. package/dist/gateway/static/root/assets/{desktop-pet-settings-BOIp4q0Z.js → desktop-pet-settings-CuNQvHGu.js} +1 -1
  35. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8_lsW6S.js → directory-picker-path-field-ct0n5Rje.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-debug-page-CMNnSJP6.js → extension-debug-page-BeRBuMUU.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-page-t0pJqLvM.js → extension-page-DbK-Cwao.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-settings-page-aiR-tKnW.js → extension-settings-page-C9ag5tb5.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-config-api-CkyQBD6r.js → gateway-config-api-CC7EvEFp.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-settings-BIZfAgfB.js → gateway-settings-9g8uIry9.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-CSU7UvzG.js → gateway-startup-retry-B2DmdlwO.js} +1 -1
  42. package/dist/gateway/static/root/assets/heartbeat-settings-fl1oC_-5.js +1 -0
  43. package/dist/gateway/static/root/assets/home-page-Bao9jq_z.js +3 -0
  44. package/dist/gateway/static/root/assets/{image-generation-api-BR6Kb77X.js → image-generation-api-GMTaS6eI.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-Cl5n1f_U.css +1 -0
  46. package/dist/gateway/static/root/assets/index-OJgiMh07.js +223 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D76uYKeQ.js → keyboard-shortcuts-settings-DhGYddbI.js} +1 -1
  48. package/dist/gateway/static/root/assets/local-app-workbench-page-B69NvtvH.js +2 -0
  49. package/dist/gateway/static/root/assets/{local-apps-page-BsLnojTh.js → local-apps-page-CmnrBmWi.js} +1 -1
  50. package/dist/gateway/static/root/assets/{locale-store-BNC8HUCI.js → locale-store-D6hs74o5.js} +1 -1
  51. package/dist/gateway/static/root/assets/logs-page-Cq3cABqg.js +7 -0
  52. package/dist/gateway/static/root/assets/{markdown-split-D6smTQWD.js → markdown-split-CZaBPOVn.js} +1 -1
  53. package/dist/gateway/static/root/assets/{media-plugins-D1TmMF0A.js → media-plugins-CiKvSgCv.js} +1 -1
  54. package/dist/gateway/static/root/assets/messages-D02NNLCZ.js +3 -0
  55. package/dist/gateway/static/root/assets/{notes-page-Vt-diFf0.js → notes-page-Bisbzqlz.js} +1 -1
  56. package/dist/gateway/static/root/assets/notes-workbench-BOZfJFhE.js +4 -0
  57. package/dist/gateway/static/root/assets/{page-tabs-BnSzIjH0.js → page-tabs-BxlwhAbH.js} +1 -1
  58. package/dist/gateway/static/root/assets/{preview-open-alternatives-CF12Eqi4.js → preview-open-alternatives-RM8wXxfT.js} +1 -1
  59. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
  60. package/dist/gateway/static/root/assets/{product-open-page-Du0TE_CU.js → product-open-page-DdBlibek.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-TSKFb2tN.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-BokeBrTT.js +1 -0
  63. package/dist/gateway/static/root/assets/remote-access-hub-C56anxCX.js +1 -0
  64. package/dist/gateway/static/root/assets/{schema-form-BKvpxqof.js → schema-form-BDKbpmXv.js} +1 -1
  65. package/dist/gateway/static/root/assets/sessions-page-C7TQADrD.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-advanced-gate-BDOPKeAX.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-form-section-kt6GIS32.js → settings-form-section-zxo5ZGOu.js} +1 -1
  68. package/dist/gateway/static/root/assets/{settings-loading-skeleton-85eUPcKz.js → settings-loading-skeleton-DgIp8_S6.js} +1 -1
  69. package/dist/gateway/static/root/assets/settings-page-BUPSIa9P.js +1 -0
  70. package/dist/gateway/static/root/assets/{settings-page-layout-CkkCee_x.js → settings-page-layout-97LmwrzC.js} +1 -1
  71. package/dist/gateway/static/root/assets/setup-status-panel-BRg766eW.js +1 -0
  72. package/dist/gateway/static/root/assets/{share-preview-page-BtLEstaI.js → share-preview-page-BH7i3g1S.js} +1 -1
  73. package/dist/gateway/static/root/assets/shares-settings-DhEAviQ_.js +1 -0
  74. package/dist/gateway/static/root/assets/skill-reload-api-Ct7AV8ls.js +1 -0
  75. package/dist/gateway/static/root/assets/skills-page-DoVuprZm.js +2 -0
  76. package/dist/gateway/static/root/assets/{skills-page.utils-C2SHvq8V.js → skills-page.utils-s-a5WV9j.js} +1 -1
  77. package/dist/gateway/static/root/assets/system-settings-panel-BxjeMT5k.js +1 -0
  78. package/dist/gateway/static/root/assets/task-detail-page-BahycnfW.js +1 -0
  79. package/dist/gateway/static/root/assets/{theme-store-ClDa_Bci.js → theme-store-BRxdsmic.js} +1 -1
  80. package/dist/gateway/static/root/assets/time-picker-BGk_Tbsj.js +1 -0
  81. package/dist/gateway/static/root/assets/{typed-models-lib-GsmwmB40.js → typed-models-lib-39MjwPSq.js} +1 -1
  82. package/dist/gateway/static/root/assets/use-save-bar-registration-5aVSjTjO.js +1 -0
  83. package/dist/gateway/static/root/assets/user-context-page-B9K41qmy.js +1 -0
  84. package/dist/gateway/static/root/assets/{voice-api-key-field-Blaxsbb3.js → voice-api-key-field-XU-7sBSg.js} +1 -1
  85. package/dist/gateway/static/root/assets/work-discovery-overlay-CJqu8UHq.js +1 -0
  86. package/dist/gateway/static/root/assets/work-discovery-page-BBVnRHju.js +1 -0
  87. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTG4RpRE.js → workflow-run-setup-panel-DXtg8Qxl.js} +2 -2
  88. package/dist/gateway/static/root/assets/workflows-page-Bs_tYfst.js +11 -0
  89. package/dist/gateway/static/root/index.html +8 -8
  90. package/dist/package.js +1 -1
  91. package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
  92. package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
  93. package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
  94. package/dist/packages/gateway-contract/src/task-runs.js +80 -0
  95. package/dist/packages/gateway-contract/src/tasks.js +353 -0
  96. package/dist/packages/gateway-contract/src/tool-activity.js +223 -0
  97. package/dist/src/activity/types.d.ts +2 -2
  98. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  99. package/dist/src/agent/agent-manager.d.ts +3 -3
  100. package/dist/src/agent/agent-manager.js +25 -30
  101. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  102. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  103. package/dist/src/agent/child-agent-factory.js +4 -10
  104. package/dist/src/agent/code-intelligence/binary.js +1 -1
  105. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  106. package/dist/src/agent/context/execution-scope.js +17 -20
  107. package/dist/src/agent/context/project-context.d.ts +6 -2
  108. package/dist/src/agent/context/project-context.js +17 -25
  109. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  110. package/dist/src/agent/embedded/model-runtime.js +1 -1
  111. package/dist/src/agent/embedded/run-for-session.d.ts +0 -2
  112. package/dist/src/agent/embedded/run-for-session.js +99 -112
  113. package/dist/src/agent/embedded/run-turn.js +2 -0
  114. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  115. package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
  116. package/dist/src/agent/external-tools/composio-provider.d.ts +29 -0
  117. package/dist/src/agent/external-tools/composio-provider.js +307 -0
  118. package/dist/src/agent/external-tools/extension-provider.d.ts +20 -0
  119. package/dist/src/agent/external-tools/extension-provider.js +68 -0
  120. package/dist/src/agent/external-tools/gateway-tools.d.ts +8 -0
  121. package/dist/src/agent/external-tools/gateway-tools.js +89 -0
  122. package/dist/src/agent/external-tools/index.d.ts +24 -0
  123. package/dist/src/agent/external-tools/index.js +40 -0
  124. package/dist/src/agent/external-tools/mcp-provider.d.ts +29 -0
  125. package/dist/src/agent/external-tools/mcp-provider.js +118 -0
  126. package/dist/src/agent/external-tools/memory-provider.d.ts +21 -0
  127. package/dist/src/agent/external-tools/memory-provider.js +56 -0
  128. package/dist/src/agent/external-tools/refs.d.ts +5 -0
  129. package/dist/src/agent/external-tools/refs.js +18 -0
  130. package/dist/src/agent/external-tools/service.d.ts +26 -0
  131. package/dist/src/agent/external-tools/service.js +117 -0
  132. package/dist/src/agent/external-tools/types.d.ts +28 -0
  133. package/dist/src/agent/external-tools/types.js +9 -0
  134. package/dist/src/agent/image/tool-model-config.js +1 -1
  135. package/dist/src/agent/inbound/inbound-loop.d.ts +0 -2
  136. package/dist/src/agent/inbound/inbound-loop.js +1 -4
  137. package/dist/src/agent/inbound/turn-dispatcher.js +1 -1
  138. package/dist/src/agent/ipc/inbox.js +1 -1
  139. package/dist/src/agent/mcp/{bundle-mcp-materialize.d.ts → bundle-mcp-gateway.d.ts} +1 -19
  140. package/dist/src/agent/mcp/bundle-mcp-gateway.js +60 -0
  141. package/dist/src/agent/mcp/bundle-mcp-names.d.ts +0 -8
  142. package/dist/src/agent/mcp/bundle-mcp-names.js +2 -29
  143. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +5 -10
  144. package/dist/src/agent/mcp/bundle-mcp-policy.js +6 -17
  145. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  146. package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -2
  147. package/dist/src/agent/mcp/bundle-mcp-tools.js +1 -2
  148. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +0 -5
  149. package/dist/src/agent/mcp/index.d.ts +0 -2
  150. package/dist/src/agent/mcp/index.js +2 -5
  151. package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
  152. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  153. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  154. package/dist/src/agent/memory/builtin-provider.js +75 -229
  155. package/dist/src/agent/memory/compaction.js +1 -1
  156. package/dist/src/agent/memory/context/planner.d.ts +4 -0
  157. package/dist/src/agent/memory/context/planner.js +53 -17
  158. package/dist/src/agent/memory/context/types.d.ts +6 -0
  159. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  160. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  161. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  162. package/dist/src/agent/memory/dreaming/config.js +47 -40
  163. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  164. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  165. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  166. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  167. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  168. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  169. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  170. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  171. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  172. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  173. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  174. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  175. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  176. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  177. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  178. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  179. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  180. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  181. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  182. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  183. package/dist/src/agent/memory/index.d.ts +1 -3
  184. package/dist/src/agent/memory/index.js +2 -3
  185. package/dist/src/agent/memory/manager.d.ts +5 -6
  186. package/dist/src/agent/memory/manager.js +6 -29
  187. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  188. package/dist/src/agent/memory/memory-config.js +2 -23
  189. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  190. package/dist/src/agent/memory/types.d.ts +7 -48
  191. package/dist/src/agent/memory/understanding/service.js +1 -2
  192. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  193. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  194. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  195. package/dist/src/agent/messaging/command-handler.js +0 -8
  196. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  197. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  198. package/dist/src/agent/messaging/stream-manager.d.ts +2 -14
  199. package/dist/src/agent/messaging/stream-manager.js +0 -12
  200. package/dist/src/agent/middleware/index.d.ts +1 -1
  201. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  202. package/dist/src/agent/middleware/self-verify.js +7 -7
  203. package/dist/src/agent/orchestration/agent-event-handler.d.ts +1 -3
  204. package/dist/src/agent/orchestration/agent-event-handler.js +0 -36
  205. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -5
  206. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -71
  207. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  208. package/dist/src/agent/prompt/response-language.js +11 -0
  209. package/dist/src/agent/prompt/sections/behavior.js +8 -6
  210. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  211. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  212. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  213. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  214. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  215. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  216. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  217. package/dist/src/agent/prompt/subagent-context.js +1 -0
  218. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  219. package/dist/src/agent/prompt/system-prompt.js +10 -2
  220. package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -2
  221. package/dist/src/agent/service/direct-turn-helpers.js +8 -5
  222. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  223. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  224. package/dist/src/agent/service.d.ts +6 -12
  225. package/dist/src/agent/service.js +31 -53
  226. package/dist/src/agent/service.types.d.ts +2 -18
  227. package/dist/src/agent/session/index.d.ts +1 -1
  228. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  229. package/dist/src/agent/session/session-config-service.js +14 -0
  230. package/dist/src/agent/session/session-inspector.js +1 -1
  231. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  232. package/dist/src/agent/session/session-state-bag.js +10 -10
  233. package/dist/src/agent/skills/hub-lock.js +1 -1
  234. package/dist/src/agent/skills/hub-pull.js +1 -1
  235. package/dist/src/agent/source-context/types.d.ts +1 -1
  236. package/dist/src/agent/source-context/types.js +1 -1
  237. package/dist/src/agent/starter-agents.js +3 -3
  238. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  239. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  240. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  241. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  242. package/dist/src/agent/tool-manuals/index.js +1 -1
  243. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  244. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  245. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  246. package/dist/src/agent/tools/apply-patch.js +1 -12
  247. package/dist/src/agent/tools/clarify-tool.js +1 -1
  248. package/dist/src/agent/tools/delegate-tool.js +9 -5
  249. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  250. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  251. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  252. package/dist/src/agent/tools/exec-command.js +2 -19
  253. package/dist/src/agent/tools/executor.js +1 -1
  254. package/dist/src/agent/tools/factory.d.ts +4 -5
  255. package/dist/src/agent/tools/factory.js +24 -51
  256. package/dist/src/agent/tools/index.d.ts +0 -3
  257. package/dist/src/agent/tools/index.js +1 -4
  258. package/dist/src/agent/tools/managed-job-tool.js +1 -1
  259. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  260. package/dist/src/agent/tools/memory-tool.js +14 -36
  261. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  262. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  263. package/dist/src/agent/tools/workflow-tool.js +4 -4
  264. package/dist/src/agent/tools/write.d.ts +0 -2
  265. package/dist/src/agent/tools/write.js +0 -11
  266. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  267. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  268. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  269. package/dist/src/agent/workflow/builtins/index.js +2 -2
  270. package/dist/src/agent/workflow/index.js +2 -2
  271. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  272. package/dist/src/agent/workflow/workflow-child-tools.js +7 -4
  273. package/dist/src/agent/workspace-runtime/registry.d.ts +2 -4
  274. package/dist/src/agent/workspace-runtime/registry.js +1 -2
  275. package/dist/src/agent-manifest/index.js +3 -3
  276. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  277. package/dist/src/agent-manifest/resolver.js +47 -20
  278. package/dist/src/agent-manifest/schema.d.ts +128 -52
  279. package/dist/src/agent-manifest/schema.js +46 -8
  280. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  281. package/dist/src/ai-assist/text-assist.js +4 -4
  282. package/dist/src/auth/credentials.js +2 -2
  283. package/dist/src/auth/profiles/store.js +1 -1
  284. package/dist/src/auth/sync-provider-auth.js +2 -2
  285. package/dist/src/automations/domain/defaults.js +1 -1
  286. package/dist/src/automations/domain/types.d.ts +15 -1
  287. package/dist/src/automations/domain/validation.d.ts +336 -12
  288. package/dist/src/automations/domain/validation.js +6 -0
  289. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  290. package/dist/src/automations/draft/automation-draft-validator.d.ts +62 -1
  291. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  292. package/dist/src/automations/index.js +1 -1
  293. package/dist/src/automations/service/action-executor.d.ts +2 -2
  294. package/dist/src/automations/service/action-executor.js +21 -1
  295. package/dist/src/automations/service/automation-service.js +21 -21
  296. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  297. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  298. package/dist/src/channels/channel-domain.d.ts +0 -4
  299. package/dist/src/channels/plugin-types.d.ts +0 -2
  300. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  301. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  302. package/dist/src/chat-commands/context.d.ts +0 -3
  303. package/dist/src/chat-commands/context.js +0 -2
  304. package/dist/src/chat-commands/index.d.ts +1 -2
  305. package/dist/src/chat-commands/index.js +3 -5
  306. package/dist/src/chat-commands/types.d.ts +0 -3
  307. package/dist/src/cli/command-catalog.js +0 -43
  308. package/dist/src/cli/command-loaders.js +0 -1
  309. package/dist/src/cli/command-manifest.js +0 -4
  310. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  311. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  312. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  313. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  314. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  315. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  316. package/dist/src/cli/commands/gateway/service.js +4 -4
  317. package/dist/src/cli/commands/models.js +1 -1
  318. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  319. package/dist/src/cli/commands/project.js +12 -33
  320. package/dist/src/cli/commands/providers.d.ts +4 -4
  321. package/dist/src/cli/commands/providers.js +16 -16
  322. package/dist/src/cli/commands/search.js +7 -7
  323. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  324. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  325. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  326. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  327. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  328. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  329. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  330. package/dist/src/cli/commands/skills.d.ts +7 -0
  331. package/dist/src/cli/commands/skills.js +16 -16
  332. package/dist/src/cli/commands/update.js +1 -1
  333. package/dist/src/cli/commands/voice.d.ts +1 -1
  334. package/dist/src/cli/commands/voice.js +6 -6
  335. package/dist/src/cli/templates.js +1 -1
  336. package/dist/src/commands/agents.config.js +2 -18
  337. package/dist/src/config/agent-profile.d.ts +1 -1
  338. package/dist/src/config/agent-profile.js +1 -1
  339. package/dist/src/config/index.js +7 -7
  340. package/dist/src/config/loader.js +1 -1
  341. package/dist/src/config/models-json.js +1 -1
  342. package/dist/src/config/paths.d.ts +0 -3
  343. package/dist/src/config/paths.js +2 -7
  344. package/dist/src/config/schema.d.ts +160 -258
  345. package/dist/src/config/schema.js +8 -114
  346. package/dist/src/config/web-patch.d.ts +0 -29
  347. package/dist/src/config/web-patch.js +2 -69
  348. package/dist/src/connectors/composio-catalog.js +7 -20
  349. package/dist/src/connectors/composio-sessions.js +14 -4
  350. package/dist/src/connectors/composio.d.ts +7 -2
  351. package/dist/src/connectors/composio.js +49 -40
  352. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  353. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  354. package/dist/src/connectors/connector-identity.d.ts +2 -0
  355. package/dist/src/connectors/connector-identity.js +64 -1
  356. package/dist/src/connectors/health.js +1 -1
  357. package/dist/src/connectors/learning-coordinator.js +34 -15
  358. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  359. package/dist/src/connectors/learning-recipes.js +11 -1
  360. package/dist/src/connectors/source-change-publisher.js +5 -4
  361. package/dist/src/connectors/types.d.ts +16 -0
  362. package/dist/src/daemon/launchd.js +2 -2
  363. package/dist/src/daemon/schtasks.js +1 -1
  364. package/dist/src/daemon/service.js +3 -3
  365. package/dist/src/daemon/systemd.js +1 -1
  366. package/dist/src/daemon/types.d.ts +5 -5
  367. package/dist/src/discussions/analyzer.d.ts +6 -6
  368. package/dist/src/discussions/analyzer.js +32 -22
  369. package/dist/src/discussions/index.d.ts +3 -2
  370. package/dist/src/discussions/index.js +5 -4
  371. package/dist/src/discussions/live-worker.d.ts +5 -3
  372. package/dist/src/discussions/live-worker.js +24 -12
  373. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  374. package/dist/src/discussions/organizer-worker.js +58 -0
  375. package/dist/src/discussions/organizer.d.ts +22 -0
  376. package/dist/src/discussions/organizer.js +92 -0
  377. package/dist/src/discussions/repository.d.ts +16 -5
  378. package/dist/src/discussions/repository.js +159 -135
  379. package/dist/src/discussions/sealer.d.ts +25 -0
  380. package/dist/src/discussions/sealer.js +116 -0
  381. package/dist/src/discussions/service.d.ts +2 -1
  382. package/dist/src/discussions/service.js +70 -60
  383. package/dist/src/discussions/transcript.js +1 -1
  384. package/dist/src/discussions/types.d.ts +45 -20
  385. package/dist/src/discussions/types.js +4 -2
  386. package/dist/src/extensions/extension-registry-impl.d.ts +3 -1
  387. package/dist/src/extensions/extension-registry-impl.js +7 -1
  388. package/dist/src/extensions/loader.js +1 -1
  389. package/dist/src/extensions/lockfile.js +1 -1
  390. package/dist/src/extensions/types/core.d.ts +5 -4
  391. package/dist/src/extensions/types/tui.d.ts +2 -2
  392. package/dist/src/extensions/update.d.ts +3 -3
  393. package/dist/src/extensions/update.js +14 -14
  394. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  395. package/dist/src/gateway/agent-builtin-tools.js +5 -3
  396. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  397. package/dist/src/gateway/agents-admin.js +17 -19
  398. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  399. package/dist/src/gateway/capability-presets-admin.js +59 -2
  400. package/dist/src/gateway/chat-limits.d.ts +6 -2
  401. package/dist/src/gateway/chat-limits.js +17 -3
  402. package/dist/src/gateway/chat-stream/mapper.js +16 -1
  403. package/dist/src/gateway/chat-stream/protocol.d.ts +4 -0
  404. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  405. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  406. package/dist/src/gateway/file-path-classifier.js +1 -1
  407. package/dist/src/gateway/file-reference-errors.d.ts +6 -0
  408. package/dist/src/gateway/file-reference-errors.js +21 -0
  409. package/dist/src/gateway/hono/app.js +9 -10
  410. package/dist/src/gateway/hono/index.d.ts +1 -1
  411. package/dist/src/gateway/hono/index.js +2 -2
  412. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  413. package/dist/src/gateway/hono/lib/config-payload.js +7 -5
  414. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  415. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  416. package/dist/src/gateway/hono/routes/activity.js +1 -2
  417. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  418. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  419. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  420. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  421. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  422. package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -7
  423. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  424. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  425. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  426. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  427. package/dist/src/gateway/hono/routes/home.js +2 -2
  428. package/dist/src/gateway/hono/routes/index.js +2 -4
  429. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  430. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  431. package/dist/src/gateway/hono/routes/media.js +9 -3
  432. package/dist/src/gateway/hono/routes/memory.js +38 -113
  433. package/dist/src/gateway/hono/routes/models.js +1 -1
  434. package/dist/src/gateway/hono/routes/projects.js +254 -601
  435. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  436. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  437. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  438. package/dist/src/gateway/hono/routes/workflows.js +8 -9
  439. package/dist/src/gateway/hono/routes/workspace.js +34 -13
  440. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  441. package/dist/src/gateway/hono/routes/you.js +252 -80
  442. package/dist/src/gateway/hono/sse.d.ts +1 -16
  443. package/dist/src/gateway/hono/sse.js +4 -161
  444. package/dist/src/gateway/index.js +2 -2
  445. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  446. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  447. package/dist/src/gateway/security/csp.d.ts +2 -0
  448. package/dist/src/gateway/security/csp.js +4 -0
  449. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  450. package/dist/src/gateway/service/agent-runner.js +97 -46
  451. package/dist/src/gateway/service/config-coordinator.js +2 -2
  452. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  453. package/dist/src/gateway/service/run-gateway-agent.js +31 -43
  454. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  455. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  456. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  457. package/dist/src/gateway/service.d.ts +28 -16
  458. package/dist/src/gateway/service.js +154 -137
  459. package/dist/src/gateway/session-reset-service.js +6 -6
  460. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  461. package/dist/src/i18n/index.d.ts +0 -1
  462. package/dist/src/i18n/index.js +1 -2
  463. package/dist/src/i18n/language-consistency.d.ts +10 -0
  464. package/dist/src/i18n/language-consistency.js +34 -0
  465. package/dist/src/i18n/response-language.d.ts +8 -0
  466. package/dist/src/i18n/response-language.js +17 -0
  467. package/dist/src/i18n/share-tool-bundle.js +2 -2
  468. package/dist/src/infra/update-runner.js +1 -1
  469. package/dist/src/mcp/channel-bridge.js +5 -3
  470. package/dist/src/media/store.js +1 -1
  471. package/dist/src/media/types.d.ts +1 -1
  472. package/dist/src/media/uri.js +1 -2
  473. package/dist/src/media-understanding/runner.d.ts +1 -1
  474. package/dist/src/media-understanding/runner.js +9 -9
  475. package/dist/src/media-understanding/types.d.ts +4 -4
  476. package/dist/src/mobile/notification-service.js +16 -21
  477. package/dist/src/mobile/notification-types.d.ts +2 -2
  478. package/dist/src/notes/types.d.ts +0 -1
  479. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  480. package/dist/src/proactive/execution/context.js +45 -28
  481. package/dist/src/proactive/execution/insight.js +1 -1
  482. package/dist/src/proactive/temporal/worker.js +2 -2
  483. package/dist/src/projects/index.d.ts +0 -1
  484. package/dist/src/projects/index.js +1 -2
  485. package/dist/src/projects/project-loop.d.ts +16 -8
  486. package/dist/src/projects/project-loop.js +41 -48
  487. package/dist/src/projects/project-service.d.ts +14 -4
  488. package/dist/src/projects/project-service.js +18 -10
  489. package/dist/src/projects/project-store.d.ts +36 -3
  490. package/dist/src/projects/project-store.js +116 -14
  491. package/dist/src/projects/types.d.ts +50 -3
  492. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  493. package/dist/src/providers/index.js +2 -2
  494. package/dist/src/providers/model-registry.js +1 -1
  495. package/dist/src/providers/model-response.d.ts +4 -0
  496. package/dist/src/providers/model-response.js +28 -0
  497. package/dist/src/providers/register-runtime-providers.js +1 -1
  498. package/dist/src/session/config-types.d.ts +3 -0
  499. package/dist/src/session/index.d.ts +0 -1
  500. package/dist/src/session/index.js +1 -2
  501. package/dist/src/session/init-session-turn.js +6 -6
  502. package/dist/src/session/store.js +4 -4
  503. package/dist/src/session/types.d.ts +1 -6
  504. package/dist/src/share/share-zip.js +1 -1
  505. package/dist/src/share/site-proxy.js +1 -1
  506. package/dist/src/storage/sqlite/config-repository.js +7 -4
  507. package/dist/src/storage/sqlite/connection.js +1 -1
  508. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  509. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  510. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  511. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  512. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  513. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  514. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  515. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  516. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  517. package/dist/src/storage/sqlite/index.d.ts +6 -4
  518. package/dist/src/storage/sqlite/index.js +7 -5
  519. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  520. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  521. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  522. package/dist/src/storage/sqlite/memory-records-repository.js +112 -139
  523. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  524. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  525. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  526. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  527. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  528. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  529. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  530. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  531. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  532. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  533. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  534. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  535. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  536. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  537. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  538. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  539. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  540. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  541. package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +18 -0
  542. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  543. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  544. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  545. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  546. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  547. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  548. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  549. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  550. package/dist/src/storage/sqlite/schema.js +5 -2
  551. package/dist/src/storage/sqlite/schema.sql +76 -61
  552. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  553. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  554. package/dist/src/storage/sqlite/session-repository.js +5 -6
  555. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  556. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  557. package/dist/src/tasks/execution-context.d.ts +23 -0
  558. package/dist/src/{work → tasks}/execution-context.js +7 -20
  559. package/dist/src/{work → tasks}/home-query-service.d.ts +16 -28
  560. package/dist/src/{work → tasks}/home-query-service.js +56 -126
  561. package/dist/src/tasks/index.d.ts +20 -0
  562. package/dist/src/tasks/index.js +21 -0
  563. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  564. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  565. package/dist/src/tasks/project-operating-view-service.js +77 -0
  566. package/dist/src/tasks/task-application-service.d.ts +35 -0
  567. package/dist/src/tasks/task-application-service.js +423 -0
  568. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  569. package/dist/src/tasks/task-context-assembler.js +125 -0
  570. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  571. package/dist/src/tasks/task-context-repository.js +97 -0
  572. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  573. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  574. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  575. package/dist/src/tasks/task-contract-planner.js +87 -0
  576. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  577. package/dist/src/tasks/task-dependency-service.js +81 -0
  578. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  579. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  580. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  581. package/dist/src/tasks/task-read-model-projector.js +93 -0
  582. package/dist/src/tasks/task-repository.d.ts +82 -0
  583. package/dist/src/tasks/task-repository.js +185 -0
  584. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  585. package/dist/src/tasks/task-run-coordinator.js +130 -0
  586. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  587. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  588. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  589. package/dist/src/tasks/task-run-repository.js +312 -0
  590. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  591. package/dist/src/tasks/task-signal-service.js +72 -0
  592. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  593. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  594. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  595. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  596. package/dist/src/tui/backends/embedded-backend.d.ts +11 -1
  597. package/dist/src/tui/backends/embedded-backend.js +29 -3
  598. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  599. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  600. package/dist/src/tui/components/settings-selector.js +0 -20
  601. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  602. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  603. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  604. package/dist/src/tui/tool-summary.d.ts +1 -2
  605. package/dist/src/tui/tool-summary.js +2 -18
  606. package/dist/src/tui/tui-backend.d.ts +13 -1
  607. package/dist/src/tui/tui-backend.js +10 -1
  608. package/dist/src/tui/tui-command-formatters.js +1 -2
  609. package/dist/src/tui/tui-commands.js +8 -19
  610. package/dist/src/tui/tui-session-actions.js +0 -2
  611. package/dist/src/tui/tui-settings.d.ts +0 -6
  612. package/dist/src/tui/tui-settings.js +0 -10
  613. package/dist/src/tui/tui-startup-resources.js +1 -1
  614. package/dist/src/tui/tui-types.d.ts +1 -4
  615. package/dist/src/tui/tui-types.js +1 -2
  616. package/dist/src/tui/tui.js +90 -73
  617. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  618. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  619. package/dist/src/tunnel/frpc-binary.js +1 -1
  620. package/dist/src/tunnel/frpc-extract.js +1 -1
  621. package/dist/src/user-context/config.d.ts +165 -16
  622. package/dist/src/user-context/config.js +74 -14
  623. package/dist/src/user-context/context-compiler.d.ts +4 -8
  624. package/dist/src/user-context/context-compiler.js +7 -10
  625. package/dist/src/user-context/interaction-state.js +8 -4
  626. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  627. package/dist/src/user-context/manual-understanding.js +69 -0
  628. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  629. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  630. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  631. package/dist/src/user-context/memory-readiness.js +41 -0
  632. package/dist/src/user-context/memory-use-audit.js +3 -2
  633. package/dist/src/user-context/projection.d.ts +14 -0
  634. package/dist/src/user-context/projection.js +15 -3
  635. package/dist/src/user-context/relationship-continuity.js +1 -1
  636. package/dist/src/user-context/runtime.d.ts +0 -2
  637. package/dist/src/user-context/runtime.js +1 -10
  638. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  639. package/dist/src/user-context/source-recommendations.js +9 -8
  640. package/dist/src/voice/local/model-files.js +1 -1
  641. package/dist/src/voice/stt/transcribe-core.js +3 -3
  642. package/dist/src/voice/stt/types.d.ts +2 -2
  643. package/dist/src/voice/tts/speak-core.js +4 -4
  644. package/dist/src/voice/tts/types.d.ts +2 -2
  645. package/dist/src/work-discovery/analyzer.js +5 -5
  646. package/dist/src/work-discovery/service.d.ts +1 -10
  647. package/dist/src/work-discovery/service.js +4 -6
  648. package/dist/src/work-discovery/types.d.ts +1 -1
  649. package/dist/src/workflows/domain/run.d.ts +3 -4
  650. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  651. package/dist/src/workflows/index.js +1 -1
  652. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  653. package/dist/src/workflows/service/workflow-run-service.js +105 -35
  654. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -2
  655. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  656. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  657. package/dist/src/workflows/store/run-index-store.js +10 -8
  658. package/dist/src/workflows/store/run-store.d.ts +1 -1
  659. package/dist/src/workflows/store/run-store.js +2 -2
  660. package/package.json +5 -5
  661. package/dist/gateway/static/root/assets/agents-DgGj9bu6.js +0 -2
  662. package/dist/gateway/static/root/assets/apps-page-B5xahuT-.js +0 -1
  663. package/dist/gateway/static/root/assets/automations-page-BUYrvMmD.js +0 -6
  664. package/dist/gateway/static/root/assets/browser-settings-page-Cjw07q9h.js +0 -8
  665. package/dist/gateway/static/root/assets/browser-workflow-inputs-_gu08MA4.js +0 -1
  666. package/dist/gateway/static/root/assets/capabilities-settings-panel-D_dfVxHY.js +0 -7
  667. package/dist/gateway/static/root/assets/capability-presets-api-DhCn9rPv.js +0 -1
  668. package/dist/gateway/static/root/assets/capability-presets-settings-panel-LWWIYUT7.js +0 -1
  669. package/dist/gateway/static/root/assets/channels-settings-Cyj5OunL.js +0 -1
  670. package/dist/gateway/static/root/assets/channels-status-swr-TEFnV0IG.js +0 -1
  671. package/dist/gateway/static/root/assets/connectors-page-0TobCpBB.js +0 -2
  672. package/dist/gateway/static/root/assets/desktop-pet-CwVSLL6N.js +0 -1
  673. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  674. package/dist/gateway/static/root/assets/dreaming-settings-Da9FeWQl.js +0 -3
  675. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  676. package/dist/gateway/static/root/assets/goals-settings-Dx9uTyWF.js +0 -1
  677. package/dist/gateway/static/root/assets/heartbeat-settings-Cnr5ORXL.js +0 -1
  678. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  679. package/dist/gateway/static/root/assets/index-BA56bQ68.js +0 -224
  680. package/dist/gateway/static/root/assets/local-app-workbench-page-DSUNtLHg.js +0 -2
  681. package/dist/gateway/static/root/assets/logs-page-yI8kpQtO.js +0 -7
  682. package/dist/gateway/static/root/assets/messages-H_iJjnEM.js +0 -3
  683. package/dist/gateway/static/root/assets/notes-workbench-BD297EZt.js +0 -4
  684. package/dist/gateway/static/root/assets/outcome-detail-page-C5i_ZR9a.js +0 -1
  685. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  686. package/dist/gateway/static/root/assets/project-detail-page-D1HGz7Dy.js +0 -1
  687. package/dist/gateway/static/root/assets/projects-page-CqP2TnW-.js +0 -1
  688. package/dist/gateway/static/root/assets/remote-access-hub-BXdVJLS3.js +0 -1
  689. package/dist/gateway/static/root/assets/save-bar-controls-B53UNtDM.js +0 -1
  690. package/dist/gateway/static/root/assets/schedule-field-C3dIMN5q.js +0 -1
  691. package/dist/gateway/static/root/assets/sessions-page-CPAwDdl5.js +0 -1
  692. package/dist/gateway/static/root/assets/settings-advanced-gate-C-jGsoft.js +0 -1
  693. package/dist/gateway/static/root/assets/settings-page-Di5x6Xrc.js +0 -1
  694. package/dist/gateway/static/root/assets/setup-status-panel-uxEE6gAB.js +0 -1
  695. package/dist/gateway/static/root/assets/shares-settings-2mcsMWgn.js +0 -1
  696. package/dist/gateway/static/root/assets/skill-reload-api-ocDwsrEt.js +0 -1
  697. package/dist/gateway/static/root/assets/skills-page-9_jfsFU5.js +0 -2
  698. package/dist/gateway/static/root/assets/system-settings-panel-CIJ66cUy.js +0 -1
  699. package/dist/gateway/static/root/assets/time-picker-D0zAsHOo.js +0 -1
  700. package/dist/gateway/static/root/assets/use-channel-catalog-BQz3K7xj.js +0 -1
  701. package/dist/gateway/static/root/assets/user-context-page-Bn4BLg4W.js +0 -1
  702. package/dist/gateway/static/root/assets/work-copy-Cwyan9Sn.js +0 -1
  703. package/dist/gateway/static/root/assets/work-discovery-page-iJ9RBSpu.js +0 -1
  704. package/dist/gateway/static/root/assets/work-item-detail-page-CqTH7PQX.js +0 -1
  705. package/dist/gateway/static/root/assets/work-page-H3m99ccS.js +0 -3
  706. package/dist/gateway/static/root/assets/workflows-page-BxZSKMfv.js +0 -11
  707. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  708. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  709. package/dist/src/agent/feedback/feedback-coordinator.d.ts +0 -73
  710. package/dist/src/agent/feedback/feedback-coordinator.js +0 -156
  711. package/dist/src/agent/feedback/index.d.ts +0 -4
  712. package/dist/src/agent/feedback/index.js +0 -2
  713. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  714. package/dist/src/agent/goals/checklist-judge.js +0 -237
  715. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  716. package/dist/src/agent/goals/checklist-types.js +0 -24
  717. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  718. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  719. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  720. package/dist/src/agent/goals/goal-locale.js +0 -61
  721. package/dist/src/agent/goals/judge.d.ts +0 -41
  722. package/dist/src/agent/goals/judge.js +0 -176
  723. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  724. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  725. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  726. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  727. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  728. package/dist/src/agent/goals/post-turn.js +0 -187
  729. package/dist/src/agent/goals/state.d.ts +0 -46
  730. package/dist/src/agent/goals/state.js +0 -80
  731. package/dist/src/agent/lifecycle/progress.d.ts +0 -90
  732. package/dist/src/agent/lifecycle/progress.js +0 -340
  733. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -183
  734. package/dist/src/agent/mcp/mcp-tool-meta.d.ts +0 -8
  735. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -13
  736. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.d.ts +0 -14
  737. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -49
  738. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  739. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  740. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  741. package/dist/src/agent/memory/dreaming/events.js +0 -42
  742. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  743. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  744. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  745. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  746. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  747. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  748. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  749. package/dist/src/agent/prompt/memory/index.js +0 -101
  750. package/dist/src/agent/tools/composio-tool.d.ts +0 -21
  751. package/dist/src/agent/tools/composio-tool.js +0 -261
  752. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  753. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  754. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  755. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  756. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  757. package/dist/src/agent/tools/goal-tool.js +0 -136
  758. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  759. package/dist/src/chat-commands/builtins/goal.js +0 -122
  760. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  761. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  762. package/dist/src/cli/commands/goal.d.ts +0 -4
  763. package/dist/src/cli/commands/goal.js +0 -235
  764. package/dist/src/discussions/pipeline.d.ts +0 -33
  765. package/dist/src/discussions/pipeline.js +0 -205
  766. package/dist/src/discussions/worker.js +0 -74
  767. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  768. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  769. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  770. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  771. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  772. package/dist/src/gateway/hono/routes/goals.js +0 -786
  773. package/dist/src/gateway/hono/routes/work.js +0 -207
  774. package/dist/src/goals/goal-notifications.d.ts +0 -31
  775. package/dist/src/goals/goal-notifications.js +0 -157
  776. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  777. package/dist/src/goals/goal-queue-store.js +0 -133
  778. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  779. package/dist/src/goals/goal-queue-types.js +0 -1
  780. package/dist/src/goals/goal-runner.d.ts +0 -17
  781. package/dist/src/goals/goal-runner.js +0 -153
  782. package/dist/src/goals/goal-service.d.ts +0 -87
  783. package/dist/src/goals/goal-service.js +0 -323
  784. package/dist/src/goals/goal-store.d.ts +0 -44
  785. package/dist/src/goals/goal-store.js +0 -472
  786. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  787. package/dist/src/goals/goal-workflow-judge.js +0 -145
  788. package/dist/src/goals/index.d.ts +0 -10
  789. package/dist/src/goals/index.js +0 -7
  790. package/dist/src/goals/types.d.ts +0 -136
  791. package/dist/src/goals/types.js +0 -1
  792. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  793. package/dist/src/i18n/goals-bundle.js +0 -61
  794. package/dist/src/i18n/locales/goals.en.js +0 -36
  795. package/dist/src/i18n/locales/goals.zh.js +0 -35
  796. package/dist/src/projects/goal-bind.d.ts +0 -4
  797. package/dist/src/projects/goal-bind.js +0 -38
  798. package/dist/src/session/abort-cutoff.d.ts +0 -6
  799. package/dist/src/session/abort-cutoff.js +0 -8
  800. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  801. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  802. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  803. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  804. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  805. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  806. package/dist/src/work/execution-context.d.ts +0 -16
  807. package/dist/src/work/index.d.ts +0 -14
  808. package/dist/src/work/index.js +0 -15
  809. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  810. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  811. package/dist/src/work/outcome-execution-service.js +0 -60
  812. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  813. package/dist/src/work/outcome-projection-service.js +0 -51
  814. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  815. package/dist/src/work/outcome-receipt-service.js +0 -55
  816. package/dist/src/work/outcome-repository.d.ts +0 -50
  817. package/dist/src/work/outcome-repository.js +0 -112
  818. package/dist/src/work/outcome-run-coordinator.js +0 -117
  819. package/dist/src/work/project-operating-view-service.js +0 -46
  820. package/dist/src/work/work-intake-repository.d.ts +0 -49
  821. package/dist/src/work/work-intake-repository.js +0 -97
  822. package/dist/src/work/work-intake-service.d.ts +0 -26
  823. package/dist/src/work/work-intake-service.js +0 -171
  824. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  825. package/dist/src/work/work-value-metrics-service.js +0 -88
  826. package/dist/src/work-items/agent-context.d.ts +0 -7
  827. package/dist/src/work-items/agent-context.js +0 -73
  828. package/dist/src/work-items/index.d.ts +0 -5
  829. package/dist/src/work-items/index.js +0 -5
  830. package/dist/src/work-items/types.d.ts +0 -112
  831. package/dist/src/work-items/types.js +0 -1
  832. package/dist/src/work-items/work-item-service.d.ts +0 -36
  833. package/dist/src/work-items/work-item-service.js +0 -281
  834. package/dist/src/work-items/work-item-store.d.ts +0 -22
  835. package/dist/src/work-items/work-item-store.js +0 -313
  836. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  837. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  838. /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
  };
@@ -93,6 +79,7 @@ function parseSource(json) {
93
79
  function rowToRecord(row) {
94
80
  return {
95
81
  id: row.record_id,
82
+ providerId: row.provider_id,
96
83
  kind: row.kind,
97
84
  status: row.status,
98
85
  ...row.canonical_key ? { canonicalKey: row.canonical_key } : {},
@@ -205,6 +192,7 @@ function upsertMemoryRecord(input) {
205
192
  });
206
193
  return {
207
194
  id,
195
+ providerId: input.providerId,
208
196
  kind: input.kind,
209
197
  status,
210
198
  ...input.canonicalKey ? { canonicalKey: input.canonicalKey } : {},
@@ -365,7 +353,7 @@ function searchMemoryRecords(options) {
365
353
  score: memoryLexicalSimilarity(options.query, record.content),
366
354
  snippet: record.content,
367
355
  citation: {
368
- providerId: record.source.provider ?? options.providerId ?? "local",
356
+ providerId: record.providerId,
369
357
  recordId: record.id,
370
358
  path: record.source.path,
371
359
  lineStart: record.source.lineStart,
@@ -398,6 +386,12 @@ function deleteMemoryRecord(recordId) {
398
386
  return db.prepare(`DELETE FROM memory_records WHERE record_id = ?`).run(recordId).changes > 0;
399
387
  });
400
388
  }
389
+ /** Change lifecycle status without reconstructing or weakening the record's provenance. */
390
+ function setMemoryRecordStatus(recordId, status, nowMs = Date.now()) {
391
+ return runSqliteWriteTransaction((db) => {
392
+ return db.prepare(`UPDATE memory_records SET status = ?, updated_at = ? WHERE record_id = ?`).run(status, nowMs, recordId).changes > 0;
393
+ });
394
+ }
401
395
  function markMemoryRecordsConflicted(recordIds, conflictGroupId) {
402
396
  const ids = [...new Set(recordIds.filter(Boolean))];
403
397
  if (!ids.length || !conflictGroupId.trim()) return 0;
@@ -500,13 +494,12 @@ function setMemoryProviderState(providerId, scopeKey, state) {
500
494
  function appendMemoryTraceEvent(input) {
501
495
  const id = input.traceId ?? randomUUID();
502
496
  const now = input.nowMs ?? Date.now();
503
- const feedback = input.feedback ? normalizeMemoryTraceFeedback(input.feedback, now) : void 0;
504
497
  runSqliteWriteTransaction((db) => {
505
498
  db.prepare(`INSERT INTO memory_trace_events (
506
499
  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,
500
+ result_count, selected_record_ids_json, skipped_reason, error, duration_ms, created_at,
508
501
  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);
502
+ ) 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
503
  });
511
504
  return id;
512
505
  }
@@ -537,50 +530,24 @@ function listMemoryTraceEvents(options = {}) {
537
530
  ORDER BY created_at DESC
538
531
  LIMIT ?`).all(...params, limit).map(memoryTraceRowToPayload);
539
532
  }
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";
533
+ function reconcileUserUnderstandingFeedback(db, trace, recordFeedback, nowMs) {
534
+ if (trace.phase !== "inject" || recordFeedback.length === 0) return void 0;
561
535
  const evaluatedRecordIds = [];
562
536
  const needsReviewRecordIds = [];
563
537
  const actions = [];
564
- for (const recordId of new Set(parseStringArray(trace.selected_record_ids_json))) {
538
+ const selected = new Set(parseStringArray(trace.selected_record_ids_json));
539
+ for (const feedback of recordFeedback) {
540
+ const recordId = feedback.record_id;
541
+ if (!recordId || !selected.has(recordId)) continue;
565
542
  const record = db.prepare(`SELECT * FROM memory_records
566
- WHERE record_id = ?
567
- AND status = 'active'
543
+ WHERE record_id = ? AND status = 'active'
568
544
  AND tags_json LIKE '%\"user-understanding\"%'`).get(recordId);
569
545
  if (!record) continue;
570
546
  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;
547
+ const rows = db.prepare(`SELECT rating FROM memory_feedback WHERE record_id = ?`).all(recordId);
548
+ const helpful = rows.filter((row) => row.rating === "helpful").length;
549
+ const notHelpful = rows.filter((row) => row.rating !== "helpful" && row.rating !== "mixed").length;
550
+ if (!(feedback.source === "system" && feedback.reason_code === "detected_explicit_user_correction") && (notHelpful < USER_UNDERSTANDING_REMEDIATION_POLICY.minNotHelpful || notHelpful <= helpful)) continue;
584
551
  const nextConfidence = record.confidence == null ? null : Math.round(Math.max(.1, record.confidence - USER_UNDERSTANDING_REMEDIATION_POLICY.confidencePenalty) * 1e3) / 1e3;
585
552
  if (db.prepare(`UPDATE memory_records
586
553
  SET status = 'needs_review', confidence = ?, review_after = ?, updated_at = ?
@@ -604,37 +571,46 @@ function reconcileUserUnderstandingFeedback(db, trace, feedback, nowMs) {
604
571
  if (needsReviewRecordIds.length > 0) db.prepare(`INSERT INTO memory_trace_events (
605
572
  trace_id, session_key, turn_id, phase, provider_id, request_json,
606
573
  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({
574
+ duration_ms, created_at, user_id, source_agent_id
575
+ ) VALUES (?, ?, ?, 'remediation', 'user-understanding', ?, ?, ?, NULL, NULL, 0, ?, ?, ?)`).run(randomUUID(), trace.session_key, trace.turn_id, JSON.stringify({
609
576
  triggerTraceId: trace.trace_id,
610
- reason: explicitCorrection ? "explicit_user_correction" : "repeated_not_helpful_feedback",
577
+ reason: "record_feedback_threshold",
611
578
  policy: USER_UNDERSTANDING_REMEDIATION_POLICY,
612
579
  actions
613
- }), needsReviewRecordIds.length, JSON.stringify(needsReviewRecordIds), nowMs);
580
+ }), needsReviewRecordIds.length, JSON.stringify(needsReviewRecordIds), nowMs, LOCAL_USER_ID, trace.source_agent_id);
614
581
  return result;
615
582
  }
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
583
+ function setMemoryTurnFeedback(input) {
584
+ const turnId = input.turnId.trim();
585
+ if (!turnId) return null;
586
+ const trace = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events WHERE turn_id = ? AND phase = 'inject'`).get(turnId);
587
+ if (!trace) return null;
588
+ const nowMs = input.nowMs ?? Date.now();
589
+ const source = input.source ?? "user";
590
+ const selected = new Set(parseStringArray(trace.selected_record_ids_json));
591
+ const records = (input.records ?? []).filter((item) => selected.has(item.recordId));
592
+ let remediation;
593
+ runSqliteWriteTransaction((db) => {
594
+ const upsert = db.prepare(`INSERT INTO memory_feedback (
595
+ feedback_id, trace_id, turn_id, record_id, level, rating, score,
596
+ reason_code, note, source, created_at, updated_at
597
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
598
+ ON CONFLICT DO UPDATE SET rating = excluded.rating, score = excluded.score,
599
+ reason_code = excluded.reason_code, note = excluded.note, updated_at = excluded.updated_at`);
600
+ 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);
601
+ 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);
602
+ 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
603
  });
604
+ return {
605
+ ...memoryTraceRowToPayload(trace),
606
+ ...remediation ? { remediation } : {}
607
+ };
608
+ }
609
+ function getMemoryTurnFeedback(turnId) {
610
+ const normalized = turnId.trim();
611
+ if (!normalized) return null;
612
+ const trace = getSqliteDatabase().prepare(`SELECT * FROM memory_trace_events WHERE turn_id = ? AND phase = 'inject'`).get(normalized);
613
+ return trace ? memoryTraceRowToPayload(trace) : null;
638
614
  }
639
615
  function summarizeMemoryRecallFeedback(options = {}) {
640
616
  const where = ["phase IN (?, ?)"];
@@ -654,41 +630,37 @@ function summarizeMemoryRecallFeedback(options = {}) {
654
630
  params.push(options.sessionKey);
655
631
  }
656
632
  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);
633
+ const rows = getSqliteDatabase().prepare(`SELECT feedback.* FROM memory_feedback AS feedback
634
+ JOIN memory_trace_events AS trace ON trace.trace_id = feedback.trace_id
635
+ WHERE feedback.level = 'record' AND ${where.map((clause) => `trace.${clause}`).join(" AND ")}
636
+ ORDER BY feedback.updated_at DESC LIMIT ?`).all(...params, limit);
661
637
  const summaries = /* @__PURE__ */ new Map();
662
638
  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);
639
+ const recordId = row.record_id;
640
+ if (!recordId || options.recordId && recordId !== options.recordId) continue;
641
+ const current = summaries.get(recordId) ?? {
642
+ recordId,
643
+ helpful: 0,
644
+ notHelpful: 0,
645
+ mixed: 0,
646
+ irrelevant: 0,
647
+ total: 0,
648
+ averageScore: null,
649
+ scoreTotal: 0,
650
+ scoreCount: 0
651
+ };
652
+ if (row.rating === "helpful") current.helpful += 1;
653
+ if (row.rating === "not_helpful" || row.rating === "incorrect" || row.rating === "outdated" || row.rating === "sensitive") current.notHelpful += 1;
654
+ if (row.rating === "mixed") current.mixed += 1;
655
+ if (row.rating === "irrelevant") current.irrelevant += 1;
656
+ current.total += 1;
657
+ if (typeof row.score === "number") {
658
+ current.scoreTotal += row.score;
659
+ current.scoreCount += 1;
660
+ current.averageScore = current.scoreTotal / current.scoreCount;
691
661
  }
662
+ current.lastFeedbackAt ??= new Date(row.updated_at).toISOString();
663
+ summaries.set(recordId, current);
692
664
  }
693
665
  return [...summaries.values()].map(({ scoreTotal: _scoreTotal, scoreCount: _scoreCount, ...summary }) => summary).sort((a, b) => b.total - a.total);
694
666
  }
@@ -775,17 +747,18 @@ function summarizeUserUnderstandingQuality(options = {}) {
775
747
  helpfulRate: null
776
748
  };
777
749
  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);
750
+ const recallRows = db.prepare(`SELECT feedback.rating, trace.selected_record_ids_json
751
+ FROM memory_feedback AS feedback
752
+ JOIN memory_trace_events AS trace ON trace.trace_id = feedback.trace_id
753
+ WHERE feedback.level = 'response' AND trace.phase IN ('search', 'inject')
754
+ AND feedback.updated_at >= ?`).all(sinceMs);
780
755
  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;
756
+ if (!parseStringArray(row.selected_record_ids_json).some((id) => understandingRecordIds.has(id))) continue;
784
757
  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;
758
+ if (row.rating === "helpful") recall.helpful += 1;
759
+ if (row.rating === "not_helpful" || row.rating === "incorrect" || row.rating === "outdated" || row.rating === "sensitive") recall.notHelpful += 1;
760
+ if (row.rating === "mixed") recall.mixed += 1;
761
+ if (row.rating === "irrelevant") recall.irrelevant += 1;
789
762
  }
790
763
  }
791
764
  recall.helpfulRate = metricRate(recall.helpful, recall.total);
@@ -813,4 +786,4 @@ function parseJsonValue(json, fallback) {
813
786
  }
814
787
  }
815
788
  //#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 };
789
+ 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 '[]';