@xopcai/xopc 0.0.179 → 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 (794) 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-A5FUMjeV.js → activity-store-WlR2zEvA.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-NghNiDWx.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-Bmzslx0Z.js → api-tVOllncq.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-DDWS_BBJ.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-C6znvVtX.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-fvTZhPUr.js → archive-plugin-Ct-shK4n.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-BFEgvg-Q.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-CuI2bOc7.js → binary-plugins-BpSXZBle.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-Z_k8W0al.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-Cq5qXStp.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-TwMak0SE.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-DBKotvNr.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-CyIg2jJp.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-B6fc_7SL.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-debug-page-AbRNi2ON.js → extension-debug-page-DNashgGu.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-ClYfiLXC.js → extension-page-Bvo-5htX.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-BGVP2hw1.js → extension-settings-page-BBESdISV.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-B7GqtklK.js → gateway-config-api-ClQvokMo.js} +1 -1
  35. package/dist/gateway/static/root/assets/{gateway-settings-BMeK8igT.js → gateway-settings-CIRs2QVy.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CKKL96r_.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-BY3VQ5Mv.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-CELtDFz3.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-CF5uUd1n.js → local-apps-page-B6GKdgza.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-DIVc0AQs.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-CN85EdB8.js → markdown-split-BeNMJm_i.js} +1 -1
  48. package/dist/gateway/static/root/assets/{media-plugins-CxYEc-b8.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-Goab4781.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-tQNQcAts.js → page-tabs-3t88bbGx.js} +1 -1
  53. package/dist/gateway/static/root/assets/{preview-open-alternatives-BSTlgsDB.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-iQ5gTCip.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-Bbw8l2ri.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-BqbibcnJ.js → settings-form-section-DYAS8p8z.js} +1 -1
  63. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DNLNCEGT.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-Cdb1e2Cz.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-CkrASny2.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-BG5dGkyA.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-DtwI_VLT.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-DOnpwsrE.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-DP80jW-W.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-BLlVqKdA.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 +7 -4
  94. package/dist/src/agent/agent-manager.js +38 -23
  95. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  96. package/dist/src/agent/child-agent-factory.js +4 -10
  97. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  98. package/dist/src/agent/context/execution-scope.js +17 -20
  99. package/dist/src/agent/context/project-context.d.ts +6 -2
  100. package/dist/src/agent/context/project-context.js +17 -25
  101. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  102. package/dist/src/agent/embedded/run-for-session.d.ts +2 -0
  103. package/dist/src/agent/embedded/run-for-session.js +3 -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/inbound/inbound-loop.js +1 -1
  108. package/dist/src/agent/inbound/turn-dispatcher.d.ts +6 -1
  109. package/dist/src/agent/inbound/turn-dispatcher.js +6 -3
  110. package/dist/src/agent/lifecycle/progress.js +0 -1
  111. package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +2 -0
  112. package/dist/src/agent/lifecycle/timeout-wrapper.js +39 -9
  113. package/dist/src/agent/mcp/bundle-mcp-materialize.js +2 -2
  114. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +3 -5
  115. package/dist/src/agent/mcp/bundle-mcp-policy.js +8 -5
  116. package/dist/src/agent/mcp/bundle-mcp-runtime.js +6 -1
  117. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +1 -1
  118. package/dist/src/agent/mcp/index.js +2 -2
  119. package/dist/src/agent/mcp/mcp-transport-config.d.ts +2 -0
  120. package/dist/src/agent/mcp/mcp-transport-config.js +10 -3
  121. package/dist/src/agent/mcp/mcp-transport.d.ts +1 -0
  122. package/dist/src/agent/mcp/mcp-transport.js +5 -2
  123. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +5 -6
  124. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  125. package/dist/src/agent/memory/builtin-provider.js +75 -229
  126. package/dist/src/agent/memory/compaction.js +1 -1
  127. package/dist/src/agent/memory/context/planner.d.ts +3 -0
  128. package/dist/src/agent/memory/context/planner.js +32 -11
  129. package/dist/src/agent/memory/context/types.d.ts +6 -0
  130. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  131. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  132. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  133. package/dist/src/agent/memory/dreaming/config.js +47 -40
  134. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  135. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  136. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  137. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  138. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  139. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  140. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  141. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  142. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  143. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  144. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  145. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  146. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  147. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  148. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  149. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  150. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  151. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  152. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  153. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  154. package/dist/src/agent/memory/index.d.ts +1 -3
  155. package/dist/src/agent/memory/index.js +2 -3
  156. package/dist/src/agent/memory/manager.d.ts +1 -5
  157. package/dist/src/agent/memory/manager.js +1 -27
  158. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  159. package/dist/src/agent/memory/memory-config.js +2 -23
  160. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  161. package/dist/src/agent/memory/types.d.ts +5 -48
  162. package/dist/src/agent/memory/understanding/service.js +1 -2
  163. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  164. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  165. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  166. package/dist/src/agent/messaging/command-handler.js +0 -8
  167. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  168. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  169. package/dist/src/agent/middleware/index.d.ts +1 -1
  170. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  171. package/dist/src/agent/middleware/self-verify.js +7 -7
  172. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -66
  173. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -1
  174. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +6 -2
  175. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  176. package/dist/src/agent/prompt/response-language.js +11 -0
  177. package/dist/src/agent/prompt/sections/behavior.js +2 -2
  178. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  179. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  180. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  181. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  182. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  183. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  184. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  185. package/dist/src/agent/prompt/subagent-context.js +1 -0
  186. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  187. package/dist/src/agent/prompt/system-prompt.js +10 -2
  188. package/dist/src/agent/service/direct-turn-helpers.d.ts +3 -2
  189. package/dist/src/agent/service/direct-turn-helpers.js +9 -5
  190. package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -0
  191. package/dist/src/agent/service/process-direct-one-shot.js +4 -1
  192. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  193. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  194. package/dist/src/agent/service.d.ts +7 -9
  195. package/dist/src/agent/service.js +32 -23
  196. package/dist/src/agent/service.types.d.ts +2 -15
  197. package/dist/src/agent/session/index.d.ts +1 -1
  198. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  199. package/dist/src/agent/session/session-config-service.js +14 -0
  200. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  201. package/dist/src/agent/session/session-state-bag.js +10 -10
  202. package/dist/src/agent/skills/config.js +6 -0
  203. package/dist/src/agent/skills/filesystem-watcher.d.ts +4 -0
  204. package/dist/src/agent/skills/filesystem-watcher.js +16 -7
  205. package/dist/src/agent/skills/index.d.ts +10 -7
  206. package/dist/src/agent/skills/index.js +56 -47
  207. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  208. package/dist/src/agent/skills/skill-manager.d.ts +5 -2
  209. package/dist/src/agent/skills/skill-manager.js +10 -5
  210. package/dist/src/agent/skills/skill-sources.d.ts +18 -0
  211. package/dist/src/agent/skills/skill-sources.js +143 -0
  212. package/dist/src/agent/skills/types.d.ts +25 -2
  213. package/dist/src/agent/source-context/types.d.ts +1 -1
  214. package/dist/src/agent/source-context/types.js +1 -1
  215. package/dist/src/agent/starter-agents.js +1 -1
  216. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  217. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  218. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  219. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  220. package/dist/src/agent/tool-manuals/index.js +1 -1
  221. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  222. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  223. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  224. package/dist/src/agent/tools/apply-patch.js +1 -12
  225. package/dist/src/agent/tools/clarify-tool.js +1 -1
  226. package/dist/src/agent/tools/delegate-tool.js +6 -5
  227. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  228. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  229. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  230. package/dist/src/agent/tools/exec-command.js +2 -19
  231. package/dist/src/agent/tools/executor.d.ts +2 -0
  232. package/dist/src/agent/tools/executor.js +18 -11
  233. package/dist/src/agent/tools/factory.d.ts +2 -4
  234. package/dist/src/agent/tools/factory.js +10 -29
  235. package/dist/src/agent/tools/index.d.ts +1 -2
  236. package/dist/src/agent/tools/index.js +2 -3
  237. package/dist/src/agent/tools/managed-job-tool.d.ts +2 -0
  238. package/dist/src/agent/tools/managed-job-tool.js +160 -0
  239. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  240. package/dist/src/agent/tools/memory-tool.js +14 -36
  241. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  242. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  243. package/dist/src/agent/tools/workflow-tool.js +4 -4
  244. package/dist/src/agent/tools/write.d.ts +0 -2
  245. package/dist/src/agent/tools/write.js +0 -11
  246. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  247. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  248. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  249. package/dist/src/agent/workflow/builtins/index.js +2 -2
  250. package/dist/src/agent/workflow/index.js +2 -2
  251. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  252. package/dist/src/agent/workflow/workflow-child-tools.js +0 -3
  253. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -4
  254. package/dist/src/agent/workspace-runtime/registry.js +4 -3
  255. package/dist/src/agent-manifest/index.js +3 -3
  256. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  257. package/dist/src/agent-manifest/resolver.js +47 -20
  258. package/dist/src/agent-manifest/schema.d.ts +128 -52
  259. package/dist/src/agent-manifest/schema.js +46 -8
  260. package/dist/src/agent-runtime/index.js +1 -1
  261. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  262. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  263. package/dist/src/ai-assist/text-assist.js +4 -4
  264. package/dist/src/auth/credentials.d.ts +9 -1
  265. package/dist/src/auth/credentials.js +110 -54
  266. package/dist/src/auth/model-credential-store.js +7 -22
  267. package/dist/src/auth/oauth-provider-lock.d.ts +5 -0
  268. package/dist/src/auth/oauth-provider-lock.js +91 -0
  269. package/dist/src/automations/domain/defaults.d.ts +8 -1
  270. package/dist/src/automations/domain/defaults.js +9 -2
  271. package/dist/src/automations/domain/index.js +2 -2
  272. package/dist/src/automations/domain/types.d.ts +48 -8
  273. package/dist/src/automations/domain/validation.d.ts +344 -12
  274. package/dist/src/automations/domain/validation.js +8 -0
  275. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  276. package/dist/src/automations/draft/automation-draft-validator.d.ts +63 -1
  277. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  278. package/dist/src/automations/index.js +3 -3
  279. package/dist/src/automations/service/action-executor.d.ts +2 -2
  280. package/dist/src/automations/service/action-executor.js +165 -35
  281. package/dist/src/automations/service/automation-service.d.ts +4 -0
  282. package/dist/src/automations/service/automation-service.js +207 -28
  283. package/dist/src/automations/storage/automation-run-repository.d.ts +1 -0
  284. package/dist/src/automations/storage/automation-run-repository.js +37 -7
  285. package/dist/src/automations/storage/index.js +2 -2
  286. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  287. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  288. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  289. package/dist/src/chat-commands/context.d.ts +0 -3
  290. package/dist/src/chat-commands/context.js +0 -2
  291. package/dist/src/chat-commands/index.d.ts +1 -2
  292. package/dist/src/chat-commands/index.js +3 -5
  293. package/dist/src/chat-commands/types.d.ts +0 -3
  294. package/dist/src/cli/command-catalog.js +0 -43
  295. package/dist/src/cli/command-loaders.js +0 -1
  296. package/dist/src/cli/command-manifest.js +0 -4
  297. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  298. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  299. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  300. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  301. package/dist/src/cli/commands/gateway/service.js +4 -4
  302. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  303. package/dist/src/cli/commands/project.js +12 -33
  304. package/dist/src/cli/commands/providers.d.ts +4 -4
  305. package/dist/src/cli/commands/providers.js +16 -16
  306. package/dist/src/cli/commands/search.js +7 -7
  307. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  308. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  309. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  310. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  311. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  312. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  313. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  314. package/dist/src/cli/commands/skills.d.ts +7 -0
  315. package/dist/src/cli/commands/skills.js +16 -16
  316. package/dist/src/cli/commands/update.js +1 -1
  317. package/dist/src/cli/commands/voice.d.ts +1 -1
  318. package/dist/src/cli/commands/voice.js +6 -6
  319. package/dist/src/cli/templates.js +1 -1
  320. package/dist/src/cli/utils/oauth-login.js +1 -7
  321. package/dist/src/commands/agents.config.js +2 -18
  322. package/dist/src/config/agent-profile.d.ts +1 -1
  323. package/dist/src/config/agent-profile.js +2 -2
  324. package/dist/src/config/index.js +3 -3
  325. package/dist/src/config/paths.d.ts +0 -3
  326. package/dist/src/config/paths.js +2 -7
  327. package/dist/src/config/schema.d.ts +163 -258
  328. package/dist/src/config/schema.js +10 -115
  329. package/dist/src/config/web-patch.d.ts +0 -29
  330. package/dist/src/config/web-patch.js +2 -69
  331. package/dist/src/connectors/composio-catalog.js +7 -20
  332. package/dist/src/connectors/composio-sessions.js +14 -4
  333. package/dist/src/connectors/composio.d.ts +7 -2
  334. package/dist/src/connectors/composio.js +49 -40
  335. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  336. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  337. package/dist/src/connectors/connector-identity.d.ts +2 -0
  338. package/dist/src/connectors/connector-identity.js +64 -1
  339. package/dist/src/connectors/learning-coordinator.js +34 -15
  340. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  341. package/dist/src/connectors/learning-recipes.js +11 -1
  342. package/dist/src/connectors/source-change-publisher.js +5 -4
  343. package/dist/src/connectors/types.d.ts +16 -0
  344. package/dist/src/daemon/launchd.js +2 -2
  345. package/dist/src/daemon/schtasks.js +1 -1
  346. package/dist/src/daemon/service.js +3 -3
  347. package/dist/src/daemon/systemd.js +1 -1
  348. package/dist/src/daemon/types.d.ts +5 -5
  349. package/dist/src/discussions/analyzer.d.ts +6 -6
  350. package/dist/src/discussions/analyzer.js +32 -22
  351. package/dist/src/discussions/index.d.ts +3 -2
  352. package/dist/src/discussions/index.js +5 -4
  353. package/dist/src/discussions/live-worker.d.ts +5 -3
  354. package/dist/src/discussions/live-worker.js +24 -12
  355. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  356. package/dist/src/discussions/organizer-worker.js +58 -0
  357. package/dist/src/discussions/organizer.d.ts +22 -0
  358. package/dist/src/discussions/organizer.js +92 -0
  359. package/dist/src/discussions/repository.d.ts +16 -5
  360. package/dist/src/discussions/repository.js +159 -135
  361. package/dist/src/discussions/sealer.d.ts +25 -0
  362. package/dist/src/discussions/sealer.js +116 -0
  363. package/dist/src/discussions/service.d.ts +2 -1
  364. package/dist/src/discussions/service.js +70 -60
  365. package/dist/src/discussions/transcript.js +1 -1
  366. package/dist/src/discussions/types.d.ts +45 -20
  367. package/dist/src/discussions/types.js +4 -2
  368. package/dist/src/extensions/types/core.d.ts +3 -3
  369. package/dist/src/extensions/types/tui.d.ts +2 -2
  370. package/dist/src/extensions/update.d.ts +3 -3
  371. package/dist/src/extensions/update.js +13 -13
  372. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  373. package/dist/src/gateway/agent-builtin-tools.js +0 -1
  374. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  375. package/dist/src/gateway/agents-admin.js +16 -18
  376. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  377. package/dist/src/gateway/capability-presets-admin.js +59 -2
  378. package/dist/src/gateway/chat-limits.d.ts +6 -2
  379. package/dist/src/gateway/chat-limits.js +17 -3
  380. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  381. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  382. package/dist/src/gateway/hono/app.js +9 -10
  383. package/dist/src/gateway/hono/index.d.ts +1 -1
  384. package/dist/src/gateway/hono/index.js +2 -2
  385. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  386. package/dist/src/gateway/hono/lib/config-payload.js +5 -3
  387. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  388. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  389. package/dist/src/gateway/hono/oauth-async.js +1 -7
  390. package/dist/src/gateway/hono/oauth.js +1 -7
  391. package/dist/src/gateway/hono/routes/activity.js +1 -2
  392. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  393. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  394. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  395. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  396. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -6
  397. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  398. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  399. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  400. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  401. package/dist/src/gateway/hono/routes/home.js +2 -2
  402. package/dist/src/gateway/hono/routes/index.js +2 -4
  403. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  404. package/dist/src/gateway/hono/routes/media.js +9 -3
  405. package/dist/src/gateway/hono/routes/memory.js +38 -113
  406. package/dist/src/gateway/hono/routes/projects.js +220 -588
  407. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  408. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  409. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  410. package/dist/src/gateway/hono/routes/workflows.js +7 -8
  411. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  412. package/dist/src/gateway/hono/routes/you.js +250 -78
  413. package/dist/src/gateway/hono/sse.d.ts +1 -16
  414. package/dist/src/gateway/hono/sse.js +4 -161
  415. package/dist/src/gateway/index.js +2 -2
  416. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  417. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  418. package/dist/src/gateway/security/csp.d.ts +2 -0
  419. package/dist/src/gateway/security/csp.js +4 -0
  420. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  421. package/dist/src/gateway/service/agent-runner.js +97 -46
  422. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  423. package/dist/src/gateway/service/run-gateway-agent.js +27 -42
  424. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  425. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  426. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  427. package/dist/src/gateway/service.d.ts +28 -16
  428. package/dist/src/gateway/service.js +147 -130
  429. package/dist/src/gateway/session-reset-service.js +6 -6
  430. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  431. package/dist/src/i18n/index.d.ts +0 -1
  432. package/dist/src/i18n/index.js +1 -2
  433. package/dist/src/i18n/language-consistency.d.ts +10 -0
  434. package/dist/src/i18n/language-consistency.js +34 -0
  435. package/dist/src/i18n/response-language.d.ts +8 -0
  436. package/dist/src/i18n/response-language.js +17 -0
  437. package/dist/src/i18n/share-tool-bundle.js +2 -2
  438. package/dist/src/mcp/channel-bridge.js +5 -3
  439. package/dist/src/media/store.js +1 -1
  440. package/dist/src/media/types.d.ts +1 -1
  441. package/dist/src/media/uri.js +1 -2
  442. package/dist/src/media-understanding/runner.d.ts +1 -1
  443. package/dist/src/media-understanding/runner.js +9 -9
  444. package/dist/src/media-understanding/types.d.ts +4 -4
  445. package/dist/src/mobile/notification-service.js +16 -21
  446. package/dist/src/mobile/notification-types.d.ts +2 -2
  447. package/dist/src/notes/service.js +1 -1
  448. package/dist/src/notes/types.d.ts +0 -1
  449. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  450. package/dist/src/proactive/execution/context.js +45 -28
  451. package/dist/src/proactive/execution/insight.js +1 -1
  452. package/dist/src/proactive/temporal/worker.js +2 -2
  453. package/dist/src/projects/index.d.ts +0 -1
  454. package/dist/src/projects/index.js +1 -2
  455. package/dist/src/projects/project-loop.d.ts +16 -8
  456. package/dist/src/projects/project-loop.js +41 -48
  457. package/dist/src/projects/project-service.d.ts +14 -4
  458. package/dist/src/projects/project-service.js +18 -10
  459. package/dist/src/projects/project-store.d.ts +36 -3
  460. package/dist/src/projects/project-store.js +116 -14
  461. package/dist/src/projects/types.d.ts +50 -3
  462. package/dist/src/providers/auth-runtime/oauth.js +12 -0
  463. package/dist/src/providers/model-response.d.ts +4 -0
  464. package/dist/src/providers/model-response.js +28 -0
  465. package/dist/src/session/config-types.d.ts +3 -0
  466. package/dist/src/session/index.d.ts +0 -1
  467. package/dist/src/session/index.js +1 -2
  468. package/dist/src/session/init-session-turn.js +6 -6
  469. package/dist/src/session/store.js +4 -4
  470. package/dist/src/session/types.d.ts +1 -6
  471. package/dist/src/share/site-proxy.js +1 -1
  472. package/dist/src/storage/sqlite/config-repository.js +7 -4
  473. package/dist/src/storage/sqlite/connection.js +1 -1
  474. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  475. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  476. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  477. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  478. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  479. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  480. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  481. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  482. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  483. package/dist/src/storage/sqlite/index.d.ts +6 -4
  484. package/dist/src/storage/sqlite/index.js +7 -5
  485. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  486. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  487. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  488. package/dist/src/storage/sqlite/memory-records-repository.js +109 -138
  489. package/dist/src/storage/sqlite/migrations/088_automation_execution_deadlines.sql +5 -0
  490. package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +8 -0
  491. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  492. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  493. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  494. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  495. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  496. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  497. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  498. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  499. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  500. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  501. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  502. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  503. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  504. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  505. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  506. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  507. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  508. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  509. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  510. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  511. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  512. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  513. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  514. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  515. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  516. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  517. package/dist/src/storage/sqlite/schema.js +5 -2
  518. package/dist/src/storage/sqlite/schema.sql +76 -61
  519. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  520. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  521. package/dist/src/storage/sqlite/session-repository.js +5 -6
  522. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  523. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  524. package/dist/src/tasks/execution-context.d.ts +23 -0
  525. package/dist/src/{work → tasks}/execution-context.js +7 -20
  526. package/dist/src/{work → tasks}/home-query-service.d.ts +43 -26
  527. package/dist/src/{work → tasks}/home-query-service.js +57 -127
  528. package/dist/src/tasks/index.d.ts +20 -0
  529. package/dist/src/tasks/index.js +21 -0
  530. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  531. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  532. package/dist/src/tasks/project-operating-view-service.js +77 -0
  533. package/dist/src/tasks/task-application-service.d.ts +35 -0
  534. package/dist/src/tasks/task-application-service.js +423 -0
  535. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  536. package/dist/src/tasks/task-context-assembler.js +125 -0
  537. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  538. package/dist/src/tasks/task-context-repository.js +97 -0
  539. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  540. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  541. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  542. package/dist/src/tasks/task-contract-planner.js +87 -0
  543. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  544. package/dist/src/tasks/task-dependency-service.js +81 -0
  545. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  546. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  547. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  548. package/dist/src/tasks/task-read-model-projector.js +93 -0
  549. package/dist/src/tasks/task-repository.d.ts +82 -0
  550. package/dist/src/tasks/task-repository.js +185 -0
  551. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  552. package/dist/src/tasks/task-run-coordinator.js +130 -0
  553. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  554. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  555. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  556. package/dist/src/tasks/task-run-repository.js +312 -0
  557. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  558. package/dist/src/tasks/task-signal-service.js +72 -0
  559. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  560. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  561. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  562. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  563. package/dist/src/tui/backends/embedded-backend.d.ts +13 -1
  564. package/dist/src/tui/backends/embedded-backend.js +40 -10
  565. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  566. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  567. package/dist/src/tui/components/settings-selector.js +0 -20
  568. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  569. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  570. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  571. package/dist/src/tui/tui-backend.d.ts +15 -1
  572. package/dist/src/tui/tui-backend.js +10 -1
  573. package/dist/src/tui/tui-command-formatters.js +1 -2
  574. package/dist/src/tui/tui-commands.js +8 -19
  575. package/dist/src/tui/tui-oauth-login.js +1 -7
  576. package/dist/src/tui/tui-picker-overlay.js +1 -0
  577. package/dist/src/tui/tui-picker-services.d.ts +1 -0
  578. package/dist/src/tui/tui-session-actions.js +0 -2
  579. package/dist/src/tui/tui-settings.d.ts +0 -6
  580. package/dist/src/tui/tui-settings.js +0 -10
  581. package/dist/src/tui/tui-skills-autocomplete.d.ts +6 -2
  582. package/dist/src/tui/tui-skills-autocomplete.js +10 -6
  583. package/dist/src/tui/tui-startup-resources.d.ts +3 -1
  584. package/dist/src/tui/tui-startup-resources.js +3 -2
  585. package/dist/src/tui/tui-types.d.ts +1 -4
  586. package/dist/src/tui/tui-types.js +1 -2
  587. package/dist/src/tui/tui.js +92 -72
  588. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  589. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  590. package/dist/src/tunnel/frpc-extract.js +1 -1
  591. package/dist/src/user-context/config.d.ts +165 -16
  592. package/dist/src/user-context/config.js +74 -14
  593. package/dist/src/user-context/context-compiler.d.ts +4 -8
  594. package/dist/src/user-context/context-compiler.js +7 -10
  595. package/dist/src/user-context/interaction-state.js +8 -4
  596. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  597. package/dist/src/user-context/manual-understanding.js +69 -0
  598. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  599. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  600. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  601. package/dist/src/user-context/memory-readiness.js +41 -0
  602. package/dist/src/user-context/memory-use-audit.js +3 -2
  603. package/dist/src/user-context/projection.d.ts +13 -0
  604. package/dist/src/user-context/projection.js +13 -2
  605. package/dist/src/user-context/relationship-continuity.js +1 -1
  606. package/dist/src/user-context/runtime.d.ts +0 -2
  607. package/dist/src/user-context/runtime.js +1 -10
  608. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  609. package/dist/src/user-context/source-recommendations.js +9 -8
  610. package/dist/src/voice/stt/transcribe-core.js +3 -3
  611. package/dist/src/voice/stt/types.d.ts +2 -2
  612. package/dist/src/voice/tts/speak-core.js +4 -4
  613. package/dist/src/voice/tts/types.d.ts +2 -2
  614. package/dist/src/work-discovery/analyzer.js +5 -5
  615. package/dist/src/work-discovery/service.d.ts +1 -10
  616. package/dist/src/work-discovery/service.js +3 -5
  617. package/dist/src/work-discovery/types.d.ts +1 -1
  618. package/dist/src/workflows/domain/run.d.ts +3 -4
  619. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  620. package/dist/src/workflows/index.js +1 -1
  621. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  622. package/dist/src/workflows/service/workflow-run-service.js +104 -34
  623. package/dist/src/workflows/service/workflow-run-service.types.d.ts +4 -3
  624. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  625. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  626. package/dist/src/workflows/store/run-index-store.js +10 -8
  627. package/dist/src/workflows/store/run-store.d.ts +1 -1
  628. package/dist/src/workflows/store/run-store.js +2 -2
  629. package/package.json +5 -5
  630. package/dist/gateway/static/root/assets/agents-Baq8Shzy.js +0 -2
  631. package/dist/gateway/static/root/assets/apps-page-d-Y0Jbe1.js +0 -1
  632. package/dist/gateway/static/root/assets/automations-page-CFYOCBlQ.js +0 -6
  633. package/dist/gateway/static/root/assets/browser-settings-page-CGApoYPr.js +0 -8
  634. package/dist/gateway/static/root/assets/browser-workflow-inputs-gs6b5e9-.js +0 -1
  635. package/dist/gateway/static/root/assets/capabilities-settings-panel-BC-8n4Hl.js +0 -7
  636. package/dist/gateway/static/root/assets/capability-presets-api-BTKhPoDC.js +0 -1
  637. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7WQ0oBN.js +0 -1
  638. package/dist/gateway/static/root/assets/channels-settings-DysELlO_.js +0 -1
  639. package/dist/gateway/static/root/assets/channels-status-swr-BAC-R8IK.js +0 -1
  640. package/dist/gateway/static/root/assets/connectors-page-QH-0WnOo.js +0 -2
  641. package/dist/gateway/static/root/assets/desktop-pet-Dwml8znf.js +0 -1
  642. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  643. package/dist/gateway/static/root/assets/dreaming-settings-CUQxGnDf.js +0 -3
  644. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  645. package/dist/gateway/static/root/assets/goals-settings-Dj0ao2qA.js +0 -1
  646. package/dist/gateway/static/root/assets/heartbeat-settings-CTI2nPKa.js +0 -1
  647. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  648. package/dist/gateway/static/root/assets/index-BDzspHrg.js +0 -224
  649. package/dist/gateway/static/root/assets/local-app-workbench-page-m8CTSGix.js +0 -2
  650. package/dist/gateway/static/root/assets/logs-page-DmH7Tk4k.js +0 -7
  651. package/dist/gateway/static/root/assets/messages-DYqBwJAK.js +0 -3
  652. package/dist/gateway/static/root/assets/notes-workbench-C4jDBVBN.js +0 -4
  653. package/dist/gateway/static/root/assets/outcome-detail-page-DNRfeLZp.js +0 -1
  654. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  655. package/dist/gateway/static/root/assets/project-detail-page-D7anK-eu.js +0 -1
  656. package/dist/gateway/static/root/assets/projects-page-BePESKWy.js +0 -1
  657. package/dist/gateway/static/root/assets/remote-access-hub-CHrzBKIs.js +0 -1
  658. package/dist/gateway/static/root/assets/save-bar-controls-BsPf5Gkk.js +0 -1
  659. package/dist/gateway/static/root/assets/schedule-field-kAytH7mq.js +0 -1
  660. package/dist/gateway/static/root/assets/sessions-page-He5YAczL.js +0 -1
  661. package/dist/gateway/static/root/assets/settings-advanced-gate-2eAC9GCP.js +0 -1
  662. package/dist/gateway/static/root/assets/settings-page-BR6Ss0bK.js +0 -1
  663. package/dist/gateway/static/root/assets/setup-status-panel-moT-D-ia.js +0 -1
  664. package/dist/gateway/static/root/assets/shares-settings-X49zY21H.js +0 -1
  665. package/dist/gateway/static/root/assets/skill-reload-api-CjpnFfOH.js +0 -1
  666. package/dist/gateway/static/root/assets/skills-page-DEwfSOUE.js +0 -2
  667. package/dist/gateway/static/root/assets/system-settings-panel-XdY8eyYf.js +0 -1
  668. package/dist/gateway/static/root/assets/time-picker-UghsQu_I.js +0 -1
  669. package/dist/gateway/static/root/assets/use-channel-catalog-BWDtfNvQ.js +0 -1
  670. package/dist/gateway/static/root/assets/user-context-page-BtNBEtKj.js +0 -1
  671. package/dist/gateway/static/root/assets/work-copy-hQmivDgT.js +0 -1
  672. package/dist/gateway/static/root/assets/work-discovery-page-CkDOVZBr.js +0 -1
  673. package/dist/gateway/static/root/assets/work-item-detail-page-CqvkcFcR.js +0 -1
  674. package/dist/gateway/static/root/assets/work-page-BL8TZW4Z.js +0 -3
  675. package/dist/gateway/static/root/assets/workflows-page-BgsdRu3_.js +0 -11
  676. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  677. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  678. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  679. package/dist/src/agent/goals/checklist-judge.js +0 -237
  680. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  681. package/dist/src/agent/goals/checklist-types.js +0 -24
  682. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  683. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  684. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  685. package/dist/src/agent/goals/goal-locale.js +0 -61
  686. package/dist/src/agent/goals/judge.d.ts +0 -41
  687. package/dist/src/agent/goals/judge.js +0 -176
  688. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  689. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  690. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  691. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  692. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  693. package/dist/src/agent/goals/post-turn.js +0 -187
  694. package/dist/src/agent/goals/state.d.ts +0 -46
  695. package/dist/src/agent/goals/state.js +0 -80
  696. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  697. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  698. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  699. package/dist/src/agent/memory/dreaming/events.js +0 -42
  700. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  701. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  702. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  703. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  704. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  705. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  706. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  707. package/dist/src/agent/prompt/memory/index.js +0 -101
  708. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  709. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  710. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  711. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  712. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  713. package/dist/src/agent/tools/goal-tool.js +0 -136
  714. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  715. package/dist/src/chat-commands/builtins/goal.js +0 -122
  716. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  717. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  718. package/dist/src/cli/commands/goal.d.ts +0 -4
  719. package/dist/src/cli/commands/goal.js +0 -235
  720. package/dist/src/discussions/pipeline.d.ts +0 -33
  721. package/dist/src/discussions/pipeline.js +0 -205
  722. package/dist/src/discussions/worker.js +0 -74
  723. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  724. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  725. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  726. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  727. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  728. package/dist/src/gateway/hono/routes/goals.js +0 -786
  729. package/dist/src/gateway/hono/routes/work.js +0 -207
  730. package/dist/src/goals/goal-notifications.d.ts +0 -31
  731. package/dist/src/goals/goal-notifications.js +0 -157
  732. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  733. package/dist/src/goals/goal-queue-store.js +0 -133
  734. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  735. package/dist/src/goals/goal-queue-types.js +0 -1
  736. package/dist/src/goals/goal-runner.d.ts +0 -17
  737. package/dist/src/goals/goal-runner.js +0 -153
  738. package/dist/src/goals/goal-service.d.ts +0 -87
  739. package/dist/src/goals/goal-service.js +0 -323
  740. package/dist/src/goals/goal-store.d.ts +0 -44
  741. package/dist/src/goals/goal-store.js +0 -472
  742. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  743. package/dist/src/goals/goal-workflow-judge.js +0 -145
  744. package/dist/src/goals/index.d.ts +0 -10
  745. package/dist/src/goals/index.js +0 -7
  746. package/dist/src/goals/types.d.ts +0 -136
  747. package/dist/src/goals/types.js +0 -1
  748. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  749. package/dist/src/i18n/goals-bundle.js +0 -61
  750. package/dist/src/i18n/locales/goals.en.js +0 -36
  751. package/dist/src/i18n/locales/goals.zh.js +0 -35
  752. package/dist/src/projects/goal-bind.d.ts +0 -4
  753. package/dist/src/projects/goal-bind.js +0 -38
  754. package/dist/src/session/abort-cutoff.d.ts +0 -6
  755. package/dist/src/session/abort-cutoff.js +0 -8
  756. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  757. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  758. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  759. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  760. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  761. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  762. package/dist/src/work/execution-context.d.ts +0 -16
  763. package/dist/src/work/index.d.ts +0 -14
  764. package/dist/src/work/index.js +0 -15
  765. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  766. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  767. package/dist/src/work/outcome-execution-service.js +0 -60
  768. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  769. package/dist/src/work/outcome-projection-service.js +0 -51
  770. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  771. package/dist/src/work/outcome-receipt-service.js +0 -55
  772. package/dist/src/work/outcome-repository.d.ts +0 -50
  773. package/dist/src/work/outcome-repository.js +0 -112
  774. package/dist/src/work/outcome-run-coordinator.js +0 -117
  775. package/dist/src/work/project-operating-view-service.js +0 -46
  776. package/dist/src/work/work-intake-repository.d.ts +0 -49
  777. package/dist/src/work/work-intake-repository.js +0 -97
  778. package/dist/src/work/work-intake-service.d.ts +0 -26
  779. package/dist/src/work/work-intake-service.js +0 -171
  780. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  781. package/dist/src/work/work-value-metrics-service.js +0 -88
  782. package/dist/src/work-items/agent-context.d.ts +0 -7
  783. package/dist/src/work-items/agent-context.js +0 -73
  784. package/dist/src/work-items/index.d.ts +0 -5
  785. package/dist/src/work-items/index.js +0 -5
  786. package/dist/src/work-items/types.d.ts +0 -112
  787. package/dist/src/work-items/types.js +0 -1
  788. package/dist/src/work-items/work-item-service.d.ts +0 -36
  789. package/dist/src/work-items/work-item-service.js +0 -281
  790. package/dist/src/work-items/work-item-store.d.ts +0 -22
  791. package/dist/src/work-items/work-item-store.js +0 -313
  792. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  793. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  794. /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
@@ -1,5 +1,7 @@
1
+ import { buildTaskExecutionDirective } from "../../tasks/task-context-assembler.js";
1
2
  import { resolveImageHandlingStrategy } from "../image/vision-detection.js";
2
3
  import { hydrateUserTurnForLlm } from "../inbound/attachment-pipeline.js";
4
+ import { prependAgentContext } from "../memory/context/planner.js";
3
5
  import { extractAgentUserPlainText } from "../memory/user-message-text.js";
4
6
  import { shouldSkipResetOverlapCommand } from "../../session/reset-triggers.js";
5
7
  import { parseSlashCommand } from "../../chat-commands/command-parse.js";
@@ -74,12 +76,13 @@ async function tryRunSlashCommand(deps, ctx, content, options) {
74
76
  * prefetch + background-review nudge wiring used by every direct entry point.
75
77
  */
76
78
  async function runDirectAgentTurn(deps, input) {
79
+ const turnId = input.runId ?? crypto.randomUUID();
77
80
  const userPlain = extractAgentUserPlainText(input.userMessage);
78
- const userContext = await deps.agentManager.prepareUserTurnContext(input.userMessage, input.sessionKey);
79
- const userMessageForModel = userContext.modelMessage;
81
+ const userContext = await deps.agentManager.prepareUserTurnContext(input.userMessage, input.sessionKey, turnId);
82
+ const userMessageForModel = prependAgentContext(userContext.modelMessage, buildTaskExecutionDirective(input.sessionKey));
80
83
  if (userContext.consentRequests.length > 0) input.onEvent?.({
81
84
  type: "memory_consent_required",
82
- runId: input.runId,
85
+ runId: turnId,
83
86
  requests: userContext.consentRequests
84
87
  });
85
88
  const modelRef = deps.modelManager.getModelForSession(input.sessionKey);
@@ -91,7 +94,7 @@ async function runDirectAgentTurn(deps, input) {
91
94
  const llmImages = [...llmTurn.images, ...sourceImages];
92
95
  const result = await runEmbeddedTurnForSession({
93
96
  sessionKey: input.sessionKey,
94
- runId: input.runId ?? crypto.randomUUID(),
97
+ runId: turnId,
95
98
  userMessage: userMessageForModel,
96
99
  llmImages,
97
100
  sessionStore: deps.sessionStore,
@@ -99,13 +102,14 @@ async function runDirectAgentTurn(deps, input) {
99
102
  modelManager: deps.modelManager,
100
103
  getConfig: () => deps.config,
101
104
  abortSignal: input.abortSignal,
105
+ deadlineAtMs: input.deadlineAtMs,
102
106
  beforeTurn: () => deps.agentManager.beginBackgroundReviewUserTurn(input.sessionKey),
103
107
  onEvent: input.onEvent
104
108
  });
105
109
  const understandingReview = await deps.agentManager.afterAgentTurn(input.sessionKey, userPlain);
106
110
  if (understandingReview?.createdRecords.length) input.onEvent?.({
107
111
  type: "memory_captured",
108
- runId: input.runId,
112
+ runId: turnId,
109
113
  records: understandingReview.createdRecords
110
114
  });
111
115
  deps.agentManager.scheduleBackgroundReviewAfterUserTurn(input.sessionKey);
@@ -33,4 +33,7 @@ export declare function runProcessDirect(deps: RunProcessDirectDeps, input: {
33
33
  sessionKey: string;
34
34
  attachments?: InboundAttachmentInput[];
35
35
  thinking?: string;
36
+ signal?: AbortSignal;
37
+ runId?: string;
38
+ deadlineAtMs?: number;
36
39
  }): Promise<string>;
@@ -61,7 +61,10 @@ async function runProcessDirect(deps, input) {
61
61
  config: deps.config
62
62
  }, {
63
63
  sessionKey: input.sessionKey,
64
- userMessage
64
+ runId: input.runId,
65
+ userMessage,
66
+ abortSignal: input.signal,
67
+ deadlineAtMs: input.deadlineAtMs
65
68
  }));
66
69
  } finally {
67
70
  clearPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);
@@ -36,8 +36,8 @@ export interface ProcessDirectStreamingDeps {
36
36
  commandHandler: Pick<CommandHandler, 'executeCommandAndAggregateReply'>;
37
37
  prepareInboundAttachments: (sessionKey: string, attachments?: DirectStreamInboundAttachment[]) => Promise<MediaRef[] | undefined>;
38
38
  buildTranscriptUserMessage: (content: string, prepared: MediaRef[] | undefined, sessionKey: string) => Promise<TranscriptUserMessage>;
39
- recordPersistentGoalStreamOutcome?: (sessionKey: string, outcome: {
40
- skipPersistentGoalPostTurn: boolean;
39
+ recordTaskReviewStreamHint?: (sessionKey: string, task: {
40
+ skipTaskReview: boolean;
41
41
  }) => void;
42
42
  onTurnComplete?: (sessionKey: string, lastAssistantText?: string) => void;
43
43
  enqueueProvisionalSessionTitle?: (sessionKey: string, userText: string) => void;
@@ -237,7 +237,7 @@ async function* runProcessDirectStreaming(deps, input) {
237
237
  webchatSlashReceipt = text;
238
238
  pushAssistantReceipt(queue, text, input.runId, slashCommandMetadata);
239
239
  } else if (channel === "webchat") {
240
- webchatSlashReceipt = "Command finished with no assistant text. If you used `/goal`, a follow-up turn may still be scheduled automatically.";
240
+ webchatSlashReceipt = "Command finished with no assistant text. An Task continuation may still be scheduled automatically.";
241
241
  pushAssistantReceipt(queue, webchatSlashReceipt, input.runId);
242
242
  }
243
243
  const workflowRun = slash.metadata?.workflowRun;
@@ -350,7 +350,7 @@ async function* runProcessDirectStreaming(deps, input) {
350
350
  sessionKey
351
351
  }, "Failed to persist webchat slash command receipt");
352
352
  }
353
- deps.recordPersistentGoalStreamOutcome?.(sessionKey, { skipPersistentGoalPostTurn: ranSlashCommand });
353
+ deps.recordTaskReviewStreamHint?.(sessionKey, { skipTaskReview: ranSlashCommand });
354
354
  } finally {
355
355
  if (channel === "webchat") deps.unregisterWebchatSsePublisher(sessionKey);
356
356
  deps.endDirectRequestContext();
@@ -9,7 +9,7 @@ import { type AgentSkillAvailabilityPayload, type SkillCatalogEntry, type SkillC
9
9
  import type { SkillMarkdownPreviewPayload } from './skills/types.js';
10
10
  import type { AgentCapabilityCatalogEntry } from './capabilities/index.js';
11
11
  import type { AgentServiceConfig, StreamHandle } from './service.types.js';
12
- import { PersistentGoalService } from './goals/persistent-goal-service.js';
12
+ import { TaskJudgeService } from './tasks/task-judge-service.js';
13
13
  import type { SkillInstallToolOptions, SkillInstallToolResult, MarketplaceSkillInstallToolOptions, MarketplaceSkillInstallToolResult } from './tools/skill-install-tool.js';
14
14
  import { type InboundAttachmentInput, type MediaRef } from '../channels/attachments/inbound-persist.js';
15
15
  export type { AgentServiceConfig, AgentContext, StreamHandle } from './service.types.js';
@@ -55,12 +55,8 @@ export declare class AgentService {
55
55
  * TUI, CLI, and automations do not need to thread every call through `AgentService`.
56
56
  */
57
57
  readonly turnDispatcher: TurnDispatcher;
58
- /**
59
- * `/goal` runtime: continuation scheduling, persistent-goal API factory,
60
- * stream-outcome state, post-turn verdict. Public so the gateway can wire
61
- * the webchat continuation scheduler and read stream outcomes directly.
62
- */
63
- readonly persistentGoals: PersistentGoalService;
58
+ /** Independent acceptance review for the active Task after an agent turn. */
59
+ readonly taskJudge: TaskJudgeService;
64
60
  /**
65
61
  * Per-session config writes (model / thinking / reasoning / working directory).
66
62
  * Public so REST endpoints and CLI flows can hit it without going through a
@@ -88,8 +84,8 @@ export declare class AgentService {
88
84
  private agentManager;
89
85
  /**
90
86
  * Unified per-session state container (replaces six ad-hoc Maps). Owns webchat
91
- * publishers, last assistant text, embedded stream buffer, persistent-goal stream
92
- * outcomes, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
87
+ * publishers, last assistant text, embedded stream buffer, Task review stream
88
+ * tasks, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
93
89
  * sweep for slots that have no explicit owner.
94
90
  */
95
91
  private sessionState;
@@ -113,6 +109,7 @@ export declare class AgentService {
113
109
  getCapabilityCatalog(sessionKey?: string): AgentCapabilityCatalogEntry[];
114
110
  getSkillMarkdownSource(skillName: string): SkillMarkdownPreviewPayload | null;
115
111
  refreshSkillsAfterDiskChange(): void;
112
+ refreshSkillsAfterTrustChange(): void;
116
113
  installSkillFromSource(opts: SkillInstallToolOptions): Promise<SkillInstallToolResult>;
117
114
  installSkillFromMarketplace(opts: MarketplaceSkillInstallToolOptions): Promise<MarketplaceSkillInstallToolResult>;
118
115
  refreshSkillsAfterSkillConfigChange(): void;
@@ -133,6 +130,7 @@ export declare class AgentService {
133
130
  beginInboundTurn(sessionKey: string): void;
134
131
  endInboundTurn(sessionKey: string): void;
135
132
  getInboundTurnDepth(sessionKey: string): number;
133
+ takeTaskReviewStreamHint(sessionKey: string): import("./session/session-state-bag.js").TaskReviewStreamHint;
136
134
  start(): Promise<void>;
137
135
  stop(): Promise<void>;
138
136
  reconcileDreamingNow(): Promise<void>;
@@ -9,6 +9,7 @@ import { init_paths, resolveUserProfilePath } from "../config/paths.js";
9
9
  import { extractTextContent } from "./context/workspace.js";
10
10
  import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
11
11
  import { getProjectForSession } from "../projects/workspace.js";
12
+ import { resolveResponseLanguageForSession } from "./prompt/response-language.js";
12
13
  import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
13
14
  import { removeSkillsLockEntry } from "./skills/hub-lock.js";
14
15
  import { installSkillFromZip } from "./skills/managed-store.js";
@@ -63,7 +64,8 @@ import { getWorkflowProgressBroker } from "./workflow/progress-broker.js";
63
64
  import "./workflow/index.js";
64
65
  import { FeedbackCoordinator } from "./feedback/feedback-coordinator.js";
65
66
  import "./feedback/index.js";
66
- import { PersistentGoalService } from "./goals/persistent-goal-service.js";
67
+ import { TaskJudgeService } from "./tasks/task-judge-service.js";
68
+ import { analyzeResponseLanguage } from "../i18n/language-consistency.js";
67
69
  import { existsSync, readFileSync } from "node:fs";
68
70
  import { readFile } from "node:fs/promises";
69
71
  //#region src/agent/service.ts
@@ -124,12 +126,8 @@ var AgentService = class {
124
126
  * TUI, CLI, and automations do not need to thread every call through `AgentService`.
125
127
  */
126
128
  turnDispatcher;
127
- /**
128
- * `/goal` runtime: continuation scheduling, persistent-goal API factory,
129
- * stream-outcome state, post-turn verdict. Public so the gateway can wire
130
- * the webchat continuation scheduler and read stream outcomes directly.
131
- */
132
- persistentGoals;
129
+ /** Independent acceptance review for the active Task after an agent turn. */
130
+ taskJudge;
133
131
  /**
134
132
  * Per-session config writes (model / thinking / reasoning / working directory).
135
133
  * Public so REST endpoints and CLI flows can hit it without going through a
@@ -157,8 +155,8 @@ var AgentService = class {
157
155
  agentManager;
158
156
  /**
159
157
  * Unified per-session state container (replaces six ad-hoc Maps). Owns webchat
160
- * publishers, last assistant text, embedded stream buffer, persistent-goal stream
161
- * outcomes, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
158
+ * publishers, last assistant text, embedded stream buffer, Task review stream
159
+ * tasks, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
162
160
  * sweep for slots that have no explicit owner.
163
161
  */
164
162
  sessionState = new SessionStateBag();
@@ -243,8 +241,8 @@ var AgentService = class {
243
241
  getBrowserRecipeService: config.getBrowserRecipeService,
244
242
  getNotesService: config.getNotesService,
245
243
  getProjectService: config.getProjectService,
246
- getWorkItemService: config.getWorkItemService,
247
244
  getLocalAppService: config.getLocalAppService,
245
+ dispatchTaskRuns: config.dispatchTaskRuns,
248
246
  getWorkflowRunService: config.getWorkflowRunService,
249
247
  onSkillsUpdated: config.onSkillsUpdated,
250
248
  installSkillFromSource: (opts) => this.installSkillFromSource(opts),
@@ -270,6 +268,18 @@ var AgentService = class {
270
268
  const changedPaths = readChangedPathsFromToolEnd(e.toolName, e.args, e.result);
271
269
  this.agentManager.markCodeIntelligenceDirty(context.sessionKey, changedPaths);
272
270
  });
271
+ this.agentEventHandler.registerListener("message_end", (event, context) => {
272
+ const message = event.message;
273
+ if (message.role !== "assistant") return;
274
+ const analysis = analyzeResponseLanguage(assistantMessageText(message), resolveResponseLanguageForSession(this.effectiveAppConfig(), context.sessionKey));
275
+ const fields = {
276
+ phase: "response_language_check",
277
+ sessionKey: context.sessionKey,
278
+ ...analysis
279
+ };
280
+ if (analysis.compliant) log.debug(fields, "Assistant response language check passed");
281
+ else log.warn(fields, "Assistant response language did not match the active preference");
282
+ });
273
283
  this.workflowProgressBrokerHandle = getWorkflowProgressBroker().attachTo(this.agentEventHandler);
274
284
  this.sessionHydrator = new SessionHydrator({
275
285
  sessionConfigStore: this.sessionConfigStore,
@@ -311,7 +321,6 @@ var AgentService = class {
311
321
  bus,
312
322
  sessionStore: this.sessionStore,
313
323
  sessionConfigStore: this.sessionConfigStore,
314
- getPersistentGoalApisForCommand: (routing) => this.persistentGoals.buildApisForRouting(routing),
315
324
  getWorkflowRunService: config.getWorkflowRunService,
316
325
  applySessionThinkingLevel: (sessionKey, level) => {
317
326
  this.agentManager.setThinkingLevel(sessionKey, level);
@@ -333,16 +342,10 @@ var AgentService = class {
333
342
  getSessionContextReport: (sessionKey, mode) => this.sessionInspector.report(sessionKey, mode)
334
343
  });
335
344
  this.sessionLifecycleManager = new SessionLifecycleManager(this.sessionStore, this.sessionTracker, this.lifecycleManager);
336
- this.persistentGoals = new PersistentGoalService({
337
- bus,
345
+ this.taskJudge = new TaskJudgeService({
338
346
  sessionStore: this.sessionStore,
339
347
  modelManager: this.modelManager,
340
- sessionState: this.sessionState,
341
- getConfig: () => this.effectiveAppConfig(),
342
- getResolvedWorkspaceForSession: (sk) => this.agentManager.getResolvedWorkspaceForSession(sk),
343
- onSessionMetadataUpdated: this.onSessionMetadataUpdated,
344
- onGoalStatusUpdated: config.onGoalStatusUpdated,
345
- notifyWebchatTranscriptAppend: (sk, text) => this.turnDispatcher.notifyWebchatTranscriptAppend(sk, text)
348
+ getConfig: () => this.effectiveAppConfig()
346
349
  });
347
350
  this.sessionConfig = new SessionConfigService({
348
351
  sessionStore: this.sessionStore,
@@ -366,7 +369,7 @@ var AgentService = class {
366
369
  streamManager: this.streamManager,
367
370
  getConfig: () => this.effectiveAppConfig(),
368
371
  getLastAssistantPlainText: (sk) => this.getLastAssistantPlainText(sk),
369
- runPersistentGoalPostTurn: (payload) => this.persistentGoals.runPostTurn(payload)
372
+ reviewTaskTurn: (payload) => this.taskJudge.reviewTurn(payload)
370
373
  });
371
374
  this.turnDispatcher = new TurnDispatcher({
372
375
  log,
@@ -532,6 +535,9 @@ var AgentService = class {
532
535
  refreshSkillsAfterDiskChange() {
533
536
  this.agentManager.refreshSkillsAfterDiskChange();
534
537
  }
538
+ refreshSkillsAfterTrustChange() {
539
+ this.agentManager.refreshSkillsAfterTrustChange();
540
+ }
535
541
  async installSkillFromSource(opts) {
536
542
  const target = normalizeSkillInstallTarget(opts.target);
537
543
  const workspace = opts.workspace?.trim() || (opts.sessionKey ? this.agentManager.getResolvedWorkspaceForSession(opts.sessionKey) : void 0) || this.workspaceDir;
@@ -622,6 +628,9 @@ var AgentService = class {
622
628
  getInboundTurnDepth(sessionKey) {
623
629
  return this.sessionState.getInboundTurnDepth(sessionKey);
624
630
  }
631
+ takeTaskReviewStreamHint(sessionKey) {
632
+ return this.sessionState.takeTaskReviewStreamHint(sessionKey);
633
+ }
625
634
  async start() {
626
635
  await this.sessionConfigStore.initialize();
627
636
  await this.hookHandler.trigger("gateway_start", {
@@ -759,14 +768,14 @@ var AgentService = class {
759
768
  const { abortEmbeddedRun } = await import("./embedded/runs.js");
760
769
  const { retireSessionMcpRuntimeForSessionKey } = await import("./mcp/bundle-mcp-tools.js");
761
770
  await abortEmbeddedRun(key);
762
- const outcome = await this.sessionStore.reset(key);
763
- if (!outcome) return null;
771
+ const task = await this.sessionStore.reset(key);
772
+ if (!task) return null;
764
773
  this.agentManager.removeAgent(key);
765
774
  await retireSessionMcpRuntimeForSessionKey({
766
775
  sessionKey: key,
767
776
  reason: "session-reset"
768
777
  });
769
- return outcome;
778
+ return task;
770
779
  }
771
780
  /**
772
781
  * Drop in-memory agent so the next turn reloads transcript from disk (e.g. after checkpoint restore).
@@ -5,7 +5,6 @@ import type { AutomationService } from '../automations/index.js';
5
5
  import type { ExtensionRegistryImpl as ExtensionRegistry } from '../extensions/index.js';
6
6
  import type { NotesService } from '../notes/index.js';
7
7
  import type { ProjectService } from '../projects/index.js';
8
- import type { WorkItemService } from '../work-items/index.js';
9
8
  import type { LocalAppService } from '../local-apps/index.js';
10
9
  import type { GatewayClarifyRequestFn } from './tools/clarify-tool.js';
11
10
  import type { ProgressStage } from './lifecycle/progress.js';
@@ -32,30 +31,18 @@ export interface AgentServiceConfig {
32
31
  /** Gateway: exposes first-class xopc product objects for the `xopc_use` tool. */
33
32
  getNotesService?: () => NotesService | undefined;
34
33
  getProjectService?: () => ProjectService | undefined;
35
- getWorkItemService?: () => WorkItemService | undefined;
36
34
  getLocalAppService?: () => LocalAppService | undefined;
35
+ dispatchTaskRuns?: () => void;
37
36
  /**
38
37
  * Gateway: reuse the gateway `SessionManager` store so web API and agent share one index + files.
39
38
  * When omitted, `AgentService` creates its own `SessionStore` (CLI / embedded).
40
39
  */
41
40
  sessionStore?: SessionStore;
42
- /**
43
- * Gateway: invoked after `sessionStore.updateMetadata` from built-in `/goal` APIs (store does not emit).
44
- * Wire to `sessionManager.emit('sessionUpdated', { key })` so the console refetches.
45
- */
46
41
  onSessionMetadataUpdated?: (sessionKey: string, patch?: {
47
42
  name?: string;
48
43
  }) => void;
49
- /** Gateway: transcript JSONL append (goal verdict, slash receipt, background turns). */
44
+ /** Gateway: transcript append notification. */
50
45
  onSessionTranscriptUpdated?: (sessionKey: string) => void;
51
- /** Gateway: durable goal status changed after post-turn judge. */
52
- onGoalStatusUpdated?: (payload: {
53
- goalId: string;
54
- sessionKey: string;
55
- previousStatus: string;
56
- status: string;
57
- goal: import('../goals/types.js').GoalWithDetails;
58
- }) => void;
59
46
  /** Gateway/TUI: local skill catalog changed or skill config toggles changed. */
60
47
  onSkillsUpdated?: (payload: {
61
48
  reason: 'disk' | 'config';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { SessionContextManager, type SessionContext, } from './session-context.js';
5
5
  export { SessionLifecycleManager, type SessionLifecycleEvents, type SessionStats, } from './session-lifecycle.js';
6
- export { SessionStateBag, type SessionStateBagOptions, type WebchatSsePublisher, type PersistentGoalStreamOutcome, } from './session-state-bag.js';
6
+ export { SessionStateBag, type SessionStateBagOptions, type WebchatSsePublisher, type TaskReviewStreamHint, } from './session-state-bag.js';
7
7
  export { SessionConfigService, type SessionConfigServiceOptions, type PatchSessionAgentConfigInput, type PatchSessionAgentConfigResult, } from './session-config-service.js';
8
8
  export { SessionHydrator, type SessionHydratorOptions, } from './session-hydrator.js';
9
9
  export { SessionInspector, type SessionInspectorOptions, type SessionContextUsage, type SessionAgentConfigView, } from './session-inspector.js';
@@ -34,6 +34,7 @@ export interface PatchSessionAgentConfigInput {
34
34
  reasoningLevel?: string | null;
35
35
  verboseLevel?: string;
36
36
  workingDirectory?: string;
37
+ responseLanguage?: string | null;
37
38
  }
38
39
  export interface PatchSessionAgentConfigResult {
39
40
  ok: boolean;
@@ -1,5 +1,6 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
+ import { ResponseLanguageSchema, init_response_language } from "../../i18n/response-language.js";
3
4
  import { normalizeWorkingDirectoryInput } from "../../session/session-workspace.js";
4
5
  import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
5
6
  import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../transcript/thinking-types.js";
@@ -21,6 +22,7 @@ import { mkdir } from "node:fs/promises";
21
22
  * "session config write" concerns, and so future additions to the patch API
22
23
  * (e.g. new per-session overrides) only touch this file.
23
24
  */
25
+ init_response_language();
24
26
  init_logger();
25
27
  const log = createLogger("SessionConfigService");
26
28
  var SessionConfigService = class {
@@ -71,6 +73,18 @@ var SessionConfigService = class {
71
73
  };
72
74
  await this.opts.sessionConfigStore.update(sessionKey, { verboseLevel: normalized });
73
75
  }
76
+ if (partial.responseLanguage !== void 0) {
77
+ if (partial.responseLanguage === null) await this.opts.sessionConfigStore.update(sessionKey, { responseLanguage: void 0 });
78
+ else {
79
+ const parsed = ResponseLanguageSchema.safeParse(partial.responseLanguage);
80
+ if (!parsed.success) return {
81
+ ok: false,
82
+ error: "Invalid response language"
83
+ };
84
+ await this.opts.sessionConfigStore.update(sessionKey, { responseLanguage: parsed.data });
85
+ }
86
+ this.opts.agentManager.removeAgent(sessionKey);
87
+ }
74
88
  if (partial.workingDirectory !== void 0) {
75
89
  if (!this.opts.getConfig()) return {
76
90
  ok: false,
@@ -12,7 +12,7 @@
12
12
  * - Hard upper bound for the same TTL'd slots to bound worst-case memory.
13
13
  *
14
14
  * Slots whose lifetime is fully owned by explicit lifecycle calls
15
- * (`inboundTurnDepth`, `directStreamOutcome`, `embeddedStreamText`,
15
+ * (`inboundTurnDepth`, `taskReviewHintBySession`, `embeddedStreamText`,
16
16
  * `sessionEventUnsubscribers`) are still cleared via `disposeSession`, but they
17
17
  * are NOT subject to TTL — sweeping them would race with their owners.
18
18
  */
@@ -20,8 +20,8 @@ export type WebchatSsePublisher = (event: {
20
20
  type: string;
21
21
  [key: string]: unknown;
22
22
  }) => void;
23
- export interface PersistentGoalStreamOutcome {
24
- skipPersistentGoalPostTurn: boolean;
23
+ export interface TaskReviewStreamHint {
24
+ skipTaskReview: boolean;
25
25
  }
26
26
  export interface SessionStateBagOptions {
27
27
  /** Idle TTL for TTL-managed slots. Defaults to 1 hour. Set to 0 to disable sweeping. */
@@ -40,8 +40,8 @@ export declare class SessionStateBag {
40
40
  private readonly lastAssistantText;
41
41
  /** Stream text for the in-flight embedded turn (managed by turn). */
42
42
  private readonly embeddedStreamText;
43
- /** Persistent-goal stream outcome (take-and-delete). */
44
- private readonly directStreamOutcome;
43
+ /** Task review stream state (take-and-delete). */
44
+ private readonly taskReviewHintBySession;
45
45
  /** Concurrent inbound turn depth (counter). */
46
46
  private readonly inboundTurnDepth;
47
47
  /** Agent-event subscription tear-downs (run on dispose). */
@@ -58,8 +58,8 @@ export declare class SessionStateBag {
58
58
  getLastAssistantText(sessionKey: string): string | undefined;
59
59
  appendEmbeddedStreamText(sessionKey: string, chunk: string): string;
60
60
  clearEmbeddedStreamText(sessionKey: string): void;
61
- recordPersistentGoalStreamOutcome(sessionKey: string, outcome: PersistentGoalStreamOutcome): void;
62
- takePersistentGoalStreamOutcome(sessionKey: string): PersistentGoalStreamOutcome | undefined;
61
+ recordTaskReviewStreamHint(sessionKey: string, task: TaskReviewStreamHint): void;
62
+ takeTaskReviewStreamHint(sessionKey: string): TaskReviewStreamHint | undefined;
63
63
  beginInboundTurn(sessionKey: string): void;
64
64
  endInboundTurn(sessionKey: string): void;
65
65
  getInboundTurnDepth(sessionKey: string): number;
@@ -74,7 +74,7 @@ export declare class SessionStateBag {
74
74
  webchatPublishers: number;
75
75
  lastAssistantText: number;
76
76
  embeddedStreamText: number;
77
- directStreamOutcome: number;
77
+ taskReviewHintBySession: number;
78
78
  inboundTurnDepth: number;
79
79
  sessionEventUnsubscribers: number;
80
80
  };
@@ -13,8 +13,8 @@ var SessionStateBag = class {
13
13
  lastAssistantText = /* @__PURE__ */ new Map();
14
14
  /** Stream text for the in-flight embedded turn (managed by turn). */
15
15
  embeddedStreamText = /* @__PURE__ */ new Map();
16
- /** Persistent-goal stream outcome (take-and-delete). */
17
- directStreamOutcome = /* @__PURE__ */ new Map();
16
+ /** Task review stream state (take-and-delete). */
17
+ taskReviewHintBySession = /* @__PURE__ */ new Map();
18
18
  /** Concurrent inbound turn depth (counter). */
19
19
  inboundTurnDepth = /* @__PURE__ */ new Map();
20
20
  /** Agent-event subscription tear-downs (run on dispose). */
@@ -72,12 +72,12 @@ var SessionStateBag = class {
72
72
  clearEmbeddedStreamText(sessionKey) {
73
73
  this.embeddedStreamText.delete(sessionKey);
74
74
  }
75
- recordPersistentGoalStreamOutcome(sessionKey, outcome) {
76
- this.directStreamOutcome.set(sessionKey, outcome);
75
+ recordTaskReviewStreamHint(sessionKey, task) {
76
+ this.taskReviewHintBySession.set(sessionKey, task);
77
77
  }
78
- takePersistentGoalStreamOutcome(sessionKey) {
79
- const v = this.directStreamOutcome.get(sessionKey);
80
- this.directStreamOutcome.delete(sessionKey);
78
+ takeTaskReviewStreamHint(sessionKey) {
79
+ const v = this.taskReviewHintBySession.get(sessionKey);
80
+ this.taskReviewHintBySession.delete(sessionKey);
81
81
  return v;
82
82
  }
83
83
  beginInboundTurn(sessionKey) {
@@ -123,7 +123,7 @@ var SessionStateBag = class {
123
123
  this.webchatPublishers.delete(sessionKey);
124
124
  this.lastAssistantText.delete(sessionKey);
125
125
  this.embeddedStreamText.delete(sessionKey);
126
- this.directStreamOutcome.delete(sessionKey);
126
+ this.taskReviewHintBySession.delete(sessionKey);
127
127
  this.inboundTurnDepth.delete(sessionKey);
128
128
  }
129
129
  /** Tear down every session (process stop / hot reload). */
@@ -140,7 +140,7 @@ var SessionStateBag = class {
140
140
  this.webchatPublishers.clear();
141
141
  this.lastAssistantText.clear();
142
142
  this.embeddedStreamText.clear();
143
- this.directStreamOutcome.clear();
143
+ this.taskReviewHintBySession.clear();
144
144
  this.inboundTurnDepth.clear();
145
145
  if (this.sweepTimer) clearInterval(this.sweepTimer);
146
146
  }
@@ -150,7 +150,7 @@ var SessionStateBag = class {
150
150
  webchatPublishers: this.webchatPublishers.size,
151
151
  lastAssistantText: this.lastAssistantText.size,
152
152
  embeddedStreamText: this.embeddedStreamText.size,
153
- directStreamOutcome: this.directStreamOutcome.size,
153
+ taskReviewHintBySession: this.taskReviewHintBySession.size,
154
154
  inboundTurnDepth: this.inboundTurnDepth.size,
155
155
  sessionEventUnsubscribers: this.sessionEventUnsubscribers.size
156
156
  };
@@ -162,6 +162,12 @@ function isSkillEnabled(skill, skillsConfig) {
162
162
  */
163
163
  function validateSkillConfig(config) {
164
164
  const errors = [];
165
+ const extraDirs = config.load?.extraDirs;
166
+ if (extraDirs !== void 0 && (!Array.isArray(extraDirs) || !extraDirs.every((dir) => typeof dir === "string"))) errors.push("load.extraDirs must contain only strings");
167
+ const agentsGlobalSource = config.load?.sources?.agentsGlobal;
168
+ if (agentsGlobalSource !== void 0 && (typeof agentsGlobalSource !== "object" || agentsGlobalSource === null || Array.isArray(agentsGlobalSource) || "enabled" in agentsGlobalSource && typeof agentsGlobalSource.enabled !== "boolean")) errors.push("load.sources.agentsGlobal.enabled must be a boolean");
169
+ const agentsWorkspaceSource = config.load?.sources?.agentsWorkspace;
170
+ if (agentsWorkspaceSource !== void 0 && (typeof agentsWorkspaceSource !== "object" || agentsWorkspaceSource === null || Array.isArray(agentsWorkspaceSource) || "enabled" in agentsWorkspaceSource && typeof agentsWorkspaceSource.enabled !== "boolean")) errors.push("load.sources.agentsWorkspace.enabled must be a boolean");
165
171
  if (config.toolGating !== void 0 && typeof config.toolGating !== "boolean") errors.push("toolGating must be a boolean");
166
172
  if (config.agentWritePolicy !== void 0 && config.agentWritePolicy !== "global" && config.agentWritePolicy !== "workspace" && config.agentWritePolicy !== "both") errors.push("agentWritePolicy must be \"global\", \"workspace\", or \"both\"");
167
173
  const limits = config.limits;
@@ -3,13 +3,17 @@ export interface SkillFilesystemWatcherOptions {
3
3
  reason: 'watch';
4
4
  changedPath?: string;
5
5
  }) => void;
6
+ /** Dependency-injection override for the ~/.agents/skills compatibility root. */
7
+ agentsSkillsDir?: string;
6
8
  }
7
9
  export declare class SkillFilesystemWatcher {
8
10
  private readonly targets;
9
11
  private readonly onChange;
12
+ private readonly agentsSkillsDir;
10
13
  private disposed;
11
14
  constructor(options: SkillFilesystemWatcherOptions);
12
15
  watchGlobalSkillsDir(): void;
16
+ watchAgentsGlobalSkillsDir(): void;
13
17
  watchWorkspace(workspaceDir: string): void;
14
18
  refreshPrimaryWorkspace(workspaceDir: string): void;
15
19
  dispose(): void;
@@ -4,6 +4,7 @@ import { init_logger } from "../../utils/logger.js";
4
4
  import { init_paths, resolveSkillsDir } from "../../config/paths.js";
5
5
  import { createSkillConfigManager } from "./config.js";
6
6
  import { resolveWorkspaceSkillsDir } from "./workspace-skills-dir.js";
7
+ import { resolveAgentsSkillsDir, resolveWorkspaceAgentsSkillsDir } from "./skill-sources.js";
7
8
  import { isManagedSkillTransientDirName } from "./managed-store.js";
8
9
  import path from "node:path";
9
10
  import chokidar from "chokidar";
@@ -41,11 +42,11 @@ function isSameOrInside(parent, child) {
41
42
  return rel === "" || !!rel && !rel.startsWith("..") && !path.isAbsolute(rel);
42
43
  }
43
44
  function isWorkspaceSkillPath(workspaceRoot, candidate) {
44
- const skillsRoot = resolveWorkspaceSkillsDir(workspaceRoot);
45
- return candidate === workspaceRoot || isSameOrInside(skillsRoot, candidate) || isSameOrInside(candidate, skillsRoot);
45
+ const skillsRoots = [resolveWorkspaceSkillsDir(workspaceRoot), resolveWorkspaceAgentsSkillsDir(workspaceRoot)];
46
+ return candidate === workspaceRoot || skillsRoots.some((skillsRoot) => isSameOrInside(skillsRoot, candidate) || isSameOrInside(candidate, skillsRoot));
46
47
  }
47
48
  function isWorkspaceSkillsRoot(workspaceRoot, candidate) {
48
- return candidate === resolveWorkspaceSkillsDir(workspaceRoot);
49
+ return candidate === resolveWorkspaceSkillsDir(workspaceRoot) || candidate === resolveWorkspaceAgentsSkillsDir(workspaceRoot);
49
50
  }
50
51
  function isSkillMdPath(candidate) {
51
52
  return path.basename(candidate).toLowerCase() === "skill.md";
@@ -55,20 +56,27 @@ function readWatcherConfig() {
55
56
  const rawDebounce = cfg.load?.watchDebounceMs;
56
57
  return {
57
58
  enabled: cfg.load?.watch !== false,
59
+ agentsGlobalEnabled: cfg.load?.sources?.agentsGlobal?.enabled !== false,
58
60
  debounceMs: typeof rawDebounce === "number" && Number.isFinite(rawDebounce) ? Math.max(0, rawDebounce) : DEFAULT_DEBOUNCE_MS
59
61
  };
60
62
  }
61
63
  var SkillFilesystemWatcher = class {
62
64
  targets = /* @__PURE__ */ new Map();
63
65
  onChange;
66
+ agentsSkillsDir;
64
67
  disposed = false;
65
68
  constructor(options) {
66
69
  this.onChange = options.onChange;
70
+ this.agentsSkillsDir = options.agentsSkillsDir ?? resolveAgentsSkillsDir();
67
71
  this.watchGlobalSkillsDir();
72
+ this.watchAgentsGlobalSkillsDir();
68
73
  }
69
74
  watchGlobalSkillsDir() {
70
75
  this.watchRoot(resolveSkillsDir(), "global");
71
76
  }
77
+ watchAgentsGlobalSkillsDir() {
78
+ this.watchRoot(this.agentsSkillsDir, "agents-global");
79
+ }
72
80
  watchWorkspace(workspaceDir) {
73
81
  const resolved = normalizePath(workspaceDir);
74
82
  if (!resolved) return;
@@ -76,6 +84,7 @@ var SkillFilesystemWatcher = class {
76
84
  }
77
85
  refreshPrimaryWorkspace(workspaceDir) {
78
86
  this.watchGlobalSkillsDir();
87
+ this.watchAgentsGlobalSkillsDir();
79
88
  this.watchWorkspace(workspaceDir);
80
89
  }
81
90
  dispose() {
@@ -93,10 +102,10 @@ var SkillFilesystemWatcher = class {
93
102
  }
94
103
  watchRoot(root, kind) {
95
104
  if (this.disposed) return;
96
- const { enabled, debounceMs } = readWatcherConfig();
105
+ const { enabled, agentsGlobalEnabled, debounceMs } = readWatcherConfig();
97
106
  const resolvedRoot = normalizePath(root);
98
107
  const key = `${kind}:${resolvedRoot}`;
99
- if (!enabled) {
108
+ if (!enabled || kind === "agents-global" && !agentsGlobalEnabled) {
100
109
  this.unwatch(key);
101
110
  return;
102
111
  }
@@ -159,8 +168,8 @@ var SkillFilesystemWatcher = class {
159
168
  this.targets.delete(key);
160
169
  }
161
170
  scheduleRefresh(target, changedPath) {
162
- const { enabled, debounceMs } = readWatcherConfig();
163
- if (!enabled) {
171
+ const { enabled, agentsGlobalEnabled, debounceMs } = readWatcherConfig();
172
+ if (!enabled || target.kind === "agents-global" && !agentsGlobalEnabled) {
164
173
  this.unwatch(target.key);
165
174
  return;
166
175
  }
@@ -1,9 +1,8 @@
1
- import type { Skill, SkillDiagnostic, LoadSkillsResult, SkillConfig } from './types.js';
2
- export declare function loadSkills(options: {
3
- workspaceDir?: string;
4
- globalDir?: string;
5
- builtinDir?: string;
6
- extraDirs?: string[];
1
+ import { type ResolveSkillSourcesOptions } from './skill-sources.js';
2
+ import type { Skill, SkillConfig, SkillDiagnostic, LoadSkillsResult } from './types.js';
3
+ export declare function loadSkills(options: ResolveSkillSourcesOptions & {
4
+ /** Dependency-injection override for the ~/.agents/skills compatibility root. */
5
+ agentsDir?: string;
7
6
  }): LoadSkillsResult;
8
7
  /** Discover only skills owned by a workspace, without global or bundled skills. */
9
8
  export declare function loadWorkspaceSkills(workspaceDir: string): LoadSkillsResult;
@@ -20,7 +19,11 @@ export interface SkillLoader {
20
19
  getSkillByName: (name: string) => Skill | undefined;
21
20
  getEnabledSkills: (config?: Record<string, SkillConfig>) => Skill[];
22
21
  }
23
- export declare function createSkillLoader(): SkillLoader;
22
+ export interface SkillLoaderOptions {
23
+ /** Re-evaluated on every load so trust changes take effect without recreating the runtime. */
24
+ isWorkspaceTrusted?: (workspaceDir: string) => boolean;
25
+ }
26
+ export declare function createSkillLoader(options?: SkillLoaderOptions): SkillLoader;
24
27
  export type { Skill, SkillMetadata, SkillConfig, SkillInstallSpec, SkillInstallResult, SkillInstallRequest, LoadSkillsResult, SkillSnapshot, } from './types.js';
25
28
  export { installSkill, findInstallSpec, hasBinary, getDefaultInstallerPreferences, type InstallerPreferences, type InstallContext, } from './installer.js';
26
29
  export { scanSkillDirectory, formatScanSummary, collectSkillInstallWarnings, type ScanSummary, type SecurityFinding, type Severity, } from './scanner.js';