@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
@@ -1,786 +0,0 @@
1
- import { buildSessionKey, init_session_key, sanitizeSegment } from "../../../routing/session-key.js";
2
- import { getDefaultAgentId, init_resolve_route } from "../../../routing/resolve-route.js";
3
- import { GoalService, normalizeGoalUiLocale } from "../../../goals/goal-service.js";
4
- import "../../../goals/index.js";
5
- import { createWorkflowCatalog } from "../../../agent/workflow/catalog.js";
6
- //#region src/gateway/hono/routes/goals.ts
7
- init_session_key();
8
- init_resolve_route();
9
- function parseLimit(raw, fallback = 50) {
10
- if (!raw) return fallback;
11
- const n = Number.parseInt(raw, 10);
12
- return Number.isFinite(n) ? Math.min(500, Math.max(1, n)) : fallback;
13
- }
14
- function parseStatuses(raw) {
15
- if (!raw?.trim()) return void 0;
16
- const statuses = raw.split(",").map((s) => s.trim()).filter((s) => s === "active" || s === "paused" || s === "blocked" || s === "needs_input" || s === "done" || s === "archived");
17
- return statuses.length ? statuses : void 0;
18
- }
19
- function parseBodyGoalStatus(raw) {
20
- return raw === "active" || raw === "paused" || raw === "blocked" || raw === "needs_input" || raw === "done" || raw === "archived" ? raw : null;
21
- }
22
- function parsePriority(raw) {
23
- return raw === "low" || raw === "normal" || raw === "high" ? raw : void 0;
24
- }
25
- function parseUserTurnAttachment(raw) {
26
- if (!raw || typeof raw !== "object") return null;
27
- const value = raw;
28
- const out = { type: typeof value.type === "string" && value.type.trim() ? value.type.trim() : "file" };
29
- if (typeof value.id === "string" && value.id.trim()) out.id = value.id.trim();
30
- if (typeof value.mimeType === "string" && value.mimeType.trim()) out.mimeType = value.mimeType.trim();
31
- if (typeof value.data === "string" && value.data.trim()) out.data = value.data;
32
- if (typeof value.uri === "string" && value.uri.trim()) out.uri = value.uri.trim();
33
- if (typeof value.name === "string" && value.name.trim()) out.name = value.name.trim();
34
- if (typeof value.size === "number" && Number.isFinite(value.size)) out.size = Math.max(0, Math.floor(value.size));
35
- if (typeof value.workspaceRelativePath === "string" && value.workspaceRelativePath.trim()) out.workspaceRelativePath = value.workspaceRelativePath.trim();
36
- if (typeof value.durationSeconds === "number" && Number.isFinite(value.durationSeconds)) out.durationSeconds = value.durationSeconds;
37
- return out.data || out.uri ? out : null;
38
- }
39
- function parseUserTurnInput(raw) {
40
- if (!raw || typeof raw !== "object") return void 0;
41
- const value = raw;
42
- const text = typeof value.text === "string" ? value.text.trim() : "";
43
- const attachments = Array.isArray(value.attachments) ? value.attachments.map(parseUserTurnAttachment).filter((item) => item !== null) : void 0;
44
- if (!text && !attachments?.length) return void 0;
45
- return {
46
- text,
47
- ...attachments?.length ? { attachments } : {}
48
- };
49
- }
50
- const STOP_WORDS = new Set([
51
- "a",
52
- "an",
53
- "and",
54
- "are",
55
- "as",
56
- "for",
57
- "in",
58
- "is",
59
- "of",
60
- "on",
61
- "or",
62
- "the",
63
- "to",
64
- "with",
65
- "一个",
66
- "这个",
67
- "需要",
68
- "进行",
69
- "推进"
70
- ]);
71
- function tokenizeForWorkflowMatch(text) {
72
- return (text.toLowerCase().match(/[\p{L}\p{N}_-]+/gu) ?? []).map((token) => token.trim()).filter((token) => token.length >= 2 && !STOP_WORDS.has(token));
73
- }
74
- function goalSearchText(goal) {
75
- return [
76
- goal.title,
77
- goal.description,
78
- goal.nextAction,
79
- goal.blockedReason,
80
- ...goal.checklist.map((item) => `${item.text} ${item.evidenceSummary ?? ""}`)
81
- ].filter(Boolean).join("\n");
82
- }
83
- function buildGoalWorkflowSuggestions(params) {
84
- const goalTokens = new Set(tokenizeForWorkflowMatch(goalSearchText(params.goal)));
85
- const runsByDefinition = /* @__PURE__ */ new Map();
86
- for (const run of params.workflowRuns) {
87
- const list = runsByDefinition.get(run.definitionId) ?? [];
88
- list.push(run);
89
- runsByDefinition.set(run.definitionId, list);
90
- }
91
- const suggestions = [];
92
- for (const entry of createWorkflowCatalog().list()) {
93
- const candidateText = [
94
- entry.name,
95
- entry.title,
96
- entry.description,
97
- entry.whenToUse,
98
- ...entry.tags ?? []
99
- ].filter(Boolean).join("\n");
100
- const candidateTokens = new Set(tokenizeForWorkflowMatch(candidateText));
101
- const matched = [...goalTokens].filter((token) => candidateTokens.has(token));
102
- const relatedRuns = runsByDefinition.get(entry.name) ?? [];
103
- const terminalRuns = relatedRuns.filter((run) => run.status !== "queued" && run.status !== "running");
104
- const succeededRuns = terminalRuns.filter((run) => run.status === "succeeded");
105
- const successRate = terminalRuns.length ? succeededRuns.length / terminalRuns.length : void 0;
106
- const lastRun = relatedRuns.toSorted((left, right) => right.createdAtMs - left.createdAtMs)[0];
107
- let score = matched.length * 8;
108
- if (entry.tags?.some((tag) => goalTokens.has(tag.toLowerCase()))) score += 8;
109
- if (entry.whenToUse && matched.length > 0) score += 4;
110
- if (successRate != null) score += Math.round(successRate * 10);
111
- if (lastRun?.status === "succeeded") score += 4;
112
- if (lastRun?.status === "failed" || lastRun?.status === "timeout") score -= 3;
113
- if (score <= 0) score = entry.source === "builtin" ? 1 : 0;
114
- const reasons = [];
115
- if (matched.length) reasons.push(`matches ${matched.slice(0, 4).join(", ")}`);
116
- if (successRate != null) reasons.push(`${Math.round(successRate * 100)}% success rate`);
117
- if (lastRun) reasons.push(`last run ${lastRun.status}`);
118
- if (!reasons.length && entry.whenToUse) reasons.push("general workflow fit");
119
- if (score > 0) suggestions.push({
120
- definitionId: entry.name,
121
- name: entry.name,
122
- title: entry.title || entry.name,
123
- description: entry.description,
124
- score,
125
- reasons,
126
- tags: entry.tags ?? [],
127
- successRate,
128
- lastRunStatus: lastRun?.status
129
- });
130
- }
131
- return suggestions.sort((left, right) => right.score - left.score || left.name.localeCompare(right.name)).slice(0, 5);
132
- }
133
- function buildGoalActivities(input) {
134
- const activities = [];
135
- for (const item of input.queue.filter((queueItem) => queueItem.goalId === input.goalId)) activities.push({
136
- id: `queue:${item.id}`,
137
- kind: "queue",
138
- status: item.status,
139
- title: "Goal queued",
140
- summary: item.lastError || item.userTurn?.text || void 0,
141
- createdAt: item.finishedAt ?? item.startedAt ?? item.nextRunAt ?? item.enqueuedAt,
142
- link: item.sessionKey ? {
143
- type: "chat",
144
- value: item.sessionKey
145
- } : void 0,
146
- data: item
147
- });
148
- for (const run of input.runs) activities.push({
149
- id: `goal_run:${run.id}`,
150
- kind: "goal_run",
151
- status: run.verdict ?? run.status,
152
- title: "Goal run judged",
153
- summary: run.reason || run.assistantPreview || run.nextAction,
154
- createdAt: run.finishedAt ?? run.startedAt,
155
- data: run
156
- });
157
- for (const run of input.workflowRuns) activities.push({
158
- id: `workflow_run:${run.id}`,
159
- kind: "workflow_run",
160
- status: run.status,
161
- title: run.title || run.definitionId,
162
- summary: run.definitionId,
163
- createdAt: run.completedAtMs ?? run.startedAtMs ?? run.createdAtMs,
164
- link: {
165
- type: "workflow_run",
166
- value: run.id
167
- },
168
- data: run
169
- });
170
- for (const event of input.events) activities.push({
171
- id: `event:${event.id}`,
172
- kind: "event",
173
- status: event.kind,
174
- title: event.kind,
175
- summary: event.message,
176
- createdAt: event.createdAt,
177
- data: event
178
- });
179
- for (const item of input.evidence) activities.push({
180
- id: `evidence:${item.id}`,
181
- kind: "evidence",
182
- status: item.kind,
183
- title: item.title,
184
- summary: item.summary || item.uri,
185
- createdAt: item.createdAt,
186
- data: item
187
- });
188
- return activities.sort((left, right) => right.createdAt - left.createdAt).slice(0, input.limit);
189
- }
190
- function abortActiveWebchatRunForGoal(deps, goal) {
191
- const sessionKey = goal.activeSessionKey?.trim();
192
- if (!sessionKey) return {};
193
- const runId = deps.service.getActiveWebchatRunId(sessionKey);
194
- if (!runId) return {};
195
- return {
196
- abortedRunId: runId,
197
- aborted: deps.service.abortAgentRun(runId)
198
- };
199
- }
200
- /** First-class Goal API. Sessions are execution context; goals are durable product objects. */
201
- function registerGoalsRoutes(authenticated, deps) {
202
- const goals = new GoalService();
203
- const cfg = () => deps.service.currentConfig;
204
- const workflowRunService = deps.service.createWorkflowRunService();
205
- authenticated.get("/api/goals/current", async (c) => {
206
- const sessionKey = c.req.query("sessionKey")?.trim();
207
- if (!sessionKey) return c.json({
208
- ok: false,
209
- error: "Missing sessionKey"
210
- }, 400);
211
- return c.json({
212
- ok: true,
213
- goal: goals.getActiveForSession(sessionKey)
214
- });
215
- });
216
- authenticated.get("/api/goals", async (c) => {
217
- const status = parseStatuses(c.req.query("status"));
218
- const agentId = c.req.query("agentId")?.trim() || void 0;
219
- const sessionKey = c.req.query("sessionKey")?.trim() || void 0;
220
- const limit = parseLimit(c.req.query("limit"));
221
- const offsetRaw = c.req.query("offset")?.trim();
222
- const offset = offsetRaw ? Math.max(0, Number.parseInt(offsetRaw, 10) || 0) : 0;
223
- const projectId = c.req.query("projectId")?.trim() || void 0;
224
- return c.json({
225
- ok: true,
226
- goals: goals.list({
227
- status,
228
- agentId,
229
- sessionKey,
230
- projectId,
231
- limit,
232
- offset
233
- })
234
- });
235
- });
236
- authenticated.get("/api/goals/queue", async (c) => {
237
- return c.json({
238
- ok: true,
239
- queue: deps.service.getGoalQueueSnapshot()
240
- });
241
- });
242
- authenticated.get("/api/goals/:goalId/workflow-runs", async (c) => {
243
- const goalId = c.req.param("goalId");
244
- const goal = goals.get(goalId);
245
- if (!goal) return c.json({
246
- ok: false,
247
- error: "Goal not found"
248
- }, 404);
249
- const runs = await workflowRunService.createRunStore(goal.agentId || getDefaultAgentId(cfg())).listRunSummariesForGoal(goalId, parseLimit(c.req.query("limit")));
250
- return c.json({
251
- ok: true,
252
- runs
253
- });
254
- });
255
- authenticated.post("/api/goals/:goalId/workflows/run", async (c) => {
256
- const goalId = c.req.param("goalId");
257
- const goal = goals.get(goalId);
258
- if (!goal) return c.json({
259
- ok: false,
260
- error: "Goal not found"
261
- }, 404);
262
- if (goal.status === "done" || goal.status === "archived") return c.json({
263
- ok: false,
264
- error: `Goal is ${goal.status}`
265
- }, 409);
266
- const body = await c.req.json().catch(() => ({}));
267
- const definitionId = typeof body.definitionId === "string" ? body.definitionId.trim() : "";
268
- if (!definitionId) return c.json({
269
- ok: false,
270
- error: "Missing definitionId"
271
- }, 400);
272
- try {
273
- createWorkflowCatalog().load(definitionId);
274
- } catch {
275
- return c.json({
276
- ok: false,
277
- error: "Workflow definition not found"
278
- }, 404);
279
- }
280
- const result = await workflowRunService.startWorkflowRun({
281
- agentId: goal.agentId || getDefaultAgentId(cfg()),
282
- definitionId,
283
- goalId,
284
- goal: typeof body.goal === "string" && body.goal.trim() ? body.goal.trim() : goal.nextAction || goal.title,
285
- input: body.input ?? {
286
- goal: goal.title,
287
- description: goal.description,
288
- nextAction: goal.nextAction,
289
- checklist: goal.checklist.map((item) => ({
290
- text: item.text,
291
- status: item.status,
292
- evidenceSummary: item.evidenceSummary
293
- }))
294
- },
295
- parentSessionKey: goal.activeSessionKey,
296
- source: { kind: "webui" },
297
- concurrency: typeof body.concurrency === "number" ? body.concurrency : void 0,
298
- maxSubagents: typeof body.maxSubagents === "number" ? body.maxSubagents : void 0
299
- });
300
- if (result.ok === false) return c.json({
301
- ok: false,
302
- error: result.message,
303
- code: result.code
304
- }, result.httpStatus);
305
- return c.json({
306
- ok: true,
307
- runId: result.runId,
308
- sessionKey: result.sessionKey
309
- }, 202);
310
- });
311
- authenticated.get("/api/goals/:goalId/activity", async (c) => {
312
- const goalId = c.req.param("goalId");
313
- const goal = goals.get(goalId);
314
- if (!goal) return c.json({
315
- ok: false,
316
- error: "Goal not found"
317
- }, 404);
318
- const limit = parseLimit(c.req.query("limit"), 100);
319
- const workflowRuns = await workflowRunService.createRunStore(goal.agentId || getDefaultAgentId(cfg())).listRunSummariesForGoal(goalId, limit);
320
- const activities = buildGoalActivities({
321
- goalId,
322
- queue: deps.service.getGoalQueueSnapshot(),
323
- runs: goals.listRuns(goalId, limit),
324
- workflowRuns,
325
- events: goals.listEvents(goalId, limit),
326
- evidence: goals.listEvidence(goalId, limit),
327
- limit
328
- });
329
- return c.json({
330
- ok: true,
331
- activities
332
- });
333
- });
334
- authenticated.get("/api/goals/:goalId/workflow-suggestions", async (c) => {
335
- const goalId = c.req.param("goalId");
336
- const goal = goals.get(goalId);
337
- if (!goal) return c.json({
338
- ok: false,
339
- error: "Goal not found"
340
- }, 404);
341
- const workflowRuns = await workflowRunService.createRunStore(goal.agentId || getDefaultAgentId(cfg())).listRunSummaries(500);
342
- return c.json({
343
- ok: true,
344
- suggestions: buildGoalWorkflowSuggestions({
345
- goal,
346
- workflowRuns
347
- })
348
- });
349
- });
350
- authenticated.get("/api/goals/:goalId", async (c) => {
351
- const goal = goals.get(c.req.param("goalId"));
352
- if (!goal) return c.json({
353
- ok: false,
354
- error: "Goal not found"
355
- }, 404);
356
- return c.json({
357
- ok: true,
358
- goal
359
- });
360
- });
361
- authenticated.patch("/api/goals/:goalId", async (c) => {
362
- const goalId = c.req.param("goalId");
363
- const body = await c.req.json().catch(() => ({}));
364
- const status = parseBodyGoalStatus(body.status);
365
- let goal = goals.get(goalId);
366
- if (!goal) return c.json({
367
- ok: false,
368
- error: "Goal not found"
369
- }, 404);
370
- const patch = {};
371
- let requestedProjectId;
372
- let projectChanged = false;
373
- if (typeof body.title === "string") patch.title = body.title;
374
- if ("description" in body) patch.description = typeof body.description === "string" ? body.description : void 0;
375
- const priority = parsePriority(body.priority);
376
- if (priority) patch.priority = priority;
377
- if ("deadlineAt" in body) patch.deadlineAt = typeof body.deadlineAt === "number" && Number.isFinite(body.deadlineAt) ? body.deadlineAt : void 0;
378
- if (typeof body.maxTurns === "number" && Number.isFinite(body.maxTurns)) patch.maxTurns = body.maxTurns;
379
- if ("judgeModelRef" in body) patch.judgeModelRef = typeof body.judgeModelRef === "string" ? body.judgeModelRef : void 0;
380
- if ("nextAction" in body) patch.nextAction = typeof body.nextAction === "string" ? body.nextAction : void 0;
381
- if ("blockedReason" in body) patch.blockedReason = typeof body.blockedReason === "string" ? body.blockedReason : void 0;
382
- if ("projectId" in body) {
383
- const nextProjectId = typeof body.projectId === "string" && body.projectId.trim() ? body.projectId.trim() : void 0;
384
- if (nextProjectId && !deps.service.projects.get(nextProjectId)) return c.json({
385
- ok: false,
386
- error: "Project not found"
387
- }, 404);
388
- requestedProjectId = nextProjectId;
389
- projectChanged = nextProjectId !== goal.projectId;
390
- patch.projectId = nextProjectId;
391
- }
392
- const locale = normalizeGoalUiLocale(body.uiLocale);
393
- if (locale) patch.uiLocale = locale;
394
- if (projectChanged && goal.activeSessionKey) try {
395
- if (requestedProjectId) deps.service.projects.attachSession(goal.activeSessionKey, requestedProjectId);
396
- else deps.service.projects.detachSession(goal.activeSessionKey);
397
- } catch (error) {
398
- return c.json({
399
- ok: false,
400
- error: error instanceof Error ? error.message : String(error)
401
- }, 404);
402
- }
403
- if (Object.keys(patch).length > 0) goal = goals.update(goalId, patch);
404
- if (status) {
405
- const previousStatus = goal?.status;
406
- goal = goals.setStatus(goalId, status, { reason: typeof body.reason === "string" ? body.reason : void 0 });
407
- const abortResult = goal && status === "archived" ? abortActiveWebchatRunForGoal(deps, goal) : {};
408
- if (goal && previousStatus !== goal.status) deps.service.emit("goal.status.updated", {
409
- goalId,
410
- previousStatus,
411
- status: goal.status,
412
- goal
413
- });
414
- return c.json({
415
- ok: true,
416
- goal,
417
- ...abortResult
418
- });
419
- }
420
- return c.json({
421
- ok: true,
422
- goal
423
- });
424
- });
425
- authenticated.post("/api/goals/:goalId/continue", async (c) => {
426
- const goalId = c.req.param("goalId");
427
- const body = await c.req.json().catch(() => ({}));
428
- const goal = goals.get(goalId);
429
- if (!goal) return c.json({
430
- ok: false,
431
- error: "Goal not found"
432
- }, 404);
433
- let sessionKey = typeof body.sessionKey === "string" && body.sessionKey.trim() ? body.sessionKey.trim() : goal.activeSessionKey;
434
- if (!sessionKey) {
435
- const agentId = goal.agentId || getDefaultAgentId(cfg());
436
- const peerId = `goal-${sanitizeSegment(goal.id) || Date.now()}`;
437
- sessionKey = buildSessionKey({
438
- agentId,
439
- source: "webchat",
440
- accountId: "default",
441
- peerKind: "direct",
442
- peerId
443
- });
444
- await deps.service.sessionIndexInstance.saveMessages(sessionKey, [], { metadata: {
445
- sourceChannel: "webchat",
446
- sourceChatId: `default:direct:${peerId}`,
447
- sessionType: "chat",
448
- routing: {
449
- agentId,
450
- source: "webchat",
451
- accountId: "default",
452
- peerKind: "direct",
453
- peerId
454
- }
455
- } });
456
- if (goal.projectId) try {
457
- deps.service.projects.attachSession(sessionKey, goal.projectId);
458
- } catch {
459
- return c.json({
460
- ok: false,
461
- error: "Session not found"
462
- }, 404);
463
- }
464
- goals.attachSession(goalId, sessionKey);
465
- } else if (goal.projectId) try {
466
- deps.service.projects.attachSession(sessionKey, goal.projectId);
467
- } catch {
468
- return c.json({
469
- ok: false,
470
- error: "Session not found"
471
- }, 404);
472
- }
473
- const queued = deps.service.enqueueGoalRun(goalId, {
474
- userTurn: parseUserTurnInput(body.userTurn),
475
- maxRetries: typeof body.maxRetries === "number" && Number.isFinite(body.maxRetries) ? body.maxRetries : void 0,
476
- source: "api"
477
- });
478
- const nextGoal = goals.get(goalId);
479
- return c.json({
480
- ok: true,
481
- goal: nextGoal,
482
- sessionKey,
483
- queued
484
- });
485
- });
486
- authenticated.post("/api/goals/:goalId/enqueue", async (c) => {
487
- const goalId = c.req.param("goalId");
488
- const body = await c.req.json().catch(() => ({}));
489
- if (!goals.get(goalId)) return c.json({
490
- ok: false,
491
- error: "Goal not found"
492
- }, 404);
493
- const item = deps.service.enqueueGoalRun(goalId, {
494
- userTurn: parseUserTurnInput(body.userTurn),
495
- maxRetries: typeof body.maxRetries === "number" && Number.isFinite(body.maxRetries) ? body.maxRetries : void 0,
496
- source: "api"
497
- });
498
- return c.json({
499
- ok: true,
500
- item
501
- });
502
- });
503
- authenticated.post("/api/goals/:goalId/pause", async (c) => {
504
- const body = await c.req.json().catch(() => ({}));
505
- const before = goals.get(c.req.param("goalId"));
506
- const goal = goals.pause(c.req.param("goalId"), typeof body.reason === "string" && body.reason.trim() ? body.reason.trim() : "user-paused");
507
- if (!goal) return c.json({
508
- ok: false,
509
- error: "Goal not found"
510
- }, 404);
511
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
512
- goalId: goal.id,
513
- previousStatus: before?.status,
514
- status: goal.status,
515
- goal
516
- });
517
- return c.json({
518
- ok: true,
519
- goal
520
- });
521
- });
522
- authenticated.post("/api/goals/:goalId/resume", async (c) => {
523
- const before = goals.get(c.req.param("goalId"));
524
- const goal = goals.resume(c.req.param("goalId"));
525
- if (!goal) return c.json({
526
- ok: false,
527
- error: "Goal not found"
528
- }, 404);
529
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
530
- goalId: goal.id,
531
- previousStatus: before?.status,
532
- status: goal.status,
533
- goal
534
- });
535
- return c.json({
536
- ok: true,
537
- goal
538
- });
539
- });
540
- authenticated.post("/api/goals/:goalId/reopen", async (c) => {
541
- const before = goals.get(c.req.param("goalId"));
542
- const goal = goals.reopen(c.req.param("goalId"));
543
- if (!goal) return c.json({
544
- ok: false,
545
- error: "Goal not found"
546
- }, 404);
547
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
548
- goalId: goal.id,
549
- previousStatus: before?.status,
550
- status: goal.status,
551
- goal
552
- });
553
- return c.json({
554
- ok: true,
555
- goal
556
- });
557
- });
558
- authenticated.post("/api/goals/:goalId/complete", async (c) => {
559
- const goalId = c.req.param("goalId");
560
- const before = goals.get(goalId);
561
- const readiness = goals.getCompletionReadiness(goalId);
562
- if (readiness && !readiness.ready) return c.json({
563
- ok: false,
564
- error: "Outcome acceptance criteria are still pending",
565
- pendingCriteria: readiness.pendingCriteria
566
- }, 409);
567
- const goal = goals.complete(goalId);
568
- if (!goal) return c.json({
569
- ok: false,
570
- error: "Goal not found"
571
- }, 404);
572
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
573
- goalId: goal.id,
574
- previousStatus: before?.status,
575
- status: goal.status,
576
- goal
577
- });
578
- return c.json({
579
- ok: true,
580
- goal
581
- });
582
- });
583
- authenticated.post("/api/goals/:goalId/archive", async (c) => {
584
- const before = goals.get(c.req.param("goalId"));
585
- const goal = goals.archive(c.req.param("goalId"));
586
- if (!goal) return c.json({
587
- ok: false,
588
- error: "Goal not found"
589
- }, 404);
590
- const abortResult = abortActiveWebchatRunForGoal(deps, goal);
591
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
592
- goalId: goal.id,
593
- previousStatus: before?.status,
594
- status: goal.status,
595
- goal
596
- });
597
- return c.json({
598
- ok: true,
599
- goal,
600
- ...abortResult
601
- });
602
- });
603
- authenticated.post("/api/goals/:goalId/unarchive", async (c) => {
604
- const before = goals.get(c.req.param("goalId"));
605
- const goal = goals.unarchive(c.req.param("goalId"));
606
- if (!goal) return c.json({
607
- ok: false,
608
- error: "Goal not found"
609
- }, 404);
610
- if (before?.status !== goal.status) deps.service.emit("goal.status.updated", {
611
- goalId: goal.id,
612
- previousStatus: before?.status,
613
- status: goal.status,
614
- goal
615
- });
616
- return c.json({
617
- ok: true,
618
- goal
619
- });
620
- });
621
- authenticated.post("/api/goals/:goalId/attach", async (c) => {
622
- const goalId = c.req.param("goalId");
623
- const body = await c.req.json().catch(() => ({}));
624
- const sessionKey = typeof body.sessionKey === "string" ? body.sessionKey.trim() : "";
625
- if (!sessionKey) return c.json({
626
- ok: false,
627
- error: "Missing sessionKey"
628
- }, 400);
629
- const currentGoal = goals.get(goalId);
630
- if (!currentGoal) return c.json({
631
- ok: false,
632
- error: "Goal not found"
633
- }, 404);
634
- if (currentGoal.projectId) try {
635
- deps.service.projects.attachSession(sessionKey, currentGoal.projectId);
636
- } catch {
637
- return c.json({
638
- ok: false,
639
- error: "Session not found"
640
- }, 404);
641
- }
642
- const goal = goals.attachSession(goalId, sessionKey);
643
- return c.json({
644
- ok: true,
645
- goal
646
- });
647
- });
648
- authenticated.post("/api/goals/:goalId/detach", async (c) => {
649
- const goal = goals.update(c.req.param("goalId"), { activeSessionKey: void 0 });
650
- if (!goal) return c.json({
651
- ok: false,
652
- error: "Goal not found"
653
- }, 404);
654
- return c.json({
655
- ok: true,
656
- goal
657
- });
658
- });
659
- authenticated.get("/api/goals/:goalId/runs", async (c) => {
660
- const goalId = c.req.param("goalId");
661
- if (!goals.get(goalId)) return c.json({
662
- ok: false,
663
- error: "Goal not found"
664
- }, 404);
665
- return c.json({
666
- ok: true,
667
- runs: goals.listRuns(goalId, parseLimit(c.req.query("limit")))
668
- });
669
- });
670
- authenticated.get("/api/goals/:goalId/events", async (c) => {
671
- const goalId = c.req.param("goalId");
672
- if (!goals.get(goalId)) return c.json({
673
- ok: false,
674
- error: "Goal not found"
675
- }, 404);
676
- return c.json({
677
- ok: true,
678
- events: goals.listEvents(goalId, parseLimit(c.req.query("limit"), 100))
679
- });
680
- });
681
- authenticated.get("/api/goals/:goalId/evidence", async (c) => {
682
- const goalId = c.req.param("goalId");
683
- if (!goals.get(goalId)) return c.json({
684
- ok: false,
685
- error: "Goal not found"
686
- }, 404);
687
- return c.json({
688
- ok: true,
689
- evidence: goals.listEvidence(goalId, parseLimit(c.req.query("limit"), 100))
690
- });
691
- });
692
- authenticated.post("/api/goals/:goalId/evidence", async (c) => {
693
- const goalId = c.req.param("goalId");
694
- if (!goals.get(goalId)) return c.json({
695
- ok: false,
696
- error: "Goal not found"
697
- }, 404);
698
- const body = await c.req.json().catch(() => ({}));
699
- const title = typeof body.title === "string" ? body.title.trim() : "";
700
- const kind = body.kind;
701
- if (!title) return c.json({
702
- ok: false,
703
- error: "Missing title"
704
- }, 400);
705
- if (kind !== "file" && kind !== "diff" && kind !== "command" && kind !== "test" && kind !== "link" && kind !== "message" && kind !== "artifact") return c.json({
706
- ok: false,
707
- error: "Invalid evidence kind"
708
- }, 400);
709
- const evidence = goals.addEvidence({
710
- goalId,
711
- runId: typeof body.runId === "string" ? body.runId : void 0,
712
- kind,
713
- title,
714
- summary: typeof body.summary === "string" ? body.summary : void 0,
715
- uri: typeof body.uri === "string" ? body.uri : void 0,
716
- data: body.data
717
- });
718
- return c.json({
719
- ok: true,
720
- evidence
721
- });
722
- });
723
- authenticated.post("/api/goals/:goalId/checklist", async (c) => {
724
- const goalId = c.req.param("goalId");
725
- if (!goals.get(goalId)) return c.json({
726
- ok: false,
727
- error: "Goal not found"
728
- }, 404);
729
- const body = await c.req.json().catch(() => ({}));
730
- const text = typeof body.text === "string" ? body.text.trim() : "";
731
- if (!text) return c.json({
732
- ok: false,
733
- error: "Missing text"
734
- }, 400);
735
- const goal = goals.updateChecklist(goalId, {
736
- type: "add",
737
- text,
738
- addedBy: "user"
739
- });
740
- return c.json({
741
- ok: true,
742
- goal
743
- });
744
- });
745
- authenticated.patch("/api/goals/:goalId/checklist/:itemId", async (c) => {
746
- const goalId = c.req.param("goalId");
747
- const itemId = c.req.param("itemId");
748
- if (!goals.get(goalId)) return c.json({
749
- ok: false,
750
- error: "Goal not found"
751
- }, 404);
752
- const body = await c.req.json().catch(() => ({}));
753
- const status = body.status;
754
- if (status !== "pending" && status !== "completed" && status !== "impossible") return c.json({
755
- ok: false,
756
- error: "Invalid checklist status"
757
- }, 400);
758
- const goal = goals.updateChecklist(goalId, {
759
- type: "mark",
760
- itemId,
761
- status,
762
- evidenceSummary: typeof body.evidenceSummary === "string" ? body.evidenceSummary : void 0
763
- });
764
- return c.json({
765
- ok: true,
766
- goal
767
- });
768
- });
769
- authenticated.delete("/api/goals/:goalId/checklist/:itemId", async (c) => {
770
- const goalId = c.req.param("goalId");
771
- if (!goals.get(goalId)) return c.json({
772
- ok: false,
773
- error: "Goal not found"
774
- }, 404);
775
- const goal = goals.updateChecklist(goalId, {
776
- type: "remove",
777
- itemId: c.req.param("itemId")
778
- });
779
- return c.json({
780
- ok: true,
781
- goal
782
- });
783
- });
784
- }
785
- //#endregion
786
- export { registerGoalsRoutes };