@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
@@ -2,11 +2,11 @@ import { closeXopcDatabase, isXopcDatabaseOpen, openXopcDatabase } from "../../s
2
2
  import { getSessionMetadata } from "../../storage/sqlite/session-repository.js";
3
3
  import "../../storage/sqlite/index.js";
4
4
  import { init_loader, loadConfig } from "../../config/loader.js";
5
- import { GoalService } from "../../goals/goal-service.js";
6
- import "../../goals/index.js";
5
+ import { TaskRepository } from "../../tasks/task-repository.js";
7
6
  import { ProjectService } from "../../projects/project-service.js";
8
7
  import { isValidProjectAgentId, normalizeProjectAgentId } from "../../projects/project-agent.js";
9
8
  import "../../projects/index.js";
9
+ import "../../tasks/index.js";
10
10
  import { formatExamples, register } from "../registry.js";
11
11
  import { Command } from "commander";
12
12
  //#region src/cli/commands/project.ts
@@ -29,8 +29,8 @@ function resolveProject(projects, ref) {
29
29
  function formatProject(project) {
30
30
  const counts = [
31
31
  project.sessionCount != null ? `sessions ${project.sessionCount}` : void 0,
32
- project.goalCount != null ? `goals ${project.goalCount}` : void 0,
33
- project.activeGoalCount != null ? `active goals ${project.activeGoalCount}` : void 0
32
+ project.taskCount != null ? `tasks ${project.taskCount}` : void 0,
33
+ project.activeTaskCount != null ? `active tasks ${project.activeTaskCount}` : void 0
34
34
  ].filter(Boolean).join(" | ");
35
35
  return [
36
36
  `${project.id} [${project.status}] ${project.name}`,
@@ -47,8 +47,7 @@ function createProjectCommand(ctx) {
47
47
  "xopc project list",
48
48
  "xopc project new xopc --workspace ~/develop/github/xopc",
49
49
  "xopc project show xopc",
50
- "xopc project attach-session <session-key> xopc",
51
- "xopc project attach-goal <goal-id> xopc"
50
+ "xopc project attach-session <session-key> xopc"
52
51
  ]));
53
52
  cmd.addCommand(new Command("list").description("List projects").option("--status <status>", "active, paused, or archived").option("--search <query>", "Search by name, slug, or description").option("--limit <n>", "Maximum rows", "20").option("--json", "Output JSON").action(async (options) => {
54
53
  await withProjects(ctx, (projects) => {
@@ -69,7 +68,7 @@ function createProjectCommand(ctx) {
69
68
  for (const project of result.items) console.log(`${formatProject(project)}\n`);
70
69
  });
71
70
  }));
72
- cmd.addCommand(new Command("new").description("Create a project").argument("<name>", "Project name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and goals").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").option("--json", "Output JSON").action(async (name, options) => {
71
+ cmd.addCommand(new Command("new").description("Create a project").argument("<name>", "Project name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and tasks").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").option("--json", "Output JSON").action(async (name, options) => {
73
72
  const cfg = loadConfig(ctx.configPath);
74
73
  const defaultAgentId = normalizeProjectAgentId(options.defaultAgent);
75
74
  if (!isValidProjectAgentId(cfg, defaultAgentId)) {
@@ -110,7 +109,7 @@ function createProjectCommand(ctx) {
110
109
  if (detailed.instructions) console.log(`\nInstructions:\n${detailed.instructions}`);
111
110
  });
112
111
  }));
113
- cmd.addCommand(new Command("update").description("Update a project").argument("<project>", "Project id or slug").option("--name <name>", "New name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and goals").option("--clear-default-agent", "Clear project default agent").option("--status <status>", "active, paused, or archived").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").action(async (projectRef, options) => {
112
+ cmd.addCommand(new Command("update").description("Update a project").argument("<project>", "Project id or slug").option("--name <name>", "New name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and tasks").option("--clear-default-agent", "Clear project default agent").option("--status <status>", "active, paused, or archived").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").action(async (projectRef, options) => {
114
113
  const cfg = loadConfig(ctx.configPath);
115
114
  const defaultAgentId = options.clearDefaultAgent ? null : normalizeProjectAgentId(options.defaultAgent);
116
115
  if (defaultAgentId && !isValidProjectAgentId(cfg, defaultAgentId)) {
@@ -163,23 +162,6 @@ function createProjectCommand(ctx) {
163
162
  console.log("Detached session from project.");
164
163
  });
165
164
  }));
166
- cmd.addCommand(new Command("attach-goal").description("Attach a goal to a project").argument("<goal-id>", "Goal id").argument("<project>", "Project id or slug").action(async (goalId, projectRef) => {
167
- await withProjects(ctx, (projects) => {
168
- const project = resolveProject(projects, projectRef);
169
- if (!project) {
170
- console.error(`Project not found: ${projectRef}`);
171
- process.exit(1);
172
- }
173
- projects.attachGoal(goalId, project.id);
174
- console.log(`Attached goal to ${project.name}`);
175
- });
176
- }));
177
- cmd.addCommand(new Command("detach-goal").description("Detach a goal from its project").argument("<goal-id>", "Goal id").action(async (goalId) => {
178
- await withProjects(ctx, (projects) => {
179
- projects.detachGoal(goalId);
180
- console.log("Detached goal from project.");
181
- });
182
- }));
183
165
  cmd.addCommand(new Command("sessions").description("List sessions in a project").argument("<project>", "Project id or slug").option("--limit <n>", "Maximum rows", "20").action(async (projectRef, options) => {
184
166
  await withProjects(ctx, (projects) => {
185
167
  const project = resolveProject(projects, projectRef);
@@ -199,22 +181,19 @@ function createProjectCommand(ctx) {
199
181
  }
200
182
  });
201
183
  }));
202
- cmd.addCommand(new Command("goals").description("List goals in a project").argument("<project>", "Project id or slug").option("--limit <n>", "Maximum rows", "20").action(async (projectRef, options) => {
184
+ cmd.addCommand(new Command("tasks").description("List tasks in a project").argument("<project>", "Project id or slug").option("--limit <n>", "Maximum rows", "20").action(async (projectRef, options) => {
203
185
  await withProjects(ctx, (projects) => {
204
186
  const project = resolveProject(projects, projectRef);
205
187
  if (!project) {
206
188
  console.error(`Project not found: ${projectRef}`);
207
189
  process.exit(1);
208
190
  }
209
- const goals = new GoalService().list({
210
- projectId: project.id,
211
- limit: Number(options.limit) || 20
212
- });
213
- if (!goals.length) {
214
- console.log("No goals.");
191
+ const tasks = new TaskRepository().listByProject(project.id, Number(options.limit) || 20);
192
+ if (!tasks.length) {
193
+ console.log("No tasks.");
215
194
  return;
216
195
  }
217
- for (const goal of goals) console.log(`${goal.id} [${goal.status}] ${goal.title}`);
196
+ for (const task of tasks) console.log(`${task.id} [${task.phase}] ${task.title}`);
218
197
  });
219
198
  }));
220
199
  return cmd;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * This command sits on top of the existing auth-profile store (`xopc auth …`),
5
5
  * but presents a setup-style surface — `list / set-key / unset-key / schema` —
6
- * with the same `SetupOutcome` JSON contract used by other M1 setup commands.
6
+ * with the same `SetupTask` JSON contract used by other M1 setup commands.
7
7
  * Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly.
8
8
  *
9
9
  * Capability-provider (image / voice) settings live under `cfg.providers.<id>`
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import { type AuthProfileCredential, listAllProfiles } from '../../auth/profiles/index.js';
13
13
  import { type ProviderMeta } from '../../providers/index.js';
14
- import { type SetupOutcome } from './setup-shared/index.js';
14
+ import { type SetupTask } from './setup-shared/index.js';
15
15
  type KeyStatus = 'configured' | 'env-only' | 'oauth' | 'not-configured';
16
16
  interface ProviderListEntry {
17
17
  id: string;
@@ -43,11 +43,11 @@ declare function runSetKey(args: {
43
43
  profileId: string;
44
44
  key: string;
45
45
  options: MutationOptions;
46
- }): Promise<SetupOutcome>;
46
+ }): Promise<SetupTask>;
47
47
  declare function runUnsetKey(args: {
48
48
  provider: string;
49
49
  profileId: string;
50
50
  options: MutationOptions;
51
- }): Promise<SetupOutcome>;
51
+ }): Promise<SetupTask>;
52
52
  export { listProviders, planSetKey, maskKey, runSetKey, runUnsetKey };
53
53
  export { listAllProfiles };
@@ -4,7 +4,7 @@ import { formatExamples, register } from "../registry.js";
4
4
  import { getProfile, listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
5
5
  import { colors } from "../utils/colors.js";
6
6
  import { SETUP_EXIT } from "./setup-shared/types.js";
7
- import { emitOutcome } from "./setup-shared/output.js";
7
+ import { emitTask } from "./setup-shared/output.js";
8
8
  import { isPromptCancelled, promptSecret } from "./setup-shared/prompts.js";
9
9
  import "./setup-shared/index.js";
10
10
  import { Command } from "commander";
@@ -14,7 +14,7 @@ import { Command } from "commander";
14
14
  *
15
15
  * This command sits on top of the existing auth-profile store (`xopc auth …`),
16
16
  * but presents a setup-style surface — `list / set-key / unset-key / schema` —
17
- * with the same `SetupOutcome` JSON contract used by other M1 setup commands.
17
+ * with the same `SetupTask` JSON contract used by other M1 setup commands.
18
18
  * Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly.
19
19
  *
20
20
  * Capability-provider (image / voice) settings live under `cfg.providers.<id>`
@@ -99,10 +99,10 @@ function printListJson(entries) {
99
99
  providers: entries
100
100
  }) + "\n");
101
101
  }
102
- function finalizeProviderOutcome(outcome, options) {
103
- emitOutcome(outcome, options.json);
104
- process.exitCode = outcome.ok ? SETUP_EXIT.OK : SETUP_EXIT.ERROR;
105
- return outcome;
102
+ function finalizeProviderTask(task, options) {
103
+ emitTask(task, options.json);
104
+ process.exitCode = task.ok ? SETUP_EXIT.OK : SETUP_EXIT.ERROR;
105
+ return task;
106
106
  }
107
107
  function planSetKey(args) {
108
108
  const existing = getProfile(args.profileId);
@@ -118,7 +118,7 @@ function planSetKey(args) {
118
118
  }
119
119
  async function runSetKey(args) {
120
120
  const meta = PROVIDER_META[args.provider];
121
- if (meta && meta.supportsApiKey === false) return finalizeProviderOutcome({
121
+ if (meta && meta.supportsApiKey === false) return finalizeProviderTask({
122
122
  ok: false,
123
123
  action: "add",
124
124
  domain: "providers",
@@ -130,7 +130,7 @@ async function runSetKey(args) {
130
130
  const { existing, willChange } = planSetKey(args);
131
131
  const changedPaths = willChange ? [`profiles.${args.profileId}.key`] : [];
132
132
  const action = existing ? "set" : "add";
133
- if (!willChange) return finalizeProviderOutcome({
133
+ if (!willChange) return finalizeProviderTask({
134
134
  ok: true,
135
135
  action: "noop",
136
136
  domain: "providers",
@@ -153,7 +153,7 @@ async function runSetKey(args) {
153
153
  }
154
154
  });
155
155
  } catch (error) {
156
- return finalizeProviderOutcome({
156
+ return finalizeProviderTask({
157
157
  ok: false,
158
158
  action,
159
159
  domain: "providers",
@@ -163,7 +163,7 @@ async function runSetKey(args) {
163
163
  errors: [{ message: error.message }]
164
164
  }, args.options);
165
165
  }
166
- return finalizeProviderOutcome({
166
+ return finalizeProviderTask({
167
167
  ok: true,
168
168
  action,
169
169
  domain: "providers",
@@ -177,7 +177,7 @@ async function runSetKey(args) {
177
177
  }, args.options);
178
178
  }
179
179
  async function runUnsetKey(args) {
180
- if (!getProfile(args.profileId)) return finalizeProviderOutcome({
180
+ if (!getProfile(args.profileId)) return finalizeProviderTask({
181
181
  ok: true,
182
182
  action: "noop",
183
183
  domain: "providers",
@@ -188,7 +188,7 @@ async function runUnsetKey(args) {
188
188
  }, args.options);
189
189
  const changedPaths = [`profiles.${args.profileId}`];
190
190
  if (!args.options.dryRun) removeAuthProfile(args.profileId);
191
- return finalizeProviderOutcome({
191
+ return finalizeProviderTask({
192
192
  ok: true,
193
193
  action: "remove",
194
194
  domain: "providers",
@@ -232,7 +232,7 @@ function emitSchema(opts) {
232
232
  description: "Optional profile id when managing multiple keys per provider."
233
233
  }
234
234
  },
235
- outcome: {
235
+ task: {
236
236
  ok: "boolean",
237
237
  action: "add | set | remove | noop",
238
238
  domain: "providers",
@@ -263,14 +263,14 @@ function createProvidersCommand(_ctx) {
263
263
  if (opts.json) printListJson(entries);
264
264
  else printListText(entries);
265
265
  });
266
- cmd.command("set-key <provider>").description("Set or update the API key for a provider (writes an auth profile)").option("--key <value>", `API key value. ${KEY_OPTION_HINT}`).option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (provider, opts) => {
266
+ cmd.command("set-key <provider>").description("Set or update the API key for a provider (writes an auth profile)").option("--key <value>", `API key value. ${KEY_OPTION_HINT}`).option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (provider, opts) => {
267
267
  const profileId = opts.profile?.trim() || defaultProfileId(provider);
268
268
  let key = opts.key?.trim();
269
269
  if (!key) try {
270
270
  key = await promptSecret(`API key for ${provider}:`);
271
271
  } catch (error) {
272
272
  if (isPromptCancelled(error)) {
273
- emitOutcome({
273
+ emitTask({
274
274
  ok: false,
275
275
  action: "set",
276
276
  domain: "providers",
@@ -294,7 +294,7 @@ function createProvidersCommand(_ctx) {
294
294
  }
295
295
  });
296
296
  });
297
- cmd.command("unset-key <provider>").description("Remove a provider auth profile").option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (provider, opts) => {
297
+ cmd.command("unset-key <provider>").description("Remove a provider auth profile").option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (provider, opts) => {
298
298
  await runUnsetKey({
299
299
  provider,
300
300
  profileId: opts.profile?.trim() || defaultProfileId(provider),
@@ -3,7 +3,7 @@ import { init_loader, loadConfig } from "../../config/loader.js";
3
3
  import { formatExamples, register } from "../registry.js";
4
4
  import { colors } from "../utils/colors.js";
5
5
  import { SETUP_EXIT } from "./setup-shared/types.js";
6
- import { emitOutcome } from "./setup-shared/output.js";
6
+ import { emitTask } from "./setup-shared/output.js";
7
7
  import { isPromptCancelled, promptSecret } from "./setup-shared/prompts.js";
8
8
  import { SetupValidationError, runSetup } from "./setup-shared/runner.js";
9
9
  import "./setup-shared/index.js";
@@ -115,12 +115,12 @@ function createSearchCommand(_ctx) {
115
115
  console.log("");
116
116
  console.log(colors.gray(`Supported: ${SEARCH_TYPES.join(", ")}`));
117
117
  });
118
- cmd.command("add <type>").description("Add or replace a search provider entry (idempotent by type)").option("--key <value>", "API key (brave / tavily / bing). Prompts securely if omitted.").option("--url <value>", "SearXNG instance URL (required for type=searxng)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (type, opts, command) => {
118
+ cmd.command("add <type>").description("Add or replace a search provider entry (idempotent by type)").option("--key <value>", "API key (brave / tavily / bing). Prompts securely if omitted.").option("--url <value>", "SearXNG instance URL (required for type=searxng)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (type, opts, command) => {
119
119
  const dryRun = Boolean(opts.dryRun);
120
120
  const json = Boolean(opts.json);
121
121
  const t = type.trim().toLowerCase();
122
122
  if (!isSearchType(t)) {
123
- emitOutcome({
123
+ emitTask({
124
124
  ok: false,
125
125
  action: "add",
126
126
  domain: "search",
@@ -135,7 +135,7 @@ function createSearchCommand(_ctx) {
135
135
  const entry = { type: t };
136
136
  if (t === "searxng") {
137
137
  if (!opts.url) {
138
- emitOutcome({
138
+ emitTask({
139
139
  ok: false,
140
140
  action: "add",
141
141
  domain: "search",
@@ -157,7 +157,7 @@ function createSearchCommand(_ctx) {
157
157
  key = await promptSecret(`API key for ${t}:`);
158
158
  } catch (error) {
159
159
  if (isPromptCancelled(error)) {
160
- emitOutcome({
160
+ emitTask({
161
161
  ok: false,
162
162
  action: "add",
163
163
  domain: "search",
@@ -190,10 +190,10 @@ function createSearchCommand(_ctx) {
190
190
  }
191
191
  });
192
192
  });
193
- cmd.command("remove <type>").description("Remove a search provider entry").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (type, opts, command) => {
193
+ cmd.command("remove <type>").description("Remove a search provider entry").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (type, opts, command) => {
194
194
  const t = type.trim().toLowerCase();
195
195
  if (!isSearchType(t)) {
196
- emitOutcome({
196
+ emitTask({
197
197
  ok: false,
198
198
  action: "remove",
199
199
  domain: "search",
@@ -1,4 +1,4 @@
1
- export { SETUP_EXIT, type SetupAction, type SetupError, type SetupOutcome, type SetupRunOptions, } from './types.js';
1
+ export { SETUP_EXIT, type SetupAction, type SetupError, type SetupTask, type SetupRunOptions, } from './types.js';
2
2
  export { runSetup, runSetupHeadless, SetupValidationError, type SetupMutator, type RunSetupArgs, } from './runner.js';
3
- export { emitOutcome, printJsonOutcome, printTextOutcome } from './output.js';
3
+ export { emitTask, printJsonTask, printTextTask } from './output.js';
4
4
  export { promptSecret, isInteractive, isPromptCancelled } from './prompts.js';
@@ -1,5 +1,5 @@
1
1
  import { SETUP_EXIT } from "./types.js";
2
- import { emitOutcome, printJsonOutcome, printTextOutcome } from "./output.js";
2
+ import { emitTask, printJsonTask, printTextTask } from "./output.js";
3
3
  import { isInteractive, isPromptCancelled, promptSecret } from "./prompts.js";
4
4
  import { SetupValidationError, runSetup, runSetupHeadless } from "./runner.js";
5
- export { SETUP_EXIT, SetupValidationError, emitOutcome, isInteractive, isPromptCancelled, printJsonOutcome, printTextOutcome, promptSecret, runSetup, runSetupHeadless };
5
+ export { SETUP_EXIT, SetupValidationError, emitTask, isInteractive, isPromptCancelled, printJsonTask, printTextTask, promptSecret, runSetup, runSetupHeadless };
@@ -1,9 +1,9 @@
1
- import type { SetupOutcome } from './types.js';
1
+ import type { SetupTask } from './types.js';
2
2
  /**
3
3
  * Single-line JSON for `--json` mode. Agents (M2) parse stdout, so we keep
4
4
  * this stable: `{ ok, action, domain, target?, changedPaths, dryRun, errors?,
5
5
  * value?, notes? }`.
6
6
  */
7
- export declare function printJsonOutcome(outcome: SetupOutcome): void;
8
- export declare function printTextOutcome(outcome: SetupOutcome): void;
9
- export declare function emitOutcome(outcome: SetupOutcome, json: boolean): void;
7
+ export declare function printJsonTask(task: SetupTask): void;
8
+ export declare function printTextTask(task: SetupTask): void;
9
+ export declare function emitTask(task: SetupTask, json: boolean): void;
@@ -5,18 +5,18 @@ import { colors } from "../../utils/colors.js";
5
5
  * this stable: `{ ok, action, domain, target?, changedPaths, dryRun, errors?,
6
6
  * value?, notes? }`.
7
7
  */
8
- function printJsonOutcome(outcome) {
8
+ function printJsonTask(task) {
9
9
  const payload = {
10
- ok: outcome.ok,
11
- action: outcome.action,
12
- domain: outcome.domain,
13
- changedPaths: outcome.changedPaths,
14
- dryRun: outcome.dryRun
10
+ ok: task.ok,
11
+ action: task.action,
12
+ domain: task.domain,
13
+ changedPaths: task.changedPaths,
14
+ dryRun: task.dryRun
15
15
  };
16
- if (outcome.target !== void 0) payload.target = outcome.target;
17
- if (outcome.errors?.length) payload.errors = outcome.errors;
18
- if (outcome.value !== void 0) payload.value = outcome.value;
19
- if (outcome.notes?.length) payload.notes = outcome.notes;
16
+ if (task.target !== void 0) payload.target = task.target;
17
+ if (task.errors?.length) payload.errors = task.errors;
18
+ if (task.value !== void 0) payload.value = task.value;
19
+ if (task.notes?.length) payload.notes = task.notes;
20
20
  process.stdout.write(JSON.stringify(payload) + "\n");
21
21
  }
22
22
  const ACTION_VERB = {
@@ -25,28 +25,28 @@ const ACTION_VERB = {
25
25
  remove: "Removed",
26
26
  noop: "No change"
27
27
  };
28
- function printTextOutcome(outcome) {
29
- if (!outcome.ok) {
30
- console.error(colors.red("✗") + " " + colors.bold(`${outcome.domain} ${outcome.action}`) + " failed");
31
- for (const err of outcome.errors ?? []) {
28
+ function printTextTask(task) {
29
+ if (!task.ok) {
30
+ console.error(colors.red("✗") + " " + colors.bold(`${task.domain} ${task.action}`) + " failed");
31
+ for (const err of task.errors ?? []) {
32
32
  const where = err.path ? colors.gray(`[${err.path}] `) : "";
33
33
  console.error(` ${where}${err.message}`);
34
34
  }
35
35
  return;
36
36
  }
37
- const target = outcome.target ? ` ${colors.bold(outcome.target)}` : "";
38
- const verb = ACTION_VERB[outcome.action];
39
- const dryRun = outcome.dryRun ? colors.yellow(" [dry-run]") : "";
40
- console.log(colors.green("✓") + ` ${verb} ${outcome.domain}${target}${dryRun}`);
41
- if (outcome.changedPaths.length > 0) {
37
+ const target = task.target ? ` ${colors.bold(task.target)}` : "";
38
+ const verb = ACTION_VERB[task.action];
39
+ const dryRun = task.dryRun ? colors.yellow(" [dry-run]") : "";
40
+ console.log(colors.green("✓") + ` ${verb} ${task.domain}${target}${dryRun}`);
41
+ if (task.changedPaths.length > 0) {
42
42
  console.log(colors.gray(" Changed paths:"));
43
- for (const path of outcome.changedPaths) console.log(` ${colors.cyan(path)}`);
44
- } else if (outcome.action === "noop") console.log(colors.gray(" Nothing to change."));
45
- for (const note of outcome.notes ?? []) console.log(` ${colors.gray("→")} ${note}`);
43
+ for (const path of task.changedPaths) console.log(` ${colors.cyan(path)}`);
44
+ } else if (task.action === "noop") console.log(colors.gray(" Nothing to change."));
45
+ for (const note of task.notes ?? []) console.log(` ${colors.gray("→")} ${note}`);
46
46
  }
47
- function emitOutcome(outcome, json) {
48
- if (json) printJsonOutcome(outcome);
49
- else printTextOutcome(outcome);
47
+ function emitTask(task, json) {
48
+ if (json) printJsonTask(task);
49
+ else printTextTask(task);
50
50
  }
51
51
  //#endregion
52
- export { emitOutcome, printJsonOutcome, printTextOutcome };
52
+ export { emitTask, printJsonTask, printTextTask };
@@ -1,5 +1,5 @@
1
1
  import { type Config } from '../../../config/schema.js';
2
- import { type SetupAction, type SetupError, type SetupOutcome, type SetupRunOptions } from './types.js';
2
+ import { type SetupAction, type SetupError, type SetupTask, type SetupRunOptions } from './types.js';
3
3
  /** Thrown by a {@link SetupMutator.mutate} to fail the run with a clean message. */
4
4
  export declare class SetupValidationError extends Error {
5
5
  readonly errors: SetupError[];
@@ -14,9 +14,9 @@ export interface SetupMutator {
14
14
  action: SetupAction;
15
15
  /** Mutates `config` in place (or returns a replacement) and returns it. */
16
16
  mutate(config: Config): Config | Promise<Config>;
17
- /** Optional masked value to surface in the outcome (for agents / UI). */
17
+ /** Optional masked value to surface in the task (for agents / UI). */
18
18
  resultValue?(config: Config): unknown;
19
- /** Optional human-readable notes appended to the outcome. */
19
+ /** Optional human-readable notes appended to the task. */
20
20
  notes?(config: Config): string[];
21
21
  }
22
22
  export interface RunSetupArgs {
@@ -26,24 +26,24 @@ export interface RunSetupArgs {
26
26
  }
27
27
  /**
28
28
  * Headless setup pipeline — load → clone → mutate → validate(zod) → diff →
29
- * (write | dry-run) → outcome. Returns the {@link SetupOutcome} without any
29
+ * (write | dry-run) → task. Returns the {@link SetupTask} without any
30
30
  * I/O side effects (no stdout, no `process.exitCode`).
31
31
  *
32
32
  * Used by CLI setup commands via {@link runSetup}. Keep this side-effect-free
33
33
  * so it stays safe to call from tests and other programmatic callers.
34
34
  *
35
- * Custom errors thrown by the mutator surface as `errors[]` on the outcome:
35
+ * Custom errors thrown by the mutator surface as `errors[]` on the task:
36
36
  * - `SetupValidationError` — explicit `{path?, message}[]` entries
37
37
  * - `ExitPromptError` (from `@inquirer/prompts`) — surfaced as "Cancelled by user"
38
38
  * - any other `Error` — the message is used verbatim
39
39
  */
40
- export declare function runSetupHeadless(args: RunSetupArgs): Promise<SetupOutcome>;
40
+ export declare function runSetupHeadless(args: RunSetupArgs): Promise<SetupTask>;
41
41
  /**
42
- * CLI wrapper around {@link runSetupHeadless}: emits the outcome to stdout
42
+ * CLI wrapper around {@link runSetupHeadless}: emits the task to stdout
43
43
  * (text or single-line JSON) and sets `process.exitCode` to the standard
44
44
  * setup exit codes (0 ok / 1 error / 2 cancelled).
45
45
  *
46
46
  * Use this from CLI command actions; use {@link runSetupHeadless} from any
47
47
  * non-CLI caller (HTTP routes, library code, tests).
48
48
  */
49
- export declare function runSetup(args: RunSetupArgs): Promise<SetupOutcome>;
49
+ export declare function runSetup(args: RunSetupArgs): Promise<SetupTask>;
@@ -3,7 +3,7 @@ import { loadConfig, saveConfig } from "../../../config/loader.js";
3
3
  import { diffConfigPaths } from "../../../config/diff.js";
4
4
  import "../../../config/index.js";
5
5
  import { SETUP_EXIT } from "./types.js";
6
- import { emitOutcome } from "./output.js";
6
+ import { emitTask } from "./output.js";
7
7
  import { isPromptCancelled } from "./prompts.js";
8
8
  //#region src/cli/commands/setup-shared/runner.ts
9
9
  init_schema();
@@ -25,13 +25,13 @@ function zodErrorToSetupErrors(err) {
25
25
  }
26
26
  /**
27
27
  * Headless setup pipeline — load → clone → mutate → validate(zod) → diff →
28
- * (write | dry-run) → outcome. Returns the {@link SetupOutcome} without any
28
+ * (write | dry-run) → task. Returns the {@link SetupTask} without any
29
29
  * I/O side effects (no stdout, no `process.exitCode`).
30
30
  *
31
31
  * Used by CLI setup commands via {@link runSetup}. Keep this side-effect-free
32
32
  * so it stays safe to call from tests and other programmatic callers.
33
33
  *
34
- * Custom errors thrown by the mutator surface as `errors[]` on the outcome:
34
+ * Custom errors thrown by the mutator surface as `errors[]` on the task:
35
35
  * - `SetupValidationError` — explicit `{path?, message}[]` entries
36
36
  * - `ExitPromptError` (from `@inquirer/prompts`) — surfaced as "Cancelled by user"
37
37
  * - any other `Error` — the message is used verbatim
@@ -117,7 +117,7 @@ async function runSetupHeadless(args) {
117
117
  };
118
118
  }
119
119
  /**
120
- * CLI wrapper around {@link runSetupHeadless}: emits the outcome to stdout
120
+ * CLI wrapper around {@link runSetupHeadless}: emits the task to stdout
121
121
  * (text or single-line JSON) and sets `process.exitCode` to the standard
122
122
  * setup exit codes (0 ok / 1 error / 2 cancelled).
123
123
  *
@@ -125,12 +125,12 @@ async function runSetupHeadless(args) {
125
125
  * non-CLI caller (HTTP routes, library code, tests).
126
126
  */
127
127
  async function runSetup(args) {
128
- const outcome = await runSetupHeadless(args);
129
- emitOutcome(outcome, args.options.json);
130
- if (outcome.ok) process.exitCode = SETUP_EXIT.OK;
131
- else if (outcome.errors?.some((e) => /cancelled/i.test(e.message))) process.exitCode = SETUP_EXIT.CANCELLED;
128
+ const task = await runSetupHeadless(args);
129
+ emitTask(task, args.options.json);
130
+ if (task.ok) process.exitCode = SETUP_EXIT.OK;
131
+ else if (task.errors?.some((e) => /cancelled/i.test(e.message))) process.exitCode = SETUP_EXIT.CANCELLED;
132
132
  else process.exitCode = SETUP_EXIT.ERROR;
133
- return outcome;
133
+ return task;
134
134
  }
135
135
  //#endregion
136
136
  export { SetupValidationError, runSetup, runSetupHeadless };
@@ -2,7 +2,7 @@
2
2
  * Shared types for `xopc <domain>` setup-style commands (providers / channels / ...).
3
3
  *
4
4
  * Every setup command runs the same load → mutate → validate → diff → write
5
- * pipeline, and emits the same structured outcome so agents (M2 skills) and the
5
+ * pipeline, and emits the same structured task so agents (M2 skills) and the
6
6
  * WebUI (M3) can consume results uniformly.
7
7
  */
8
8
  export type SetupAction = 'add' | 'set' | 'remove' | 'noop';
@@ -11,7 +11,7 @@ export interface SetupError {
11
11
  path?: string;
12
12
  message: string;
13
13
  }
14
- export interface SetupOutcome {
14
+ export interface SetupTask {
15
15
  ok: boolean;
16
16
  action: SetupAction;
17
17
  /** Logical domain — `providers`, `channels.<id>`, etc. */
@@ -4,6 +4,13 @@
4
4
  * Manage skills: list, install, enable/disable, configure, test
5
5
  */
6
6
  import { Command } from 'commander';
7
+ import { type LoadSkillsResult } from '../../agent/skills/index.js';
8
+ import { ProjectTrustStore } from '../../project-trust/trust-store.js';
7
9
  import { type CLIContext } from '../registry.js';
10
+ export interface WorkspaceSkillCatalogOptions {
11
+ trustStore?: Pick<ProjectTrustStore, 'get'>;
12
+ bundledSkillsDir?: string | null;
13
+ }
14
+ export declare function loadWorkspaceSkillCatalog(workspaceDir: string, options?: WorkspaceSkillCatalogOptions): LoadSkillsResult;
8
15
  declare function createSkillsCommand(ctx: CLIContext): Command;
9
16
  export { createSkillsCommand };
@@ -6,6 +6,7 @@ import { formatScanSummary, scanSkillDirectory } from "../../agent/skills/scanne
6
6
  import { createSkillLoader } from "../../agent/skills/index.js";
7
7
  import { loadSkillsLock } from "../../agent/skills/hub-lock.js";
8
8
  import { pullSkillFromSource, updateSkillFromLock } from "../../agent/skills/hub-pull.js";
9
+ import { ProjectTrustStore } from "../../project-trust/trust-store.js";
9
10
  import { register } from "../registry.js";
10
11
  import { createSkillsTestCommand } from "./skills-test.js";
11
12
  import { Command } from "commander";
@@ -16,10 +17,15 @@ import { Command } from "commander";
16
17
  * Manage skills: list, install, enable/disable, configure, test
17
18
  */
18
19
  init_paths();
20
+ function loadWorkspaceSkillCatalog(workspaceDir, options = {}) {
21
+ const trustStore = options.trustStore ?? new ProjectTrustStore();
22
+ const loader = createSkillLoader({ isWorkspaceTrusted: (resolvedPath) => trustStore.get(resolvedPath) === true });
23
+ const bundledSkillsDir = options.bundledSkillsDir === void 0 ? resolveBundledSkillsDir() : options.bundledSkillsDir;
24
+ loader.init(workspaceDir, bundledSkillsDir);
25
+ return loader.load();
26
+ }
19
27
  function loadWorkspaceSkillEntries(workspaceDir) {
20
- const loader = createSkillLoader();
21
- loader.init(workspaceDir, resolveBundledSkillsDir());
22
- return loader.load().skills.map((skill) => ({
28
+ return loadWorkspaceSkillCatalog(workspaceDir).skills.map((skill) => ({
23
29
  skill,
24
30
  metadata: skill.metadata,
25
31
  enabled: true
@@ -29,10 +35,8 @@ function createSkillsCommand(ctx) {
29
35
  const command = new Command("skills");
30
36
  command.description("Manage skills");
31
37
  command.command("list").description("List available skills").option("-v, --verbose", "Show detailed information").option("--json", "Output as JSON").action(async (options) => {
32
- const loader = createSkillLoader();
33
38
  const workspaceDir = ctx.workspacePath;
34
- loader.init(workspaceDir, resolveBundledSkillsDir());
35
- const result = loader.load();
39
+ const result = loadWorkspaceSkillCatalog(workspaceDir);
36
40
  if (options.json) {
37
41
  console.log(JSON.stringify({
38
42
  skills: result.skills.map((s) => ({
@@ -78,12 +82,12 @@ function createSkillsCommand(ctx) {
78
82
  });
79
83
  command.command("install <skill-name>").description("Install a skill dependency").option("-i, --id <install-id>", "Install spec ID to use").option("--timeout <ms>", "Installation timeout in ms", "300000").option("--dry-run", "Show what would be installed without executing").action(async (skillName, options) => {
80
84
  const workspaceDir = ctx.workspacePath;
81
- const entry = loadWorkspaceSkillEntries(workspaceDir).find((e) => e.skill.name === skillName);
85
+ const entries = loadWorkspaceSkillEntries(workspaceDir);
86
+ const entry = entries.find((e) => e.skill.name === skillName);
82
87
  if (!entry) {
83
88
  console.error(`Error: Skill "${skillName}" not found in workspace`);
84
89
  console.log("\nAvailable skills:");
85
- const result = createSkillLoader().load();
86
- for (const skill of result.skills) console.log(` - ${skill.name}`);
90
+ for (const { skill } of entries) console.log(` - ${skill.name}`);
87
91
  process.exit(1);
88
92
  }
89
93
  const installSpecs = entry.metadata.xopc?.install || entry.metadata.install || [];
@@ -143,10 +147,8 @@ function createSkillsCommand(ctx) {
143
147
  console.log(`✓ Skill "${skillName}" disabled`);
144
148
  });
145
149
  command.command("status [skill-name]").description("Show skill status").option("--json", "Output as JSON").action(async (skillName, options) => {
146
- const loader = createSkillLoader();
147
150
  const workspaceDir = ctx.workspacePath;
148
- loader.init(workspaceDir, resolveBundledSkillsDir());
149
- const result = loader.load();
151
+ const result = loadWorkspaceSkillCatalog(workspaceDir);
150
152
  const config = createSkillConfigManager(resolveStateDir()).load();
151
153
  if (skillName) {
152
154
  const skill = result.skills.find((s) => s.name === skillName);
@@ -213,10 +215,8 @@ function createSkillsCommand(ctx) {
213
215
  }
214
216
  });
215
217
  command.command("audit [skill-name]").description("Security audit for skills").option("--deep", "Show detailed findings").action(async (skillName, options) => {
216
- const loader = createSkillLoader();
217
218
  const workspaceDir = ctx.workspacePath;
218
- loader.init(workspaceDir, resolveBundledSkillsDir());
219
- const result = loader.load();
219
+ const result = loadWorkspaceSkillCatalog(workspaceDir);
220
220
  async function auditSkill(skill) {
221
221
  const summary = await scanSkillDirectory(skill.baseDir);
222
222
  console.log(`\n${formatScanSummary(summary, skill.name)}\n`);
@@ -359,4 +359,4 @@ register({
359
359
  }
360
360
  });
361
361
  //#endregion
362
- export { createSkillsCommand };
362
+ export { createSkillsCommand, loadWorkspaceSkillCatalog };