@xopcai/xopc 0.0.180 → 0.0.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{activity-store-DFKtQDgE.js → activity-store-WlR2zEvA.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CcTvB_4W.js → agent-avatar-dicebear-RedDszrG.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +2 -0
  8. package/dist/gateway/static/root/assets/{api-CUClAvuL.js → api-tVOllncq.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-Ib-cWKHM.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-CRSN8WuA.js → appearance-settings-5cQvq7hd.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-BBF9zspN.js → archive-plugin-Ct-shK4n.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-D3QQfA7w.js → attachment-load-CpPj3m-q.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-D78XOjJ3.js → binary-plugins-BpSXZBle.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-D_VVXlYX.js → block-editor-B8hR2tXc.js} +46 -46
  17. package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +8 -0
  18. package/dist/gateway/static/root/assets/browser-workflow-inputs-D_LAXUrh.js +1 -0
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-58DBMXgG.js → browser-workflows-page-CPAs7-6s.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +7 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-CKklVY2p.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +1 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-DYtoNV5A.js → channel-recipient-api-WWN-nbFL.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-logo-CxIXnifA.js → connector-logo-CdNkVFdB.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +2 -0
  28. package/dist/gateway/static/root/assets/desktop-pet-Bm_IEAf3.js +1 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-BOIp4q0Z.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8_lsW6S.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-debug-page-CMNnSJP6.js → extension-debug-page-DNashgGu.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-t0pJqLvM.js → extension-page-Bvo-5htX.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-aiR-tKnW.js → extension-settings-page-BBESdISV.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-CkyQBD6r.js → gateway-config-api-ClQvokMo.js} +1 -1
  35. package/dist/gateway/static/root/assets/{gateway-settings-BIZfAgfB.js → gateway-settings-CIRs2QVy.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CSU7UvzG.js → gateway-startup-retry-CntXJF6W.js} +1 -1
  37. package/dist/gateway/static/root/assets/heartbeat-settings-CWKcZuvc.js +1 -0
  38. package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +3 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-BR6Kb77X.js → image-generation-api-DjSAQwGy.js} +1 -1
  40. package/dist/gateway/static/root/assets/index-D-YfWVyS.css +1 -0
  41. package/dist/gateway/static/root/assets/index-vi5KlR5_.js +222 -0
  42. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D76uYKeQ.js → keyboard-shortcuts-settings-ahKHpjoW.js} +1 -1
  43. package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +2 -0
  44. package/dist/gateway/static/root/assets/{local-apps-page-BsLnojTh.js → local-apps-page-B6GKdgza.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-BNC8HUCI.js → locale-store-Bff30u5V.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +7 -0
  47. package/dist/gateway/static/root/assets/{markdown-split-D6smTQWD.js → markdown-split-BeNMJm_i.js} +1 -1
  48. package/dist/gateway/static/root/assets/{media-plugins-D1TmMF0A.js → media-plugins-Bdzrj_-6.js} +1 -1
  49. package/dist/gateway/static/root/assets/messages-CPxz48hr.js +3 -0
  50. package/dist/gateway/static/root/assets/{notes-page-Vt-diFf0.js → notes-page-MYIi-9S9.js} +1 -1
  51. package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +4 -0
  52. package/dist/gateway/static/root/assets/{page-tabs-BnSzIjH0.js → page-tabs-3t88bbGx.js} +1 -1
  53. package/dist/gateway/static/root/assets/{preview-open-alternatives-CF12Eqi4.js → preview-open-alternatives-Cf_BWbeE.js} +1 -1
  54. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
  55. package/dist/gateway/static/root/assets/{product-open-page-Du0TE_CU.js → product-open-page-CKq73c98.js} +1 -1
  56. package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +1 -0
  57. package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +1 -0
  58. package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +1 -0
  59. package/dist/gateway/static/root/assets/{schema-form-BKvpxqof.js → schema-form-NqOm-OG1.js} +1 -1
  60. package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +1 -0
  61. package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +1 -0
  62. package/dist/gateway/static/root/assets/{settings-form-section-kt6GIS32.js → settings-form-section-DYAS8p8z.js} +1 -1
  63. package/dist/gateway/static/root/assets/{settings-loading-skeleton-85eUPcKz.js → settings-loading-skeleton-DZFhxihA.js} +1 -1
  64. package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +1 -0
  65. package/dist/gateway/static/root/assets/{settings-page-layout-CkkCee_x.js → settings-page-layout-DfFfkdED.js} +1 -1
  66. package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +1 -0
  67. package/dist/gateway/static/root/assets/{share-preview-page-BtLEstaI.js → share-preview-page-CYtrQaZN.js} +1 -1
  68. package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +1 -0
  69. package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +1 -0
  70. package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +2 -0
  71. package/dist/gateway/static/root/assets/{skills-page.utils-C2SHvq8V.js → skills-page.utils-BBXirAjc.js} +1 -1
  72. package/dist/gateway/static/root/assets/system-settings-panel-DLf5YvFl.js +1 -0
  73. package/dist/gateway/static/root/assets/task-detail-page-DFGkuYfl.js +1 -0
  74. package/dist/gateway/static/root/assets/{theme-store-ClDa_Bci.js → theme-store-y7e_tvYi.js} +1 -1
  75. package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +1 -0
  76. package/dist/gateway/static/root/assets/{typed-models-lib-GsmwmB40.js → typed-models-lib-DR12j_dr.js} +1 -1
  77. package/dist/gateway/static/root/assets/use-save-bar-registration-BsvcJgZl.js +1 -0
  78. package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +1 -0
  79. package/dist/gateway/static/root/assets/{voice-api-key-field-Blaxsbb3.js → voice-api-key-field-DKADXFWD.js} +1 -1
  80. package/dist/gateway/static/root/assets/work-discovery-overlay-BC1nExf8.js +1 -0
  81. package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +1 -0
  82. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTG4RpRE.js → workflow-run-setup-panel-C8X5W-8k.js} +2 -2
  83. package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +11 -0
  84. package/dist/gateway/static/root/index.html +8 -8
  85. package/dist/package.js +1 -1
  86. package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
  87. package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
  88. package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
  89. package/dist/packages/gateway-contract/src/task-runs.js +80 -0
  90. package/dist/packages/gateway-contract/src/tasks.js +353 -0
  91. package/dist/src/activity/types.d.ts +2 -2
  92. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  93. package/dist/src/agent/agent-manager.d.ts +3 -3
  94. package/dist/src/agent/agent-manager.js +23 -22
  95. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  96. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  97. package/dist/src/agent/child-agent-factory.js +4 -10
  98. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  99. package/dist/src/agent/context/execution-scope.js +17 -20
  100. package/dist/src/agent/context/project-context.d.ts +6 -2
  101. package/dist/src/agent/context/project-context.js +17 -25
  102. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  103. package/dist/src/agent/embedded/model-runtime.js +1 -1
  104. package/dist/src/agent/embedded/run-turn.js +2 -0
  105. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  106. package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
  107. package/dist/src/agent/image/tool-model-config.js +1 -1
  108. package/dist/src/agent/inbound/inbound-loop.js +1 -1
  109. package/dist/src/agent/inbound/turn-dispatcher.js +1 -1
  110. package/dist/src/agent/ipc/inbox.js +1 -1
  111. package/dist/src/agent/lifecycle/progress.js +0 -1
  112. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +3 -5
  113. package/dist/src/agent/mcp/bundle-mcp-policy.js +8 -5
  114. package/dist/src/agent/mcp/index.js +2 -2
  115. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +5 -6
  116. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  117. package/dist/src/agent/memory/builtin-provider.js +75 -229
  118. package/dist/src/agent/memory/compaction.js +1 -1
  119. package/dist/src/agent/memory/context/planner.d.ts +3 -0
  120. package/dist/src/agent/memory/context/planner.js +32 -11
  121. package/dist/src/agent/memory/context/types.d.ts +6 -0
  122. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  123. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  124. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  125. package/dist/src/agent/memory/dreaming/config.js +47 -40
  126. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  127. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  128. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  129. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  130. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  131. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  132. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  133. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  134. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  135. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  136. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  137. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  138. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  139. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  140. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  141. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  142. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  143. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  144. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  145. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  146. package/dist/src/agent/memory/index.d.ts +1 -3
  147. package/dist/src/agent/memory/index.js +2 -3
  148. package/dist/src/agent/memory/manager.d.ts +1 -5
  149. package/dist/src/agent/memory/manager.js +1 -27
  150. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  151. package/dist/src/agent/memory/memory-config.js +2 -23
  152. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  153. package/dist/src/agent/memory/types.d.ts +5 -48
  154. package/dist/src/agent/memory/understanding/service.js +1 -2
  155. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  156. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  157. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  158. package/dist/src/agent/messaging/command-handler.js +0 -8
  159. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  160. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  161. package/dist/src/agent/middleware/index.d.ts +1 -1
  162. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  163. package/dist/src/agent/middleware/self-verify.js +7 -7
  164. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -66
  165. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  166. package/dist/src/agent/prompt/response-language.js +11 -0
  167. package/dist/src/agent/prompt/sections/behavior.js +2 -2
  168. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  169. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  170. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  171. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  172. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  173. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  174. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  175. package/dist/src/agent/prompt/subagent-context.js +1 -0
  176. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  177. package/dist/src/agent/prompt/system-prompt.js +10 -2
  178. package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -2
  179. package/dist/src/agent/service/direct-turn-helpers.js +8 -5
  180. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  181. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  182. package/dist/src/agent/service.d.ts +6 -9
  183. package/dist/src/agent/service.js +31 -25
  184. package/dist/src/agent/service.types.d.ts +2 -15
  185. package/dist/src/agent/session/index.d.ts +1 -1
  186. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  187. package/dist/src/agent/session/session-config-service.js +14 -0
  188. package/dist/src/agent/session/session-inspector.js +1 -1
  189. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  190. package/dist/src/agent/session/session-state-bag.js +10 -10
  191. package/dist/src/agent/skills/hub-lock.js +1 -1
  192. package/dist/src/agent/source-context/types.d.ts +1 -1
  193. package/dist/src/agent/source-context/types.js +1 -1
  194. package/dist/src/agent/starter-agents.js +1 -1
  195. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  196. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  197. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  198. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  199. package/dist/src/agent/tool-manuals/index.js +1 -1
  200. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  201. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  202. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  203. package/dist/src/agent/tools/apply-patch.js +1 -12
  204. package/dist/src/agent/tools/clarify-tool.js +1 -1
  205. package/dist/src/agent/tools/delegate-tool.js +4 -4
  206. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  207. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  208. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  209. package/dist/src/agent/tools/exec-command.js +2 -19
  210. package/dist/src/agent/tools/factory.d.ts +2 -4
  211. package/dist/src/agent/tools/factory.js +8 -29
  212. package/dist/src/agent/tools/index.d.ts +0 -2
  213. package/dist/src/agent/tools/index.js +1 -3
  214. package/dist/src/agent/tools/managed-job-tool.js +1 -1
  215. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  216. package/dist/src/agent/tools/memory-tool.js +14 -36
  217. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  218. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  219. package/dist/src/agent/tools/workflow-tool.js +4 -4
  220. package/dist/src/agent/tools/write.d.ts +0 -2
  221. package/dist/src/agent/tools/write.js +0 -11
  222. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  223. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  224. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  225. package/dist/src/agent/workflow/builtins/index.js +2 -2
  226. package/dist/src/agent/workflow/index.js +2 -2
  227. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  228. package/dist/src/agent/workflow/workflow-child-tools.js +0 -3
  229. package/dist/src/agent/workspace-runtime/registry.d.ts +2 -4
  230. package/dist/src/agent/workspace-runtime/registry.js +1 -2
  231. package/dist/src/agent-manifest/index.js +3 -3
  232. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  233. package/dist/src/agent-manifest/resolver.js +47 -20
  234. package/dist/src/agent-manifest/schema.d.ts +128 -52
  235. package/dist/src/agent-manifest/schema.js +46 -8
  236. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  237. package/dist/src/ai-assist/text-assist.js +4 -4
  238. package/dist/src/auth/credentials.js +2 -2
  239. package/dist/src/auth/profiles/store.js +1 -1
  240. package/dist/src/auth/sync-provider-auth.js +2 -2
  241. package/dist/src/automations/domain/defaults.js +1 -1
  242. package/dist/src/automations/domain/types.d.ts +15 -1
  243. package/dist/src/automations/domain/validation.d.ts +336 -12
  244. package/dist/src/automations/domain/validation.js +6 -0
  245. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  246. package/dist/src/automations/draft/automation-draft-validator.d.ts +62 -1
  247. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  248. package/dist/src/automations/index.js +1 -1
  249. package/dist/src/automations/service/action-executor.d.ts +2 -2
  250. package/dist/src/automations/service/action-executor.js +21 -1
  251. package/dist/src/automations/service/automation-service.js +21 -21
  252. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  253. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  254. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  255. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  256. package/dist/src/chat-commands/context.d.ts +0 -3
  257. package/dist/src/chat-commands/context.js +0 -2
  258. package/dist/src/chat-commands/index.d.ts +1 -2
  259. package/dist/src/chat-commands/index.js +3 -5
  260. package/dist/src/chat-commands/types.d.ts +0 -3
  261. package/dist/src/cli/command-catalog.js +0 -43
  262. package/dist/src/cli/command-loaders.js +0 -1
  263. package/dist/src/cli/command-manifest.js +0 -4
  264. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  265. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  266. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  267. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  268. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  269. package/dist/src/cli/commands/gateway/service.js +4 -4
  270. package/dist/src/cli/commands/models.js +1 -1
  271. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  272. package/dist/src/cli/commands/project.js +12 -33
  273. package/dist/src/cli/commands/providers.d.ts +4 -4
  274. package/dist/src/cli/commands/providers.js +16 -16
  275. package/dist/src/cli/commands/search.js +7 -7
  276. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  277. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  278. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  279. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  280. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  281. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  282. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  283. package/dist/src/cli/commands/skills.d.ts +7 -0
  284. package/dist/src/cli/commands/skills.js +16 -16
  285. package/dist/src/cli/commands/update.js +1 -1
  286. package/dist/src/cli/commands/voice.d.ts +1 -1
  287. package/dist/src/cli/commands/voice.js +6 -6
  288. package/dist/src/cli/templates.js +1 -1
  289. package/dist/src/commands/agents.config.js +2 -18
  290. package/dist/src/config/agent-profile.d.ts +1 -1
  291. package/dist/src/config/agent-profile.js +1 -1
  292. package/dist/src/config/index.js +7 -7
  293. package/dist/src/config/loader.js +1 -1
  294. package/dist/src/config/models-json.js +1 -1
  295. package/dist/src/config/paths.d.ts +0 -3
  296. package/dist/src/config/paths.js +2 -7
  297. package/dist/src/config/schema.d.ts +160 -258
  298. package/dist/src/config/schema.js +8 -114
  299. package/dist/src/config/web-patch.d.ts +0 -29
  300. package/dist/src/config/web-patch.js +2 -69
  301. package/dist/src/connectors/composio-catalog.js +7 -20
  302. package/dist/src/connectors/composio-sessions.js +14 -4
  303. package/dist/src/connectors/composio.d.ts +7 -2
  304. package/dist/src/connectors/composio.js +49 -40
  305. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  306. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  307. package/dist/src/connectors/connector-identity.d.ts +2 -0
  308. package/dist/src/connectors/connector-identity.js +64 -1
  309. package/dist/src/connectors/learning-coordinator.js +34 -15
  310. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  311. package/dist/src/connectors/learning-recipes.js +11 -1
  312. package/dist/src/connectors/source-change-publisher.js +5 -4
  313. package/dist/src/connectors/types.d.ts +16 -0
  314. package/dist/src/daemon/launchd.js +2 -2
  315. package/dist/src/daemon/schtasks.js +1 -1
  316. package/dist/src/daemon/service.js +3 -3
  317. package/dist/src/daemon/systemd.js +1 -1
  318. package/dist/src/daemon/types.d.ts +5 -5
  319. package/dist/src/discussions/analyzer.d.ts +6 -6
  320. package/dist/src/discussions/analyzer.js +32 -22
  321. package/dist/src/discussions/index.d.ts +3 -2
  322. package/dist/src/discussions/index.js +5 -4
  323. package/dist/src/discussions/live-worker.d.ts +5 -3
  324. package/dist/src/discussions/live-worker.js +24 -12
  325. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  326. package/dist/src/discussions/organizer-worker.js +58 -0
  327. package/dist/src/discussions/organizer.d.ts +22 -0
  328. package/dist/src/discussions/organizer.js +92 -0
  329. package/dist/src/discussions/repository.d.ts +16 -5
  330. package/dist/src/discussions/repository.js +159 -135
  331. package/dist/src/discussions/sealer.d.ts +25 -0
  332. package/dist/src/discussions/sealer.js +116 -0
  333. package/dist/src/discussions/service.d.ts +2 -1
  334. package/dist/src/discussions/service.js +70 -60
  335. package/dist/src/discussions/transcript.js +1 -1
  336. package/dist/src/discussions/types.d.ts +45 -20
  337. package/dist/src/discussions/types.js +4 -2
  338. package/dist/src/extensions/lockfile.js +1 -1
  339. package/dist/src/extensions/types/core.d.ts +3 -3
  340. package/dist/src/extensions/types/tui.d.ts +2 -2
  341. package/dist/src/extensions/update.d.ts +3 -3
  342. package/dist/src/extensions/update.js +13 -13
  343. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  344. package/dist/src/gateway/agent-builtin-tools.js +0 -1
  345. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  346. package/dist/src/gateway/agents-admin.js +17 -19
  347. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  348. package/dist/src/gateway/capability-presets-admin.js +59 -2
  349. package/dist/src/gateway/chat-limits.d.ts +6 -2
  350. package/dist/src/gateway/chat-limits.js +17 -3
  351. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  352. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  353. package/dist/src/gateway/file-path-classifier.js +1 -1
  354. package/dist/src/gateway/heartbeat/service.js +1 -1
  355. package/dist/src/gateway/hono/app.js +9 -10
  356. package/dist/src/gateway/hono/index.d.ts +1 -1
  357. package/dist/src/gateway/hono/index.js +2 -2
  358. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  359. package/dist/src/gateway/hono/lib/config-payload.js +6 -4
  360. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  361. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  362. package/dist/src/gateway/hono/routes/activity.js +1 -2
  363. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  364. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  365. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  366. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  367. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -6
  368. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  369. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  370. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  371. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  372. package/dist/src/gateway/hono/routes/home.js +2 -2
  373. package/dist/src/gateway/hono/routes/index.js +2 -4
  374. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  375. package/dist/src/gateway/hono/routes/media.js +9 -3
  376. package/dist/src/gateway/hono/routes/memory.js +38 -113
  377. package/dist/src/gateway/hono/routes/models.js +1 -1
  378. package/dist/src/gateway/hono/routes/projects.js +220 -588
  379. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  380. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  381. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  382. package/dist/src/gateway/hono/routes/workflows.js +7 -8
  383. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  384. package/dist/src/gateway/hono/routes/you.js +250 -78
  385. package/dist/src/gateway/hono/sse.d.ts +1 -16
  386. package/dist/src/gateway/hono/sse.js +4 -161
  387. package/dist/src/gateway/index.js +2 -2
  388. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  389. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  390. package/dist/src/gateway/security/csp.d.ts +2 -0
  391. package/dist/src/gateway/security/csp.js +4 -0
  392. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  393. package/dist/src/gateway/service/agent-runner.js +97 -46
  394. package/dist/src/gateway/service/config-coordinator.js +1 -1
  395. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  396. package/dist/src/gateway/service/run-gateway-agent.js +27 -42
  397. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  398. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  399. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  400. package/dist/src/gateway/service.d.ts +28 -16
  401. package/dist/src/gateway/service.js +150 -133
  402. package/dist/src/gateway/session-reset-service.js +6 -6
  403. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  404. package/dist/src/heartbeat/index.js +1 -1
  405. package/dist/src/i18n/index.d.ts +0 -1
  406. package/dist/src/i18n/index.js +1 -2
  407. package/dist/src/i18n/language-consistency.d.ts +10 -0
  408. package/dist/src/i18n/language-consistency.js +34 -0
  409. package/dist/src/i18n/response-language.d.ts +8 -0
  410. package/dist/src/i18n/response-language.js +17 -0
  411. package/dist/src/i18n/share-tool-bundle.js +2 -2
  412. package/dist/src/mcp/channel-bridge.js +5 -3
  413. package/dist/src/media/store.js +1 -1
  414. package/dist/src/media/types.d.ts +1 -1
  415. package/dist/src/media/uri.js +1 -2
  416. package/dist/src/media-understanding/runner.d.ts +1 -1
  417. package/dist/src/media-understanding/runner.js +9 -9
  418. package/dist/src/media-understanding/types.d.ts +4 -4
  419. package/dist/src/mobile/notification-service.js +16 -21
  420. package/dist/src/mobile/notification-types.d.ts +2 -2
  421. package/dist/src/notes/types.d.ts +0 -1
  422. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  423. package/dist/src/proactive/execution/context.js +45 -28
  424. package/dist/src/proactive/execution/insight.js +1 -1
  425. package/dist/src/proactive/temporal/worker.js +2 -2
  426. package/dist/src/projects/index.d.ts +0 -1
  427. package/dist/src/projects/index.js +1 -2
  428. package/dist/src/projects/project-loop.d.ts +16 -8
  429. package/dist/src/projects/project-loop.js +41 -48
  430. package/dist/src/projects/project-service.d.ts +14 -4
  431. package/dist/src/projects/project-service.js +18 -10
  432. package/dist/src/projects/project-store.d.ts +36 -3
  433. package/dist/src/projects/project-store.js +116 -14
  434. package/dist/src/projects/types.d.ts +50 -3
  435. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  436. package/dist/src/providers/index.js +2 -2
  437. package/dist/src/providers/model-registry.js +1 -1
  438. package/dist/src/providers/model-response.d.ts +4 -0
  439. package/dist/src/providers/model-response.js +28 -0
  440. package/dist/src/providers/register-runtime-providers.js +1 -1
  441. package/dist/src/session/config-types.d.ts +3 -0
  442. package/dist/src/session/index.d.ts +0 -1
  443. package/dist/src/session/index.js +1 -2
  444. package/dist/src/session/init-session-turn.js +6 -6
  445. package/dist/src/session/store.js +4 -4
  446. package/dist/src/session/types.d.ts +1 -6
  447. package/dist/src/share/site-proxy.js +1 -1
  448. package/dist/src/storage/sqlite/config-repository.js +7 -4
  449. package/dist/src/storage/sqlite/connection.js +1 -1
  450. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  451. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  452. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  453. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  454. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  455. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  456. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  457. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  458. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  459. package/dist/src/storage/sqlite/index.d.ts +6 -4
  460. package/dist/src/storage/sqlite/index.js +7 -5
  461. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  462. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  463. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  464. package/dist/src/storage/sqlite/memory-records-repository.js +109 -138
  465. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  466. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  467. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  468. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  469. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  470. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  471. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  472. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  473. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  474. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  475. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  476. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  477. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  478. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  479. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  480. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  481. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  482. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  483. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  484. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  485. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  486. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  487. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  488. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  489. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  490. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  491. package/dist/src/storage/sqlite/schema.js +5 -2
  492. package/dist/src/storage/sqlite/schema.sql +76 -61
  493. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  494. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  495. package/dist/src/storage/sqlite/session-repository.js +5 -6
  496. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  497. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  498. package/dist/src/tasks/execution-context.d.ts +23 -0
  499. package/dist/src/{work → tasks}/execution-context.js +7 -20
  500. package/dist/src/{work → tasks}/home-query-service.d.ts +16 -28
  501. package/dist/src/{work → tasks}/home-query-service.js +56 -126
  502. package/dist/src/tasks/index.d.ts +20 -0
  503. package/dist/src/tasks/index.js +21 -0
  504. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  505. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  506. package/dist/src/tasks/project-operating-view-service.js +77 -0
  507. package/dist/src/tasks/task-application-service.d.ts +35 -0
  508. package/dist/src/tasks/task-application-service.js +423 -0
  509. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  510. package/dist/src/tasks/task-context-assembler.js +125 -0
  511. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  512. package/dist/src/tasks/task-context-repository.js +97 -0
  513. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  514. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  515. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  516. package/dist/src/tasks/task-contract-planner.js +87 -0
  517. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  518. package/dist/src/tasks/task-dependency-service.js +81 -0
  519. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  520. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  521. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  522. package/dist/src/tasks/task-read-model-projector.js +93 -0
  523. package/dist/src/tasks/task-repository.d.ts +82 -0
  524. package/dist/src/tasks/task-repository.js +185 -0
  525. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  526. package/dist/src/tasks/task-run-coordinator.js +130 -0
  527. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  528. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  529. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  530. package/dist/src/tasks/task-run-repository.js +312 -0
  531. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  532. package/dist/src/tasks/task-signal-service.js +72 -0
  533. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  534. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  535. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  536. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  537. package/dist/src/tui/backends/embedded-backend.d.ts +11 -1
  538. package/dist/src/tui/backends/embedded-backend.js +29 -3
  539. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  540. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  541. package/dist/src/tui/components/settings-selector.js +0 -20
  542. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  543. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  544. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  545. package/dist/src/tui/tui-backend.d.ts +13 -1
  546. package/dist/src/tui/tui-backend.js +10 -1
  547. package/dist/src/tui/tui-command-formatters.js +1 -2
  548. package/dist/src/tui/tui-commands.js +8 -19
  549. package/dist/src/tui/tui-session-actions.js +0 -2
  550. package/dist/src/tui/tui-settings.d.ts +0 -6
  551. package/dist/src/tui/tui-settings.js +0 -10
  552. package/dist/src/tui/tui-startup-resources.js +1 -1
  553. package/dist/src/tui/tui-types.d.ts +1 -4
  554. package/dist/src/tui/tui-types.js +1 -2
  555. package/dist/src/tui/tui.js +90 -73
  556. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  557. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  558. package/dist/src/tunnel/frpc-extract.js +1 -1
  559. package/dist/src/user-context/config.d.ts +165 -16
  560. package/dist/src/user-context/config.js +74 -14
  561. package/dist/src/user-context/context-compiler.d.ts +4 -8
  562. package/dist/src/user-context/context-compiler.js +7 -10
  563. package/dist/src/user-context/interaction-state.js +8 -4
  564. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  565. package/dist/src/user-context/manual-understanding.js +69 -0
  566. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  567. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  568. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  569. package/dist/src/user-context/memory-readiness.js +41 -0
  570. package/dist/src/user-context/memory-use-audit.js +3 -2
  571. package/dist/src/user-context/projection.d.ts +13 -0
  572. package/dist/src/user-context/projection.js +13 -2
  573. package/dist/src/user-context/relationship-continuity.js +1 -1
  574. package/dist/src/user-context/runtime.d.ts +0 -2
  575. package/dist/src/user-context/runtime.js +1 -10
  576. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  577. package/dist/src/user-context/source-recommendations.js +9 -8
  578. package/dist/src/voice/stt/transcribe-core.js +3 -3
  579. package/dist/src/voice/stt/types.d.ts +2 -2
  580. package/dist/src/voice/tts/speak-core.js +4 -4
  581. package/dist/src/voice/tts/types.d.ts +2 -2
  582. package/dist/src/work-discovery/analyzer.js +5 -5
  583. package/dist/src/work-discovery/service.d.ts +1 -10
  584. package/dist/src/work-discovery/service.js +3 -5
  585. package/dist/src/work-discovery/types.d.ts +1 -1
  586. package/dist/src/workflows/domain/run.d.ts +3 -4
  587. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  588. package/dist/src/workflows/index.js +1 -1
  589. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  590. package/dist/src/workflows/service/workflow-run-service.js +105 -35
  591. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -2
  592. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  593. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  594. package/dist/src/workflows/store/run-index-store.js +10 -8
  595. package/dist/src/workflows/store/run-store.d.ts +1 -1
  596. package/dist/src/workflows/store/run-store.js +2 -2
  597. package/package.json +5 -5
  598. package/dist/gateway/static/root/assets/agents-DgGj9bu6.js +0 -2
  599. package/dist/gateway/static/root/assets/apps-page-B5xahuT-.js +0 -1
  600. package/dist/gateway/static/root/assets/automations-page-BUYrvMmD.js +0 -6
  601. package/dist/gateway/static/root/assets/browser-settings-page-Cjw07q9h.js +0 -8
  602. package/dist/gateway/static/root/assets/browser-workflow-inputs-_gu08MA4.js +0 -1
  603. package/dist/gateway/static/root/assets/capabilities-settings-panel-D_dfVxHY.js +0 -7
  604. package/dist/gateway/static/root/assets/capability-presets-api-DhCn9rPv.js +0 -1
  605. package/dist/gateway/static/root/assets/capability-presets-settings-panel-LWWIYUT7.js +0 -1
  606. package/dist/gateway/static/root/assets/channels-settings-Cyj5OunL.js +0 -1
  607. package/dist/gateway/static/root/assets/channels-status-swr-TEFnV0IG.js +0 -1
  608. package/dist/gateway/static/root/assets/connectors-page-0TobCpBB.js +0 -2
  609. package/dist/gateway/static/root/assets/desktop-pet-CwVSLL6N.js +0 -1
  610. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  611. package/dist/gateway/static/root/assets/dreaming-settings-Da9FeWQl.js +0 -3
  612. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  613. package/dist/gateway/static/root/assets/goals-settings-Dx9uTyWF.js +0 -1
  614. package/dist/gateway/static/root/assets/heartbeat-settings-Cnr5ORXL.js +0 -1
  615. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  616. package/dist/gateway/static/root/assets/index-BA56bQ68.js +0 -224
  617. package/dist/gateway/static/root/assets/local-app-workbench-page-DSUNtLHg.js +0 -2
  618. package/dist/gateway/static/root/assets/logs-page-yI8kpQtO.js +0 -7
  619. package/dist/gateway/static/root/assets/messages-H_iJjnEM.js +0 -3
  620. package/dist/gateway/static/root/assets/notes-workbench-BD297EZt.js +0 -4
  621. package/dist/gateway/static/root/assets/outcome-detail-page-C5i_ZR9a.js +0 -1
  622. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  623. package/dist/gateway/static/root/assets/project-detail-page-D1HGz7Dy.js +0 -1
  624. package/dist/gateway/static/root/assets/projects-page-CqP2TnW-.js +0 -1
  625. package/dist/gateway/static/root/assets/remote-access-hub-BXdVJLS3.js +0 -1
  626. package/dist/gateway/static/root/assets/save-bar-controls-B53UNtDM.js +0 -1
  627. package/dist/gateway/static/root/assets/schedule-field-C3dIMN5q.js +0 -1
  628. package/dist/gateway/static/root/assets/sessions-page-CPAwDdl5.js +0 -1
  629. package/dist/gateway/static/root/assets/settings-advanced-gate-C-jGsoft.js +0 -1
  630. package/dist/gateway/static/root/assets/settings-page-Di5x6Xrc.js +0 -1
  631. package/dist/gateway/static/root/assets/setup-status-panel-uxEE6gAB.js +0 -1
  632. package/dist/gateway/static/root/assets/shares-settings-2mcsMWgn.js +0 -1
  633. package/dist/gateway/static/root/assets/skill-reload-api-ocDwsrEt.js +0 -1
  634. package/dist/gateway/static/root/assets/skills-page-9_jfsFU5.js +0 -2
  635. package/dist/gateway/static/root/assets/system-settings-panel-CIJ66cUy.js +0 -1
  636. package/dist/gateway/static/root/assets/time-picker-D0zAsHOo.js +0 -1
  637. package/dist/gateway/static/root/assets/use-channel-catalog-BQz3K7xj.js +0 -1
  638. package/dist/gateway/static/root/assets/user-context-page-Bn4BLg4W.js +0 -1
  639. package/dist/gateway/static/root/assets/work-copy-Cwyan9Sn.js +0 -1
  640. package/dist/gateway/static/root/assets/work-discovery-page-iJ9RBSpu.js +0 -1
  641. package/dist/gateway/static/root/assets/work-item-detail-page-CqTH7PQX.js +0 -1
  642. package/dist/gateway/static/root/assets/work-page-H3m99ccS.js +0 -3
  643. package/dist/gateway/static/root/assets/workflows-page-BxZSKMfv.js +0 -11
  644. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  645. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  646. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  647. package/dist/src/agent/goals/checklist-judge.js +0 -237
  648. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  649. package/dist/src/agent/goals/checklist-types.js +0 -24
  650. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  651. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  652. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  653. package/dist/src/agent/goals/goal-locale.js +0 -61
  654. package/dist/src/agent/goals/judge.d.ts +0 -41
  655. package/dist/src/agent/goals/judge.js +0 -176
  656. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  657. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  658. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  659. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  660. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  661. package/dist/src/agent/goals/post-turn.js +0 -187
  662. package/dist/src/agent/goals/state.d.ts +0 -46
  663. package/dist/src/agent/goals/state.js +0 -80
  664. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  665. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  666. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  667. package/dist/src/agent/memory/dreaming/events.js +0 -42
  668. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  669. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  670. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  671. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  672. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  673. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  674. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  675. package/dist/src/agent/prompt/memory/index.js +0 -101
  676. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  677. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  678. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  679. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  680. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  681. package/dist/src/agent/tools/goal-tool.js +0 -136
  682. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  683. package/dist/src/chat-commands/builtins/goal.js +0 -122
  684. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  685. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  686. package/dist/src/cli/commands/goal.d.ts +0 -4
  687. package/dist/src/cli/commands/goal.js +0 -235
  688. package/dist/src/discussions/pipeline.d.ts +0 -33
  689. package/dist/src/discussions/pipeline.js +0 -205
  690. package/dist/src/discussions/worker.js +0 -74
  691. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  692. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  693. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  694. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  695. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  696. package/dist/src/gateway/hono/routes/goals.js +0 -786
  697. package/dist/src/gateway/hono/routes/work.js +0 -207
  698. package/dist/src/goals/goal-notifications.d.ts +0 -31
  699. package/dist/src/goals/goal-notifications.js +0 -157
  700. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  701. package/dist/src/goals/goal-queue-store.js +0 -133
  702. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  703. package/dist/src/goals/goal-queue-types.js +0 -1
  704. package/dist/src/goals/goal-runner.d.ts +0 -17
  705. package/dist/src/goals/goal-runner.js +0 -153
  706. package/dist/src/goals/goal-service.d.ts +0 -87
  707. package/dist/src/goals/goal-service.js +0 -323
  708. package/dist/src/goals/goal-store.d.ts +0 -44
  709. package/dist/src/goals/goal-store.js +0 -472
  710. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  711. package/dist/src/goals/goal-workflow-judge.js +0 -145
  712. package/dist/src/goals/index.d.ts +0 -10
  713. package/dist/src/goals/index.js +0 -7
  714. package/dist/src/goals/types.d.ts +0 -136
  715. package/dist/src/goals/types.js +0 -1
  716. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  717. package/dist/src/i18n/goals-bundle.js +0 -61
  718. package/dist/src/i18n/locales/goals.en.js +0 -36
  719. package/dist/src/i18n/locales/goals.zh.js +0 -35
  720. package/dist/src/projects/goal-bind.d.ts +0 -4
  721. package/dist/src/projects/goal-bind.js +0 -38
  722. package/dist/src/session/abort-cutoff.d.ts +0 -6
  723. package/dist/src/session/abort-cutoff.js +0 -8
  724. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  725. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  726. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  727. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  728. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  729. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  730. package/dist/src/work/execution-context.d.ts +0 -16
  731. package/dist/src/work/index.d.ts +0 -14
  732. package/dist/src/work/index.js +0 -15
  733. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  734. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  735. package/dist/src/work/outcome-execution-service.js +0 -60
  736. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  737. package/dist/src/work/outcome-projection-service.js +0 -51
  738. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  739. package/dist/src/work/outcome-receipt-service.js +0 -55
  740. package/dist/src/work/outcome-repository.d.ts +0 -50
  741. package/dist/src/work/outcome-repository.js +0 -112
  742. package/dist/src/work/outcome-run-coordinator.js +0 -117
  743. package/dist/src/work/project-operating-view-service.js +0 -46
  744. package/dist/src/work/work-intake-repository.d.ts +0 -49
  745. package/dist/src/work/work-intake-repository.js +0 -97
  746. package/dist/src/work/work-intake-service.d.ts +0 -26
  747. package/dist/src/work/work-intake-service.js +0 -171
  748. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  749. package/dist/src/work/work-value-metrics-service.js +0 -88
  750. package/dist/src/work-items/agent-context.d.ts +0 -7
  751. package/dist/src/work-items/agent-context.js +0 -73
  752. package/dist/src/work-items/index.d.ts +0 -5
  753. package/dist/src/work-items/index.js +0 -5
  754. package/dist/src/work-items/types.d.ts +0 -112
  755. package/dist/src/work-items/types.js +0 -1
  756. package/dist/src/work-items/work-item-service.d.ts +0 -36
  757. package/dist/src/work-items/work-item-service.js +0 -281
  758. package/dist/src/work-items/work-item-store.d.ts +0 -22
  759. package/dist/src/work-items/work-item-store.js +0 -313
  760. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  761. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  762. /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
@@ -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 };