@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,5 @@
1
+ import { resolveCapabilityPresetLayer, resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
1
2
  import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveAgentDir, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId, resolveUserPath, validateAgentIdForNewAgent } from "../agent/agent-scope.js";
2
- import { resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
3
3
  import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
4
4
  import { WORKSPACE_FILES, init_paths, resolveUserProfilePath } from "../config/paths.js";
5
5
  import { AGENT_PROFILE_MARKDOWN_SYSTEM_FILES, REQUIRED_AGENT_PROFILE_MARKDOWN_FILE_SET } from "../agent/context/workspace.js";
@@ -55,17 +55,23 @@ function parseIdentityMarkdown(content) {
55
55
  async function listGatewayAgents(cfg, _options = {}) {
56
56
  const defaultId = resolveDefaultAgentId(cfg);
57
57
  const agents = [];
58
- const presetDenied = [];
59
- const presetTypedModels = [];
60
58
  for (const id of collectAgentIdsForList(cfg)) {
61
59
  const profile = resolveEffectiveAgentProfile(cfg, id);
62
60
  const entry = listAgentEntries(cfg).find((e) => normalizeAgentId(e.id) === id);
61
+ const presetLayer = resolveCapabilityPresetLayer({
62
+ presetIds: entry?.extends,
63
+ presets: cfg.agents.capabilityPresets,
64
+ defaultPresetId: cfg.agents.defaultPreset
65
+ });
66
+ const presetSkills = presetLayer.patch.skills?.mode === "allowlist" ? presetLayer.patch.skills.allow ?? [] : void 0;
67
+ const presetDenied = Object.entries(presetLayer.patch.tools?.builtin ?? {}).filter(([, policy]) => policy.mode === "deny").map(([name]) => name);
68
+ const presetTypedModels = rolesToTypedModels(presetLayer.patch.models?.roles);
63
69
  const model = profile.primaryModelRef || profile.fallbacks.length > 0 ? {
64
70
  ...profile.primaryModelRef ? { primary: profile.primaryModelRef } : {},
65
71
  ...profile.fallbacks.length > 0 ? { fallbacks: profile.fallbacks } : {}
66
72
  } : void 0;
67
- const entrySkills = entry?.skills.mode === "allowlist" ? entry.skills.allow ?? [] : void 0;
68
- const entryDisable = Object.entries(entry?.tools.builtin ?? {}).filter(([, policy]) => policy.mode === "deny").map(([name]) => name);
73
+ const entrySkills = entry?.skills?.mode === "allowlist" ? entry.skills.allow ?? [] : void 0;
74
+ const entryDisable = Object.entries(entry?.tools?.builtin ?? {}).filter(([, policy]) => policy.mode === "deny").map(([name]) => name);
69
75
  const entryTypedModels = rolesToTypedModels(entry?.models?.roles);
70
76
  const effectiveTypedModels = [...resolveEffectiveTypedModels(cfg, id).values()].sort((a, b) => a.id.localeCompare(b.id));
71
77
  let identity = {};
@@ -95,7 +101,7 @@ async function listGatewayAgents(cfg, _options = {}) {
95
101
  extends: [...entry?.extends ?? []],
96
102
  isDefault: id === defaultId,
97
103
  skills: {
98
- preset: [],
104
+ preset: presetSkills ? [...presetSkills] : [],
99
105
  ...entrySkills !== void 0 ? { entry: [...entrySkills] } : {},
100
106
  ...profile.skillsAllowlist !== void 0 ? { effectiveAllowlist: [...profile.skillsAllowlist] } : {}
101
107
  },
@@ -214,7 +220,7 @@ function prepareCreateAgent(cfg, body) {
214
220
  workspace: wsAbs,
215
221
  extends: [...inheritedPresetIds],
216
222
  ...effectiveModels ? { models: effectiveModels } : {},
217
- ...body.skills !== void 0 ? { skills: body.skills.map((s) => String(s).trim()).filter(Boolean) } : cloneSourceEntry?.skills.mode === "allowlist" && body.cloneFrom ? { skills: [...cloneSourceEntry.skills.allow ?? []] } : {},
223
+ ...body.skills !== void 0 ? { skills: body.skills.map((s) => String(s).trim()).filter(Boolean) } : cloneSourceEntry?.skills?.mode === "allowlist" && body.cloneFrom ? { skills: [...cloneSourceEntry.skills.allow ?? []] } : {},
218
224
  ...body.tools !== void 0 ? { tools: body.tools } : cloneSourceEntry?.tools && body.cloneFrom ? { tools: cloneSourceEntry.tools } : {}
219
225
  }),
220
226
  agentId,
@@ -273,15 +279,7 @@ function prepareUpdateAgent(cfg, agentIdRaw, body) {
273
279
  tone: "direct"
274
280
  },
275
281
  responsibilities: { primary: ["Help the user complete tasks"] },
276
- workspace: { root: `~/.xopc/workspace/${agentId}` },
277
- tools: { builtin: {} },
278
- skills: { mode: "all" },
279
- workflows: {},
280
- boundaries: {
281
- requiresConfirmation: [],
282
- forbidden: [],
283
- escalation: []
284
- }
282
+ workspace: { root: `~/.xopc/workspace/${agentId}` }
285
283
  }];
286
284
  idx = list.length - 1;
287
285
  }
@@ -350,7 +348,7 @@ function prepareUpdateAgent(cfg, agentIdRaw, body) {
350
348
  defaultRole
351
349
  };
352
350
  }
353
- if (body.skills !== void 0) if (body.skills === null) entry.skills = { mode: "all" };
351
+ if (body.skills !== void 0) if (body.skills === null) delete entry.skills;
354
352
  else {
355
353
  const next = body.skills.map((s) => String(s).trim()).filter(Boolean);
356
354
  if (next.length === 0) entry.skills = {
@@ -362,7 +360,7 @@ function prepareUpdateAgent(cfg, agentIdRaw, body) {
362
360
  allow: next
363
361
  };
364
362
  }
365
- if (body.tools !== void 0) if (body.tools === null) entry.tools = { builtin: {} };
363
+ if (body.tools !== void 0) if (body.tools === null) delete entry.tools;
366
364
  else entry.tools = body.tools;
367
365
  list[idx] = entry;
368
366
  let next = {
@@ -26,6 +26,16 @@ export type CapabilityPresetsListResponse = {
26
26
  }>;
27
27
  builtinToolIds: string[];
28
28
  };
29
+ export type CapabilityPresetPreviewDiff = {
30
+ path: string;
31
+ before?: unknown;
32
+ after?: unknown;
33
+ };
34
+ export type CapabilityPresetPreviewAgent = {
35
+ agentId: string;
36
+ agentName?: string;
37
+ diffs: CapabilityPresetPreviewDiff[];
38
+ };
29
39
  export type CreateCapabilityPresetBody = {
30
40
  id?: string;
31
41
  name?: string;
@@ -61,6 +71,9 @@ export declare function prepareCreateCapabilityPreset(cfg: Config, body: CreateC
61
71
  export declare function prepareUpdateCapabilityPreset(cfg: Config, presetIdRaw: string, body: UpdateCapabilityPresetBody): CapabilityPresetAdminResult<{
62
72
  nextConfig: Config;
63
73
  }>;
74
+ export declare function previewCapabilityPresetUpdate(cfg: Config, presetIdRaw: string, body: UpdateCapabilityPresetBody): CapabilityPresetAdminResult<{
75
+ agents: CapabilityPresetPreviewAgent[];
76
+ }>;
64
77
  export declare function prepareDeleteCapabilityPreset(cfg: Config, presetIdRaw: string): CapabilityPresetAdminResult<{
65
78
  nextConfig: Config;
66
79
  }>;
@@ -1,5 +1,6 @@
1
1
  import { CapabilityPresetSchema, init_schema } from "../agent-manifest/schema.js";
2
2
  import { init_preset_chain, linearizePresetIds } from "../agent-manifest/preset-chain.js";
3
+ import { resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
3
4
  import { GATEWAY_BUILTIN_TOOL_IDS } from "./agent-builtin-tools.js";
4
5
  //#region src/gateway/capability-presets-admin.ts
5
6
  init_schema();
@@ -10,6 +11,23 @@ function presetMap(cfg) {
10
11
  function normalizePresetId(id) {
11
12
  return id.trim().toLowerCase();
12
13
  }
14
+ function flattenPolicy(value, path = "", out = /* @__PURE__ */ new Map()) {
15
+ if (Array.isArray(value) || value === null || typeof value !== "object") {
16
+ if (path) out.set(path, value);
17
+ return out;
18
+ }
19
+ for (const [key, child] of Object.entries(value)) flattenPolicy(child, path ? `${path}.${key}` : key, out);
20
+ return out;
21
+ }
22
+ function manifestDiff(before, after) {
23
+ const beforeFlat = flattenPolicy(before);
24
+ const afterFlat = flattenPolicy(after);
25
+ return [...new Set([...beforeFlat.keys(), ...afterFlat.keys()])].filter((path) => JSON.stringify(beforeFlat.get(path)) !== JSON.stringify(afterFlat.get(path))).sort((a, b) => a.localeCompare(b)).map((path) => ({
26
+ path,
27
+ ...beforeFlat.has(path) ? { before: beforeFlat.get(path) } : {},
28
+ ...afterFlat.has(path) ? { after: afterFlat.get(path) } : {}
29
+ }));
30
+ }
13
31
  function agentUsage(cfg, presetId) {
14
32
  const defaultPresetId = cfg.agents.defaultPreset || "default";
15
33
  return cfg.agents.list.filter((agent) => {
@@ -91,6 +109,20 @@ function nextConfigWithPresets(cfg, presets) {
91
109
  error: agentRefs.error,
92
110
  status: agentRefs.status
93
111
  };
112
+ for (const agent of nextConfig.agents.list) try {
113
+ resolveEffectiveAgentManifest({
114
+ agent,
115
+ presets,
116
+ defaultPresetId: nextConfig.agents.defaultPreset
117
+ });
118
+ } catch (error) {
119
+ const message = error instanceof Error ? error.message : String(error);
120
+ return {
121
+ ok: false,
122
+ error: `agent "${agent.id}" effective manifest is invalid: ${message}`,
123
+ status: 400
124
+ };
125
+ }
94
126
  return {
95
127
  ok: true,
96
128
  data: { nextConfig }
@@ -180,7 +212,6 @@ function prepareUpdateCapabilityPreset(cfg, presetIdRaw, body) {
180
212
  "models",
181
213
  "tools",
182
214
  "skills",
183
- "memory",
184
215
  "workflows",
185
216
  "boundaries",
186
217
  "runtime",
@@ -201,6 +232,32 @@ function prepareUpdateCapabilityPreset(cfg, presetIdRaw, body) {
201
232
  [presetId]: parsed.data
202
233
  });
203
234
  }
235
+ function previewCapabilityPresetUpdate(cfg, presetIdRaw, body) {
236
+ const prepared = prepareUpdateCapabilityPreset(cfg, presetIdRaw, body);
237
+ if (prepared.ok === false) return prepared;
238
+ return {
239
+ ok: true,
240
+ data: { agents: cfg.agents.list.flatMap((agent) => {
241
+ const before = resolveEffectiveAgentManifest({
242
+ agent,
243
+ presets: cfg.agents.capabilityPresets,
244
+ defaultPresetId: cfg.agents.defaultPreset
245
+ }).manifest;
246
+ const after = resolveEffectiveAgentManifest({
247
+ agent,
248
+ presets: prepared.data.nextConfig.agents.capabilityPresets,
249
+ defaultPresetId: prepared.data.nextConfig.agents.defaultPreset
250
+ }).manifest;
251
+ const diffs = manifestDiff(before, after);
252
+ if (diffs.length === 0) return [];
253
+ return [{
254
+ agentId: agent.id,
255
+ ...agent.identity.name ? { agentName: agent.identity.name } : {},
256
+ diffs
257
+ }];
258
+ }) }
259
+ };
260
+ }
204
261
  function prepareDeleteCapabilityPreset(cfg, presetIdRaw) {
205
262
  const presetId = normalizePresetId(presetIdRaw);
206
263
  const presets = presetMap(cfg);
@@ -225,4 +282,4 @@ function prepareDeleteCapabilityPreset(cfg, presetIdRaw) {
225
282
  return nextConfigWithPresets(cfg, nextPresets);
226
283
  }
227
284
  //#endregion
228
- export { listCapabilityPresets, prepareCreateCapabilityPreset, prepareDeleteCapabilityPreset, prepareUpdateCapabilityPreset };
285
+ export { listCapabilityPresets, prepareCreateCapabilityPreset, prepareDeleteCapabilityPreset, prepareUpdateCapabilityPreset, previewCapabilityPresetUpdate };
@@ -1,9 +1,13 @@
1
1
  /** Web chat: max files per user message (keep in sync with `web` MAX_CHAT_ATTACHMENTS). */
2
2
  export declare const MAX_CHAT_ATTACHMENTS = 10;
3
+ /** Inline chat text stays bounded; larger content belongs in an attachment. */
4
+ export declare const MAX_CHAT_INLINE_TEXT_BYTES: number;
3
5
  /**
4
6
  * Max raw bytes per attachment in web chat (keep in sync with `web` MAX_WEBCHAT_ATTACHMENT_FILE_BYTES).
5
7
  * JSON requests send base64 (`data`); gateway body limit must allow worst-case payload.
6
8
  */
7
9
  export declare const MAX_WEBCHAT_ATTACHMENT_FILE_BYTES: number;
8
- /** Upper bound for `POST /api/agent` JSON body when every slot is a max-sized binary attachment (base64 ~4/3). */
9
- export declare function maxWebchatAgentRequestBodyBytes(): number;
10
+ export declare function validateWebchatAttachments(attachments: unknown[] | undefined): string | null;
11
+ export declare function validateWebchatContent(content: unknown): string | null;
12
+ /** Upper bound for a session input request when every attachment is encoded as base64. */
13
+ export declare function maxSessionInputRequestBodyBytes(): number;
@@ -1,15 +1,29 @@
1
1
  //#region src/gateway/chat-limits.ts
2
2
  /** Web chat: max files per user message (keep in sync with `web` MAX_CHAT_ATTACHMENTS). */
3
3
  const MAX_CHAT_ATTACHMENTS = 10;
4
+ /** Inline chat text stays bounded; larger content belongs in an attachment. */
5
+ const MAX_CHAT_INLINE_TEXT_BYTES = 256 * 1024;
4
6
  /**
5
7
  * Max raw bytes per attachment in web chat (keep in sync with `web` MAX_WEBCHAT_ATTACHMENT_FILE_BYTES).
6
8
  * JSON requests send base64 (`data`); gateway body limit must allow worst-case payload.
7
9
  */
8
10
  const MAX_WEBCHAT_ATTACHMENT_FILE_BYTES = 32 * 1024 * 1024;
9
- /** Upper bound for `POST /api/agent` JSON body when every slot is a max-sized binary attachment (base64 ~4/3). */
10
- function maxWebchatAgentRequestBodyBytes() {
11
+ function validateWebchatAttachments(attachments) {
12
+ if (!attachments) return null;
13
+ if (attachments.length > 10) return `Too many attachments (maximum 10)`;
14
+ const maxBase64Length = 4 * Math.ceil(MAX_WEBCHAT_ATTACHMENT_FILE_BYTES / 3);
15
+ if (attachments.some((item) => item && typeof item === "object" && typeof item.data === "string" && item.data.length > maxBase64Length)) return `Attachment exceeds maximum size (${MAX_WEBCHAT_ATTACHMENT_FILE_BYTES} bytes)`;
16
+ return null;
17
+ }
18
+ function validateWebchatContent(content) {
19
+ if (typeof content !== "string") return "Message content must be a string";
20
+ if (Buffer.byteLength(content, "utf8") > 262144) return `Message content exceeds maximum size (${MAX_CHAT_INLINE_TEXT_BYTES} bytes)`;
21
+ return null;
22
+ }
23
+ /** Upper bound for a session input request when every attachment is encoded as base64. */
24
+ function maxSessionInputRequestBodyBytes() {
11
25
  const rawMax = MAX_WEBCHAT_ATTACHMENT_FILE_BYTES * 10;
12
26
  return Math.ceil(rawMax * 4 / 3) + 1024 * 1024;
13
27
  }
14
28
  //#endregion
15
- export { MAX_CHAT_ATTACHMENTS, MAX_WEBCHAT_ATTACHMENT_FILE_BYTES, maxWebchatAgentRequestBodyBytes };
29
+ export { MAX_CHAT_ATTACHMENTS, MAX_CHAT_INLINE_TEXT_BYTES, MAX_WEBCHAT_ATTACHMENT_FILE_BYTES, maxSessionInputRequestBodyBytes, validateWebchatAttachments, validateWebchatContent };
@@ -56,13 +56,13 @@ async function* coalesceThinkingDeltas(source, options = {}) {
56
56
  }
57
57
  continue;
58
58
  }
59
- const outcome = await nextBeforeDeadline(next, deadlineAt);
60
- if (outcome.kind === "timeout") {
59
+ const task = await nextBeforeDeadline(next, deadlineAt);
60
+ if (task.kind === "timeout") {
61
61
  yield pending;
62
62
  pending = void 0;
63
63
  continue;
64
64
  }
65
- const result = outcome.result;
65
+ const result = task.result;
66
66
  if (result.done) {
67
67
  yield pending;
68
68
  pending = void 0;
@@ -1,42 +1,42 @@
1
- import { DREAMING_CRON_NAME, DREAMING_CRON_TAG, DREAMING_LIGHT_CRON_NAME, DREAMING_LIGHT_SWEEP_TOKEN, DREAMING_REM_CRON_NAME, DREAMING_REM_SWEEP_TOKEN, DREAMING_SWEEP_TOKEN } from "../agent/memory/dreaming/constants.js";
2
- import { resolveDreamingConfig } from "../agent/memory/dreaming/config.js";
1
+ import { DREAMING_AUTOMATION_TAG, DREAMING_DEEP_AUTOMATION_NAME, DREAMING_LIGHT_AUTOMATION_NAME, DREAMING_LIGHT_SWEEP_TOKEN, DREAMING_REM_AUTOMATION_NAME, DREAMING_REM_SWEEP_TOKEN, DREAMING_SWEEP_TOKEN } from "../agent/memory/dreaming/constants.js";
2
+ import { compileDreamingSchedule } from "../agent/memory/dreaming/schedule.js";
3
3
  import { resolveDreamingAgentScope } from "../agent/memory/dreaming/scope.js";
4
4
  //#region src/gateway/dreaming-automation-reconciler.ts
5
5
  const DREAMING_AUTOMATIONS = [
6
6
  {
7
7
  phase: "light",
8
- name: DREAMING_LIGHT_CRON_NAME,
8
+ name: DREAMING_LIGHT_AUTOMATION_NAME,
9
9
  token: DREAMING_LIGHT_SWEEP_TOKEN
10
10
  },
11
11
  {
12
12
  phase: "deep",
13
- name: DREAMING_CRON_NAME,
13
+ name: DREAMING_DEEP_AUTOMATION_NAME,
14
14
  token: DREAMING_SWEEP_TOKEN
15
15
  },
16
16
  {
17
17
  phase: "rem",
18
- name: DREAMING_REM_CRON_NAME,
18
+ name: DREAMING_REM_AUTOMATION_NAME,
19
19
  token: DREAMING_REM_SWEEP_TOKEN
20
20
  }
21
21
  ];
22
22
  function phaseDescription(phase) {
23
- return `${phase === "light" ? "Light sweep" : phase === "deep" ? "Deep promotion" : "REM pattern discovery"} for memory dreaming. ${DREAMING_CRON_TAG}`;
23
+ return `${phase === "light" ? "Light sweep" : phase === "deep" ? "Deep promotion" : "REM pattern discovery"} for memory dreaming. ${DREAMING_AUTOMATION_TAG}`;
24
24
  }
25
25
  function buildTrigger(config, phase) {
26
+ const phaseConfig = config.phases[phase];
26
27
  return {
27
28
  kind: "schedule",
28
29
  schedule: {
29
30
  kind: "cron",
30
- expr: config.phases[phase].cron,
31
- ...config.timezone ? { tz: config.timezone } : {}
31
+ expr: compileDreamingSchedule(phaseConfig.schedule),
32
+ tz: config.timezone
32
33
  }
33
34
  };
34
35
  }
35
36
  function dreamingAutomationId(phase) {
36
37
  return `system-user-context-dreaming:${phase}`;
37
38
  }
38
- function buildAction(config, token) {
39
- const scope = resolveDreamingAgentScope(config);
39
+ function buildAction(scope, token) {
40
40
  return {
41
41
  kind: "agent",
42
42
  agentId: scope.agentId,
@@ -55,7 +55,8 @@ async function reconcileDreamingAutomations(params) {
55
55
  updated: [],
56
56
  disabled: []
57
57
  };
58
- const resolved = resolveDreamingConfig(config);
58
+ const scope = resolveDreamingAgentScope(config);
59
+ const resolved = scope.config;
59
60
  for (const spec of DREAMING_AUTOMATIONS) {
60
61
  const id = dreamingAutomationId(spec.phase);
61
62
  const current = await automationService.get(id);
@@ -72,7 +73,7 @@ async function reconcileDreamingAutomations(params) {
72
73
  description: phaseDescription(spec.phase),
73
74
  enabled,
74
75
  trigger: buildTrigger(resolved, spec.phase),
75
- action: buildAction(config, spec.token)
76
+ action: buildAction(scope, spec.token)
76
77
  };
77
78
  if (!current) {
78
79
  await automationService.create({
@@ -4,15 +4,13 @@ import { resolveAllowedBrowserOrigins, resolveGatewayServiceListenPort } from ".
4
4
  import { resolveGatewayEffectiveHost } from "../../config/gateway-bind.js";
5
5
  import { loadTunnelState } from "../../tunnel/tunnel-state.js";
6
6
  import { resolveReverseProxyPublicUrl } from "../public-url.js";
7
- import "../../work-items/work-item-service.js";
8
- import "../../work-items/index.js";
9
- import { maxWebchatAgentRequestBodyBytes } from "../chat-limits.js";
7
+ import { maxSessionInputRequestBodyBytes } from "../chat-limits.js";
10
8
  import { isLoopbackIpAddress, isTrustedProxyAddress } from "../client-ip.js";
11
9
  import { buildGatewayConsoleCspHeader } from "../security/csp.js";
12
10
  import { checkBrowserOrigin } from "../security/origin-check.js";
13
11
  import { auth } from "./middleware/auth.js";
14
12
  import { operatorScopes } from "./middleware/scopes.js";
15
- import { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware } from "./middleware/strict-rate-limit.js";
13
+ import { createChannelRateLimitMiddleware, createChatRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware } from "./middleware/strict-rate-limit.js";
16
14
  import { logContextMiddleware } from "./middleware/log-context.js";
17
15
  import { logger } from "./middleware/logger.js";
18
16
  import { routeErrorMiddleware } from "./middleware/route-errors.js";
@@ -149,7 +147,7 @@ function createHonoApp(config) {
149
147
  const SKILL_UPLOAD_BODY_MAX = 10 * 1024 * 1024;
150
148
  const NOTE_MEDIA_BODY_MAX = 25 * 1024 * 1024;
151
149
  const VOICE_TRANSCRIBE_BODY_MAX = 35 * 1024 * 1024;
152
- const WEBCHAT_AGENT_BODY_MAX = maxWebchatAgentRequestBodyBytes();
150
+ const SESSION_INPUT_BODY_MAX = maxSessionInputRequestBodyBytes();
153
151
  const isNoteMediaUploadRequest = (path, method, contentType) => {
154
152
  if (method !== "POST") return false;
155
153
  if (/^\/api\/notes\/[^/]+\/media$/.test(path)) return true;
@@ -160,10 +158,6 @@ function createHonoApp(config) {
160
158
  if (/^\/api\/discussions\/[^/]+\/recording$/.test(path)) return NOTE_MEDIA_BODY_MAX;
161
159
  if (/^\/api\/discussions\/[^/]+\/segments\/\d+$/.test(path)) return 2 * 1024 * 1024;
162
160
  };
163
- const isWorkItemAttachmentUploadRequest = (path, method, contentType) => {
164
- if (method !== "POST" || contentType?.includes("multipart/form-data") !== true) return false;
165
- return /^\/api\/work-items\/[^/]+\/attachments$/.test(path) || /^\/api\/projects\/[^/]+\/work-items$/.test(path);
166
- };
167
161
  app.use("/api/skills/upload", bodyLimit({
168
162
  maxSize: SKILL_UPLOAD_BODY_MAX,
169
163
  onError: (c) => {
@@ -179,7 +173,7 @@ function createHonoApp(config) {
179
173
  }));
180
174
  app.use("/api/*", async (c, next) => {
181
175
  const contentType = c.req.header("content-type");
182
- const maxSize = c.req.path === "/api/agent" ? WEBCHAT_AGENT_BODY_MAX : c.req.path === "/api/skills/upload" ? SKILL_UPLOAD_BODY_MAX : c.req.path === "/api/voice/transcribe" || c.req.path === "/api/voice/transcriptions" ? VOICE_TRANSCRIBE_BODY_MAX : isNoteMediaUploadRequest(c.req.path, c.req.method, contentType) ? NOTE_MEDIA_BODY_MAX : discussionUploadBodyMax(c.req.path, c.req.method, contentType) ?? (isWorkItemAttachmentUploadRequest(c.req.path, c.req.method, contentType) ? 263192576 : DEFAULT_API_BODY_MAX);
176
+ const maxSize = c.req.method === "POST" && c.req.path === "/api/tasks" || c.req.method === "POST" && /^\/api\/sessions\/[^/]+\/inputs$/.test(c.req.path) || c.req.method === "PATCH" && /^\/api\/sessions\/[^/]+\/inputs\/[^/]+$/.test(c.req.path) ? SESSION_INPUT_BODY_MAX : c.req.path === "/api/skills/upload" ? SKILL_UPLOAD_BODY_MAX : c.req.path === "/api/voice/transcribe" || c.req.path === "/api/voice/transcriptions" ? VOICE_TRANSCRIBE_BODY_MAX : isNoteMediaUploadRequest(c.req.path, c.req.method, contentType) ? NOTE_MEDIA_BODY_MAX : discussionUploadBodyMax(c.req.path, c.req.method, contentType) ?? DEFAULT_API_BODY_MAX;
183
177
  const maxSizeMb = Math.ceil(maxSize / (1024 * 1024));
184
178
  return bodyLimit({
185
179
  maxSize,
@@ -213,6 +207,10 @@ function createHonoApp(config) {
213
207
  trustedProxies: service.currentConfig.gateway?.trustedProxies,
214
208
  allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
215
209
  }) });
210
+ const chatRateLimitMiddleware = createChatRateLimitMiddleware({ getTrustedProxyContext: () => ({
211
+ trustedProxies: service.currentConfig.gateway?.trustedProxies,
212
+ allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
213
+ }) });
216
214
  const channelRateLimitMiddleware = createChannelRateLimitMiddleware({ getTrustedProxyContext: () => ({
217
215
  trustedProxies: service.currentConfig.gateway?.trustedProxies,
218
216
  allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
@@ -220,6 +218,7 @@ function createHonoApp(config) {
220
218
  registerAuthenticatedRoutes(app, authenticated, {
221
219
  service,
222
220
  strictRateLimitMiddleware,
221
+ chatRateLimitMiddleware,
223
222
  xopcCloudPollRateLimitMiddleware: createXopcCloudPollRateLimitMiddleware({ getTrustedProxyContext: () => ({
224
223
  trustedProxies: service.currentConfig.gateway?.trustedProxies,
225
224
  allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
@@ -1,2 +1,2 @@
1
1
  export { createHonoApp, type HonoAppConfig } from './app.js';
2
- export { createAgentSSEHandler, createAgentResumeHandler, createSendHandler, createEventsSSEHandler, type SSEHandlerConfig } from './sse.js';
2
+ export { createAgentResumeHandler, createSendHandler, createEventsSSEHandler, type SSEHandlerConfig } from './sse.js';
@@ -1,3 +1,3 @@
1
- import { createAgentResumeHandler, createAgentSSEHandler, createEventsSSEHandler, createSendHandler } from "./sse.js";
1
+ import { createAgentResumeHandler, createEventsSSEHandler, createSendHandler } from "./sse.js";
2
2
  import { createHonoApp } from "./app.js";
3
- export { createAgentResumeHandler, createAgentSSEHandler, createEventsSSEHandler, createHonoApp, createSendHandler };
3
+ export { createAgentResumeHandler, createEventsSSEHandler, createHonoApp, createSendHandler };
@@ -41,8 +41,8 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
41
41
  root: string;
42
42
  };
43
43
  models: {
44
- defaultRole: string;
45
- roles: Record<string, {
44
+ defaultRole?: string;
45
+ roles?: Record<string, {
46
46
  model: string;
47
47
  fallbacks?: string[];
48
48
  description?: string;
@@ -65,7 +65,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
65
65
  };
66
66
  };
67
67
  tools: {
68
- builtin: Record<string, {
68
+ builtin?: Record<string, {
69
69
  mode: "allow" | "confirm" | "deny";
70
70
  scope?: "workspace" | "readonly" | "unrestricted";
71
71
  limits?: {
@@ -106,9 +106,9 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
106
106
  }[];
107
107
  };
108
108
  boundaries: {
109
- requiresConfirmation: string[];
110
- forbidden: string[];
111
- escalation: string[];
109
+ requiresConfirmation?: string[];
110
+ forbidden?: string[];
111
+ escalation?: string[];
112
112
  };
113
113
  }[];
114
114
  capabilityPresets: Record<string, {
@@ -142,7 +142,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
142
142
  };
143
143
  };
144
144
  tools?: {
145
- builtin: Record<string, {
145
+ builtin?: Record<string, {
146
146
  mode: "allow" | "confirm" | "deny";
147
147
  scope?: "workspace" | "readonly" | "unrestricted";
148
148
  limits?: {
@@ -183,9 +183,9 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
183
183
  }[];
184
184
  };
185
185
  boundaries?: {
186
- requiresConfirmation: string[];
187
- forbidden: string[];
188
- escalation: string[];
186
+ requiresConfirmation?: string[];
187
+ forbidden?: string[];
188
+ escalation?: string[];
189
189
  };
190
190
  runtime?: {
191
191
  maxTurns?: number;
@@ -280,29 +280,6 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
280
280
  dialogPolicy: unknown;
281
281
  dialogTimeoutSeconds: number;
282
282
  };
283
- goals: {
284
- maxTurns: number;
285
- checklistMode: boolean;
286
- checklistDecomposePolicy: "empty_only" | "supplement_existing";
287
- maxConsecutiveParseFailures: number;
288
- judgeTimeoutMs: number;
289
- checklistHistoryChars: number;
290
- notifications: {
291
- enabled: boolean;
292
- includeLinkedSessions: boolean;
293
- channels: string[];
294
- events: ("done" | "blocked" | "needs_input" | "queue_failed" | "queue_retry" | "queue_succeeded" | "queue_skipped")[];
295
- targets: {
296
- channel: string;
297
- chatId: string;
298
- accountId?: string;
299
- threadId?: string | number;
300
- silent?: boolean;
301
- events?: ("done" | "blocked" | "needs_input" | "queue_failed" | "queue_retry" | "queue_succeeded" | "queue_skipped")[];
302
- }[];
303
- };
304
- judgeModelRef?: string;
305
- };
306
283
  session: {
307
284
  dmScope: "main" | "per-peer" | "per-channel-peer" | "per-account-channel-peer";
308
285
  storage: {
@@ -311,6 +288,9 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
311
288
  };
312
289
  };
313
290
  userContext: {
291
+ preferences: {
292
+ responseLanguage: "auto" | "zh-CN" | "en";
293
+ };
314
294
  memory: {
315
295
  retention: {
316
296
  compaction: {
@@ -362,11 +342,11 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
362
342
  stt: unknown;
363
343
  tts: unknown;
364
344
  voice: {
365
- languageMode?: "auto" | "manual";
345
+ languageMode?: "manual" | "auto";
366
346
  language?: "en" | "zh";
367
347
  input?: {
368
348
  refinement?: {
369
- mode: "off" | "custom" | "light" | "punctuation";
349
+ mode: "off" | "light" | "custom" | "punctuation";
370
350
  model?: string;
371
351
  customInstruction?: string;
372
352
  };
@@ -9,7 +9,7 @@ import { getAllProviders, init_providers, isProviderConfigured } from "../../../
9
9
  import { resolveShareConfig } from "../../../share/share-config.js";
10
10
  import { maskTunnelSecretForWeb } from "../../../tunnel/env.js";
11
11
  import { normalizeConfiguredMcpServers } from "../../../config/mcp-config-normalize.js";
12
- import { resolveGoalsConfigForWeb, resolveSessionConfigForWeb, resolveUpdateConfigForWeb } from "../../../config/web-patch.js";
12
+ import { resolveSessionConfigForWeb, resolveUpdateConfigForWeb } from "../../../config/web-patch.js";
13
13
  import { GENERIC_MASKED_SECRET, maskSecretLength } from "./mask-secret-length.js";
14
14
  import { safeToolsWebForGet } from "../../config-tools-web.js";
15
15
  import { buildSafeProvidersConfigForWeb } from "./safe-providers-config.js";
@@ -176,9 +176,11 @@ async function buildSafeWebConfigPayload(service, options = {}) {
176
176
  skillsStoreBaseUrl: config.gateway?.skillsStoreBaseUrl ?? "https://store.xopc.ai"
177
177
  },
178
178
  browser: buildSafeBrowserConfigForWeb(config.browser),
179
- goals: resolveGoalsConfigForWeb(config),
180
179
  session: resolveSessionConfigForWeb(config),
181
- userContext: { memory: { retention: { compaction: ContextCompactionPolicySchema.parse(config.userContext?.memory.retention?.compaction) } } },
180
+ userContext: {
181
+ preferences: config.userContext?.preferences ?? { responseLanguage: "auto" },
182
+ memory: { retention: { compaction: ContextCompactionPolicySchema.parse(config.userContext?.memory.retention?.compaction) } }
183
+ },
182
184
  tui: { defaultAgent: config.tui?.defaultAgent ?? "coder" },
183
185
  tunnel: {
184
186
  enabled: config.tunnel?.enabled === true,
@@ -12,6 +12,10 @@ export declare function createStrictRateLimitMiddleware(deps: StrictRateLimitDep
12
12
  error: string;
13
13
  code: string;
14
14
  }, 429, "json">>;
15
+ export declare function createChatRateLimitMiddleware(deps: StrictRateLimitDeps): import("hono").MiddlewareHandler<any, string, {}, Response & import("hono").TypedResponse<{
16
+ error: string;
17
+ code: string;
18
+ }, 429, "json">>;
15
19
  export declare function createXopcCloudPollRateLimitMiddleware(deps: StrictRateLimitDeps): import("hono").MiddlewareHandler<any, string, {}, Response & import("hono").TypedResponse<{
16
20
  error: string;
17
21
  code: string;
@@ -63,6 +63,13 @@ function createStrictRateLimitMiddleware(deps) {
63
63
  reason: "strict_rate_limit_exceeded"
64
64
  });
65
65
  }
66
+ function createChatRateLimitMiddleware(deps) {
67
+ return createClientRateLimitMiddleware(deps, {
68
+ limiter: () => buckets.chatApi(),
69
+ exceededMessage: "Chat API rate limit exceeded",
70
+ reason: "chat_rate_limit_exceeded"
71
+ });
72
+ }
66
73
  function createXopcCloudPollRateLimitMiddleware(deps) {
67
74
  return createClientRateLimitMiddleware(deps, {
68
75
  limiter: () => buckets.xopcCloudPoll(),
@@ -78,4 +85,4 @@ function createChannelRateLimitMiddleware(deps) {
78
85
  });
79
86
  }
80
87
  //#endregion
81
- export { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware };
88
+ export { createChannelRateLimitMiddleware, createChatRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware };
@@ -275,13 +275,7 @@ async function runOAuthFlow(session, oauthProvider, _service) {
275
275
  try {
276
276
  const credentials = await oauthProvider.login(callbacks);
277
277
  setOAuthCredentialsToCache(session.provider, credentials);
278
- await new CredentialResolver().saveOAuthToken(session.provider, {
279
- access: oauthProvider.getApiKey(credentials),
280
- refresh: credentials.refresh,
281
- expiresAt: credentials.expires,
282
- scope: Array.isArray(credentials.scope) ? credentials.scope.filter((value) => typeof value === "string") : void 0,
283
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
284
- });
278
+ await new CredentialResolver().saveOAuthCredentials(session.provider, credentials);
285
279
  session.status = "completed";
286
280
  session.credentials = credentials;
287
281
  session.message = "OAuth login successful";
@@ -74,13 +74,7 @@ function createOAuthHandler(_service) {
74
74
  }
75
75
  });
76
76
  setOAuthCredentialsToCache(provider, credentials);
77
- await new CredentialResolver().saveOAuthToken(provider, {
78
- access: oauthProvider.getApiKey(credentials),
79
- refresh: credentials.refresh,
80
- expiresAt: credentials.expires,
81
- scope: Array.isArray(credentials.scope) ? credentials.scope.filter((value) => typeof value === "string") : void 0,
82
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
83
- });
77
+ await new CredentialResolver().saveOAuthCredentials(provider, credentials);
84
78
  return c.json({
85
79
  ok: true,
86
80
  payload: {
@@ -4,9 +4,8 @@ import "../../../activity/index.js";
4
4
  const ACTIVITY_OBJECT_KINDS = new Set([
5
5
  "project",
6
6
  "note",
7
- "work_item",
8
7
  "session",
9
- "goal",
8
+ "task",
10
9
  "workflow_run",
11
10
  "automation"
12
11
  ]);