@xopcai/xopc 0.0.353 → 0.0.355

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 (268) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/activity-YogQEteU.js +1 -0
  4. package/dist/gateway/static/root/assets/activity-store-X7CG9pzB.js +1 -0
  5. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BVIuZcCP.js → agent-avatar-dicebear-DiEBNuSv.js} +1 -1
  6. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DpBmB3QX.js +1 -0
  7. package/dist/gateway/static/root/assets/agent-plugin-dialog-DlojWUY_.js +1 -0
  8. package/dist/gateway/static/root/assets/agents-CeSCdUHP.js +66 -0
  9. package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +1 -0
  10. package/dist/gateway/static/root/assets/app-management-settings-panel-MkSa6isi.js +1 -0
  11. package/dist/gateway/static/root/assets/appearance-settings-B7hCkaT_.js +1 -0
  12. package/dist/gateway/static/root/assets/apps-page-D_CduJuC.js +1 -0
  13. package/dist/gateway/static/root/assets/{archive-plugin-BZXXJvpX.js → archive-plugin-QfOaQPL_.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-page-C7VKkDb5.js → automations-page-uEnQawd7.js} +1 -1
  15. package/dist/gateway/static/root/assets/automations-workspace-pdiSK3Qk.js +7 -0
  16. package/dist/gateway/static/root/assets/{binary-plugins-DoT3g5SP.js → binary-plugins-BF2lVwR9.js} +1 -1
  17. package/dist/gateway/static/root/assets/{block-editor-sqqrCafh.js → block-editor-r4mKGacz.js} +39 -39
  18. package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +1 -0
  19. package/dist/gateway/static/root/assets/{browser-automation-inputs-CZOKsAaa.js → browser-automation-inputs-FW3bYZ-z.js} +1 -1
  20. package/dist/gateway/static/root/assets/{browser-automations-page-TEeTmkGP.js → browser-automations-page-Blrxyy_h.js} +2 -2
  21. package/dist/gateway/static/root/assets/browser-settings-page-DGuwrO7j.js +3 -0
  22. package/dist/gateway/static/root/assets/{capabilities-BOrLei_L.js → capabilities-BCF_160Z.js} +1 -1
  23. package/dist/gateway/static/root/assets/capabilities-CF4-mrIa.js +1 -0
  24. package/dist/gateway/static/root/assets/capabilities-page-DUIA2K--.js +2 -0
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-CwPNQsJS.js +8 -0
  26. package/dist/gateway/static/root/assets/capability-header-actions-CyvI2F5x.js +1 -0
  27. package/dist/gateway/static/root/assets/channels-DBxDJV8I.js +1 -0
  28. package/dist/gateway/static/root/assets/{chat-terminal-dock-Q99iKyiO.js → chat-terminal-dock-YdxhecE7.js} +2 -2
  29. package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +1 -0
  30. package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +1 -0
  31. package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +1 -0
  32. package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +1 -0
  33. package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +1 -0
  34. package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
  35. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +1 -0
  36. package/dist/gateway/static/root/assets/computer-settings-page-BuCrA8yD.js +1 -0
  37. package/dist/gateway/static/root/assets/connector-service-page-BiB2GYkp.js +1 -0
  38. package/dist/gateway/static/root/assets/connectors-page-nQAgZk-5.js +2 -0
  39. package/dist/gateway/static/root/assets/copy-text-row-BHDs3cBa.js +1 -0
  40. package/dist/gateway/static/root/assets/date-picker-BJtADyRQ.js +1 -0
  41. package/dist/gateway/static/root/assets/{dependency-picker-BjH8XrKb.js → dependency-picker-D-Ko0G40.js} +1 -1
  42. package/dist/gateway/static/root/assets/{desktop-pet-DyGxNAVW.js → desktop-pet-CVPWcWwC.js} +1 -1
  43. package/dist/gateway/static/root/assets/desktop-pet-settings-BcN_I-7y.js +1 -0
  44. package/dist/gateway/static/root/assets/device-pairing-wizard-CoKKoUlt.js +1 -0
  45. package/dist/gateway/static/root/assets/directory-picker-path-field-m0CubGEP.js +1 -0
  46. package/dist/gateway/static/root/assets/dist-3h6cXXhT.js +1 -0
  47. package/dist/gateway/static/root/assets/dist-Che_jiQF.js +1 -0
  48. package/dist/gateway/static/root/assets/extension-debug-page-BrGWLJg9.js +1 -0
  49. package/dist/gateway/static/root/assets/extension-page-Dd88ynHj.js +1 -0
  50. package/dist/gateway/static/root/assets/extension-provider-CUpbXB2k.js +1 -0
  51. package/dist/gateway/static/root/assets/extension-settings-page-Dq1MXh6D.js +1 -0
  52. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
  53. package/dist/gateway/static/root/assets/gateway-settings-C_bTRQeE.js +1 -0
  54. package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
  55. package/dist/gateway/static/root/assets/home-page-xbqSikkK.js +1 -0
  56. package/dist/gateway/static/root/assets/imports-page-Cd4tcbLU.js +1 -0
  57. package/dist/gateway/static/root/assets/index-BuzC93X-.css +1 -0
  58. package/dist/gateway/static/root/assets/index-CYeGnj-L.js +106 -0
  59. package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +1 -0
  60. package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +1 -0
  61. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
  62. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CoYdyBRh.js → keyboard-shortcuts-settings-CmalfzgQ.js} +1 -1
  63. package/dist/gateway/static/root/assets/local-app-workbench-page-BquHHLj6.js +1 -0
  64. package/dist/gateway/static/root/assets/{local-apps-page-CeBhXeoX.js → local-apps-page-RPLHMvYs.js} +1 -1
  65. package/dist/gateway/static/root/assets/logs-page-7NMGltSw.js +2 -0
  66. package/dist/gateway/static/root/assets/management-settings-zwFewbhp.js +1 -0
  67. package/dist/gateway/static/root/assets/markdown-view-7tzqIp_G.js +201 -0
  68. package/dist/gateway/static/root/assets/{media-plugins-C9ya5rUH.js → media-plugins-cjgrKnne.js} +1 -1
  69. package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
  70. package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +1 -0
  71. package/dist/gateway/static/root/assets/model-display-name-DXhO9rcM.js +1 -0
  72. package/dist/gateway/static/root/assets/models-hub-cache-HGrORbzR.js +1 -0
  73. package/dist/gateway/static/root/assets/note-detail-panel-CwMg9cvF.js +5 -0
  74. package/dist/gateway/static/root/assets/notes-api-J0yhflxC.js +1 -0
  75. package/dist/gateway/static/root/assets/notes-page-CWJwrvo7.js +8 -0
  76. package/dist/gateway/static/root/assets/oauth-api-CYe61zfD.js +1 -0
  77. package/dist/gateway/static/root/assets/page-context-capture-button-DqmAq4Ov.js +1 -0
  78. package/dist/gateway/static/root/assets/page-tabs-D2xpUV26.js +1 -0
  79. package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +1 -0
  80. package/dist/gateway/static/root/assets/personal-page-Bbgx_dgV.js +1 -0
  81. package/dist/gateway/static/root/assets/play-kxZvpBg8.js +1 -0
  82. package/dist/gateway/static/root/assets/popover-select-DcsFzD_i.js +1 -0
  83. package/dist/gateway/static/root/assets/preview-open-alternatives-Dvey7GwU.js +1 -0
  84. package/dist/gateway/static/root/assets/{product-open-page-DUPsiVP9.js → product-open-page-SsG2sljT.js} +1 -1
  85. package/dist/gateway/static/root/assets/project-detail-page-wp5cFhM7.js +1 -0
  86. package/dist/gateway/static/root/assets/projects-page-Brfi519S.js +1 -0
  87. package/dist/gateway/static/root/assets/remote-access-hub-BdtF8Cvk.js +1 -0
  88. package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +1 -0
  89. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-C25xEYTK.js → runtime-tools-settings-panel-CT6HKczq.js} +2 -2
  90. package/dist/gateway/static/root/assets/scenes-page-BmlI42OR.js +2 -0
  91. package/dist/gateway/static/root/assets/schema-form-DEcsbgne.js +1 -0
  92. package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +1 -0
  93. package/dist/gateway/static/root/assets/send-session-input-C7Nqy0sK.js +1 -0
  94. package/dist/gateway/static/root/assets/sessions-page-C_G8fZwV.js +1 -0
  95. package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +1 -0
  96. package/dist/gateway/static/root/assets/settings-advanced-gate-CDxdzwDs.js +1 -0
  97. package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +1 -0
  98. package/dist/gateway/static/root/assets/settings-form-section-exRhP9xn.js +1 -0
  99. package/dist/gateway/static/root/assets/{settings-page-DqCJHcdG.js → settings-page-P50kLPUz.js} +1 -1
  100. package/dist/gateway/static/root/assets/setup-status-panel-DtnwH0wN.js +1 -0
  101. package/dist/gateway/static/root/assets/share-link-dialog-COlX10Dc.js +1 -0
  102. package/dist/gateway/static/root/assets/share-preview-page-NtRLUieq.js +2 -0
  103. package/dist/gateway/static/root/assets/shares-api-DICV5EKH.js +1 -0
  104. package/dist/gateway/static/root/assets/shares-settings-7Ak_MsJg.js +1 -0
  105. package/dist/gateway/static/root/assets/skill-api-CcdHQhxd.js +1 -0
  106. package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +1 -0
  107. package/dist/gateway/static/root/assets/skill-reload-api-CWH3Fmx4.js +1 -0
  108. package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +1 -0
  109. package/dist/gateway/static/root/assets/skills-page-ChjXDxdX.js +2 -0
  110. package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +1 -0
  111. package/dist/gateway/static/root/assets/system-settings-panel-DAR0w3Xi.js +1 -0
  112. package/dist/gateway/static/root/assets/task-detail-page-DEx0kXDV.js +1 -0
  113. package/dist/gateway/static/root/assets/tasks-Buv1mgPF.js +1 -0
  114. package/dist/gateway/static/root/assets/theme-store-BKgBPLH4.js +1 -0
  115. package/dist/gateway/static/root/assets/tunnel-api-CBy97LfF.js +1 -0
  116. package/dist/gateway/static/root/assets/usage-page-BdX6VPQC.js +1 -0
  117. package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +1 -0
  118. package/dist/gateway/static/root/assets/use-autosave-Cn6hqqyM.js +1 -0
  119. package/dist/gateway/static/root/assets/use-composer-attachments-DL61XeSu.js +2 -0
  120. package/dist/gateway/static/root/assets/use-file-preview-expanded-Cl9mU32w.js +2 -0
  121. package/dist/gateway/static/root/assets/user-model-page-CRxiQnWG.js +2 -0
  122. package/dist/gateway/static/root/assets/voice-api-key-field-Bw05QB_V.js +1 -0
  123. package/dist/gateway/static/root/assets/{work-discovery-overlay-BnfD6w0k.js → work-discovery-overlay-DvwmD9Ma.js} +1 -1
  124. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DSy57rBr.js → workflow-run-setup-panel-BQ3fmhM-.js} +2 -2
  125. package/dist/gateway/static/root/assets/workflows-page-Bl8rd4fM.js +6 -0
  126. package/dist/gateway/static/root/assets/workspace-api-BbBT75Kg.js +2 -0
  127. package/dist/gateway/static/root/index.html +61 -19
  128. package/dist/package.js +1 -1
  129. package/dist/packages/gateway-contract/src/tasks.js +19 -2
  130. package/dist/src/agent/agent-manager.js +4 -4
  131. package/dist/src/agent/embedded/run-for-session.d.ts +1 -0
  132. package/dist/src/agent/embedded/run-for-session.js +2 -1
  133. package/dist/src/agent/embedded/run-turn.js +30 -2
  134. package/dist/src/agent/embedded/types.d.ts +1 -0
  135. package/dist/src/agent/prompt/sections/messaging-runtime.js +2 -1
  136. package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -0
  137. package/dist/src/agent/service/direct-turn-helpers.js +1 -0
  138. package/dist/src/agent/service/process-direct-streaming.js +1 -0
  139. package/dist/src/agent/service.js +4 -1
  140. package/dist/src/agent/session/session-config-service.js +27 -1
  141. package/dist/src/agent/session/session-hydrator.js +1 -1
  142. package/dist/src/agent/tools/factory.js +21 -14
  143. package/dist/src/agent/tools/personal-preference-tool.d.ts +10 -0
  144. package/dist/src/agent/tools/personal-preference-tool.js +44 -0
  145. package/dist/src/agent/tools/personal-task-tool.d.ts +29 -0
  146. package/dist/src/agent/tools/personal-task-tool.js +184 -0
  147. package/dist/src/agent/tools/xopc-use-tool.js +3 -2
  148. package/dist/src/agent-catalog/service.d.ts +1 -1
  149. package/dist/src/agent-catalog/service.js +2 -1
  150. package/dist/src/agent-config/index.js +2 -2
  151. package/dist/src/agent-config/schema.d.ts +153 -1
  152. package/dist/src/agent-config/schema.js +42 -3
  153. package/dist/src/chat-commands/builtins/thinking.js +12 -2
  154. package/dist/src/chat-commands/context.js +7 -1
  155. package/dist/src/cli/commands/auth.js +1 -1
  156. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  157. package/dist/src/cli/commands/models.js +2 -2
  158. package/dist/src/cli/commands/onboard/model.js +1 -1
  159. package/dist/src/cli/commands/providers.js +1 -1
  160. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
  161. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  162. package/dist/src/gateway/hono/routes/models.js +1 -1
  163. package/dist/src/gateway/hono/routes/personal-agent.d.ts +3 -0
  164. package/dist/src/gateway/hono/routes/personal-agent.js +122 -0
  165. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  166. package/dist/src/gateway/hono/routes/sessions.js +5 -0
  167. package/dist/src/gateway/hono/routes/side-chats.js +1 -1
  168. package/dist/src/gateway/hono/routes/tasks.js +64 -1
  169. package/dist/src/gateway/hono/routes/voice.js +8 -0
  170. package/dist/src/gateway/service/agent-runner.js +41 -0
  171. package/dist/src/gateway/service/run-gateway-agent.js +2 -1
  172. package/dist/src/gateway/service/session-command-service.js +7 -1
  173. package/dist/src/gateway/service/sessions-api.js +11 -1
  174. package/dist/src/gateway/service.js +10 -10
  175. package/dist/src/gateway/session-reset-service.js +5 -0
  176. package/dist/src/gateway/xopc-cloud-capability-setup.d.ts +9 -0
  177. package/dist/src/gateway/xopc-cloud-capability-setup.js +42 -2
  178. package/dist/src/home-intelligence/host.js +2 -2
  179. package/dist/src/personal-agent/policy.d.ts +1 -0
  180. package/dist/src/personal-agent/policy.js +13 -0
  181. package/dist/src/personal-agent/repository.d.ts +25 -0
  182. package/dist/src/personal-agent/repository.js +68 -0
  183. package/dist/src/personal-agent/service.d.ts +49 -0
  184. package/dist/src/personal-agent/service.js +234 -0
  185. package/dist/src/session/resolve-session.js +4 -2
  186. package/dist/src/storage/sqlite/migrations/229_task_criterion_reviews.sql +12 -0
  187. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  188. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  189. package/dist/src/storage/sqlite/schema.js +1 -1
  190. package/dist/src/storage/sqlite/schema.sql +13 -0
  191. package/dist/src/storage/sqlite/session-repository.js +6 -2
  192. package/dist/src/storage/sqlite/transcript-repository.js +2 -1
  193. package/dist/src/tasks/capabilities/read.js +3 -0
  194. package/dist/src/tasks/task-application-service.js +6 -1
  195. package/dist/src/tasks/task-criterion-review-repository.d.ts +22 -0
  196. package/dist/src/tasks/task-criterion-review-repository.js +74 -0
  197. package/dist/src/tasks/task-main-update-decision-service.js +6 -0
  198. package/dist/src/tasks/task-main-update-delivery.js +5 -2
  199. package/dist/src/tasks/task-origin-repository.d.ts +4 -1
  200. package/dist/src/tasks/task-origin-repository.js +3 -3
  201. package/dist/src/tasks/task-run-coordinator.d.ts +1 -0
  202. package/dist/src/tasks/task-run-coordinator.js +13 -7
  203. package/dist/src/tasks/task-run-dispatcher.d.ts +1 -1
  204. package/dist/src/tasks/task-run-dispatcher.js +6 -4
  205. package/package.json +4 -4
  206. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CcTnphqy.js +0 -1
  207. package/dist/gateway/static/root/assets/agent-plugin-dialog-CdCzMPhC.js +0 -1
  208. package/dist/gateway/static/root/assets/agents-BiNKpndr.js +0 -66
  209. package/dist/gateway/static/root/assets/app-management-settings-panel-BvGDN5J6.js +0 -1
  210. package/dist/gateway/static/root/assets/appearance-settings-BhQYkuQj.js +0 -1
  211. package/dist/gateway/static/root/assets/apps-page-BQZJuM-C.js +0 -1
  212. package/dist/gateway/static/root/assets/automations-workspace-y4qcvlg8.js +0 -7
  213. package/dist/gateway/static/root/assets/browser-settings-page--N4P7V0l.js +0 -3
  214. package/dist/gateway/static/root/assets/capabilities-page-F7OAv-iz.js +0 -2
  215. package/dist/gateway/static/root/assets/capabilities-settings-panel-CaiIo1S1.js +0 -8
  216. package/dist/gateway/static/root/assets/capability-header-actions-CR_O9_Vr.js +0 -1
  217. package/dist/gateway/static/root/assets/channels-Bb-8c4wl.js +0 -1
  218. package/dist/gateway/static/root/assets/computer-settings-page-QuXZBfky.js +0 -1
  219. package/dist/gateway/static/root/assets/connector-service-page-BIqzVqCO.js +0 -1
  220. package/dist/gateway/static/root/assets/connectors-page-CZ24DSBJ.js +0 -2
  221. package/dist/gateway/static/root/assets/date-picker-Ck-FmYEL.js +0 -1
  222. package/dist/gateway/static/root/assets/desktop-pet-settings-C1rKgB-S.js +0 -1
  223. package/dist/gateway/static/root/assets/device-pairing-wizard-UrPcOU6Q.js +0 -1
  224. package/dist/gateway/static/root/assets/directory-picker-path-field-BYxUgMZb.js +0 -1
  225. package/dist/gateway/static/root/assets/dist-CKkafhaS.js +0 -1
  226. package/dist/gateway/static/root/assets/dist-io9jFpN72.js +0 -1
  227. package/dist/gateway/static/root/assets/extension-debug-page-CGL0jpQA.js +0 -1
  228. package/dist/gateway/static/root/assets/extension-page-DPWf-tYg.js +0 -1
  229. package/dist/gateway/static/root/assets/extension-settings-page-DZWBY39d.js +0 -1
  230. package/dist/gateway/static/root/assets/gateway-settings-D5w5aYXK.js +0 -1
  231. package/dist/gateway/static/root/assets/home-page-DPQwxBGy.js +0 -1
  232. package/dist/gateway/static/root/assets/imports-page-CnRWDtGz.js +0 -1
  233. package/dist/gateway/static/root/assets/index-B-w6Rk9Z.css +0 -1
  234. package/dist/gateway/static/root/assets/index-DU5Eb1V8.js +0 -106
  235. package/dist/gateway/static/root/assets/local-app-workbench-page-hjFeYlIq.js +0 -1
  236. package/dist/gateway/static/root/assets/logs-page-CzpZDjkA.js +0 -2
  237. package/dist/gateway/static/root/assets/management-settings-Beu_R_Rc.js +0 -1
  238. package/dist/gateway/static/root/assets/markdown-view-BlzX7Ze5.js +0 -201
  239. package/dist/gateway/static/root/assets/note-detail-panel-D8bpTGwP.js +0 -5
  240. package/dist/gateway/static/root/assets/notes-page-OmgXowUG.js +0 -8
  241. package/dist/gateway/static/root/assets/page-context-capture-button-BjjjuLkz.js +0 -1
  242. package/dist/gateway/static/root/assets/page-tabs-_DiuzxyD.js +0 -1
  243. package/dist/gateway/static/root/assets/popover-select-0p9PIHRy.js +0 -1
  244. package/dist/gateway/static/root/assets/preview-open-alternatives-BKvUadws.js +0 -1
  245. package/dist/gateway/static/root/assets/project-detail-page-CWlCg2x5.js +0 -1
  246. package/dist/gateway/static/root/assets/projects-page-NbVNo0tP.js +0 -1
  247. package/dist/gateway/static/root/assets/remote-access-hub-CD8HrqGC.js +0 -1
  248. package/dist/gateway/static/root/assets/scenes-page-DbWaemwR.js +0 -2
  249. package/dist/gateway/static/root/assets/schema-form-_3LQ4hyB.js +0 -1
  250. package/dist/gateway/static/root/assets/sessions-page-B7ZUdXlb.js +0 -1
  251. package/dist/gateway/static/root/assets/settings-advanced-gate-CpKzZMft.js +0 -1
  252. package/dist/gateway/static/root/assets/settings-form-section-DS80hVSY.js +0 -1
  253. package/dist/gateway/static/root/assets/setup-status-panel-De-kC3yJ.js +0 -1
  254. package/dist/gateway/static/root/assets/share-preview-page-T-0g_rwr.js +0 -2
  255. package/dist/gateway/static/root/assets/shares-settings-Dz33T3du.js +0 -1
  256. package/dist/gateway/static/root/assets/skill-api-Cx6GGpSY.js +0 -1
  257. package/dist/gateway/static/root/assets/skill-reload-api-DyJ-Duem.js +0 -1
  258. package/dist/gateway/static/root/assets/skills-page-B2iyN-kP.js +0 -2
  259. package/dist/gateway/static/root/assets/system-settings-panel-By3SZQR_.js +0 -1
  260. package/dist/gateway/static/root/assets/task-detail-page-4yHUTs4_.js +0 -1
  261. package/dist/gateway/static/root/assets/tasks-BH8_WMUF.js +0 -1
  262. package/dist/gateway/static/root/assets/tunnel-api-BoH0LBkw.js +0 -1
  263. package/dist/gateway/static/root/assets/usage-page-dKU5X9zT.js +0 -1
  264. package/dist/gateway/static/root/assets/use-autosave-YKCwQvqT.js +0 -1
  265. package/dist/gateway/static/root/assets/user-model-page-Uht32LPP.js +0 -2
  266. package/dist/gateway/static/root/assets/voice-api-key-field-DiqHIA8l.js +0 -1
  267. package/dist/gateway/static/root/assets/workflows-page-Cq3vRUbc.js +0 -6
  268. /package/dist/gateway/static/root/assets/{dist-CI_fqRk-2.js → dist-CI_fqRk-.js} +0 -0
@@ -0,0 +1,184 @@
1
+ import { resolveEffectiveAgentConfig } from "../../agent-config/resolver.js";
2
+ import { init_agent_config } from "../../agent-config/index.js";
3
+ import { AgentCatalogRepository, init_repository } from "../../agent-catalog/repository.js";
4
+ import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
5
+ import { init_providers, isProviderConfiguredSync, resolveModel } from "../../providers/index.js";
6
+ import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
7
+ import { createXopcUseTool } from "./xopc-use-tool.js";
8
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
9
+ import { randomUUID } from "node:crypto";
10
+ import { Type } from "@sinclair/typebox";
11
+ //#region src/agent/tools/personal-task-tool.ts
12
+ init_repository();
13
+ init_agent_config();
14
+ init_providers();
15
+ const PersonalTaskSchema = Type.Object({
16
+ command: Type.Union([
17
+ Type.Literal("agents"),
18
+ Type.Literal("create"),
19
+ Type.Literal("list"),
20
+ Type.Literal("get"),
21
+ Type.Literal("instruct"),
22
+ Type.Literal("answer")
23
+ ]),
24
+ title: Type.Optional(Type.String({ description: "Short task title, ideally under 60 characters. Do not put the full instructions here." })),
25
+ objective: Type.Optional(Type.String({ description: "One-sentence outcome for a new delegated Task." })),
26
+ description: Type.Optional(Type.String({ description: "Full task brief in Markdown: background, specific requests, source material, and delivery expectations." })),
27
+ agentId: Type.Optional(Type.String({ description: "Specialist Agent ID. Never use your own ID." })),
28
+ taskId: Type.Optional(Type.String()),
29
+ instruction: Type.Optional(Type.String({ description: "The user’s new direction for this delegated Task." })),
30
+ questionId: Type.Optional(Type.String({ description: "Collaboration question ID to answer." })),
31
+ expectedOutputs: Type.Optional(Type.Array(Type.String())),
32
+ acceptanceCriteria: Type.Optional(Type.Array(Type.String())),
33
+ constraints: Type.Optional(Type.Array(Type.String())),
34
+ requiredTools: Type.Optional(Type.Array(Type.String({ description: "Tool names needed for this Task. Use names returned by agents; omit when matching by role or expertise." }))),
35
+ idempotencyKey: Type.Optional(Type.String())
36
+ });
37
+ const MAX_PERSONAL_TASK_TITLE = 60;
38
+ const DISCOVERY_TOOLS = [
39
+ "web_search",
40
+ "web_fetch",
41
+ "browser_use",
42
+ "read_file",
43
+ "write_file",
44
+ "exec_command",
45
+ "image",
46
+ "image_generate",
47
+ "read_media",
48
+ "automation",
49
+ "workflow",
50
+ "xopc_use",
51
+ "xopc_tool_search",
52
+ "computer_use",
53
+ "send_message",
54
+ "text_to_speech"
55
+ ];
56
+ function availableAgentTools(config, deps) {
57
+ return (config.toolAllowlist ? [...new Set([...DISCOVERY_TOOLS, ...config.toolAllowlist])] : DISCOVERY_TOOLS).filter((name) => (name !== "browser_use" || deps.getConfig?.()?.browser?.enabled !== false) && (!config.toolAllowlist || config.toolAllowlist.includes(name)) && config.tools[name]?.mode !== "deny");
58
+ }
59
+ function agentModelAvailability(config) {
60
+ for (const ref of [config.models.chat.primary, ...config.models.chat.fallbacks]) try {
61
+ if (isProviderConfiguredSync(resolveModel(ref).provider)) return { available: true };
62
+ } catch {}
63
+ return {
64
+ available: false,
65
+ reason: "No configured chat model resolves to an available provider"
66
+ };
67
+ }
68
+ function buildPersonalTaskBrief(input) {
69
+ const fullObjective = input.objective.trim();
70
+ const titleSource = (input.title?.trim() || fullObjective).replace(/\s+/g, " ");
71
+ const firstClause = titleSource.split(/[。!?\n]|(?<=[.!?])\s/)[0]?.trim() || titleSource;
72
+ const title = firstClause.length > MAX_PERSONAL_TASK_TITLE ? `${firstClause.slice(0, MAX_PERSONAL_TASK_TITLE - 1).trimEnd()}…` : firstClause;
73
+ const objective = fullObjective.length > 120 ? title : fullObjective;
74
+ const description = input.description?.trim();
75
+ const body = fullObjective !== objective ? [fullObjective, description].filter(Boolean).join("\n\n") : description;
76
+ return {
77
+ title,
78
+ objective,
79
+ ...body ? { body } : {}
80
+ };
81
+ }
82
+ /** A narrow Task surface for the fast personal conversation. */
83
+ function createPersonalTaskTool(deps) {
84
+ const productTool = createXopcUseTool(deps);
85
+ return {
86
+ name: "personal_task",
87
+ label: "Personal Task",
88
+ description: "Find specialist Agents by role, availableTools, and model.available; delegate work, inspect Tasks, send instructions, or answer worker questions. Choose an Agent whose model.available is true. Before saying you cannot do a request, inspect another Agent. If a candidate fails, try another suitable Agent or approach within the user’s authorization. agents can filter by requiredTools; if none match, inspect unfiltered Agents. Return to the user quickly after creation.",
89
+ parameters: PersonalTaskSchema,
90
+ mutatesWorkspace: true,
91
+ mutationScope: "external",
92
+ requiresExclusiveWorkspaceLock: true,
93
+ finalGuardRelevant: true,
94
+ async execute(toolCallId, input, signal) {
95
+ const conversationId = deps.getCurrentConversationId?.();
96
+ const ownAgentId = deps.getCurrentAgentId?.();
97
+ if (!conversationId || !ownAgentId || !isPersonalConversation(conversationId)) throw new Error("Personal conversation context is unavailable");
98
+ if (input.command === "agents") {
99
+ const requiredTools = input.requiredTools ?? [];
100
+ const catalog = new AgentCatalogRepository().snapshot();
101
+ const agents = catalog.agents.filter((agent) => agent.enabled !== false && agent.id !== ownAgentId && !agent.id.startsWith("personal-")).map((agent) => {
102
+ const config = resolveEffectiveAgentConfig({
103
+ defaults: catalog.defaults,
104
+ agent
105
+ }).config;
106
+ const availableTools = availableAgentTools(config, deps);
107
+ return {
108
+ id: agent.id,
109
+ name: agent.profile?.name ?? agent.id,
110
+ description: agent.profile?.description ?? "",
111
+ availableTools,
112
+ model: agentModelAvailability(config)
113
+ };
114
+ }).filter((agent) => requiredTools.every((tool) => agent.availableTools.includes(tool)));
115
+ return {
116
+ content: [{
117
+ type: "text",
118
+ text: JSON.stringify(agents)
119
+ }],
120
+ details: {}
121
+ };
122
+ }
123
+ let command = input.command;
124
+ let args = {};
125
+ if (command === "create") {
126
+ const objective = input.objective?.trim();
127
+ const agentId = input.agentId?.trim();
128
+ if (!objective || !agentId) throw new Error("objective and specialist agentId are required");
129
+ if (agentId === ownAgentId || agentId.startsWith("personal-")) throw new Error("Delegate to a specialist Agent, not a personal Agent");
130
+ const specialist = new AgentCatalogRepository().get(agentId);
131
+ if (!specialist || specialist.enabled === false || specialist.provisioningState !== "ready") throw new Error(`Specialist Agent is unavailable: ${agentId}`);
132
+ const config = resolveEffectiveAgentConfigForAgent(agentId).config;
133
+ const model = agentModelAvailability(config);
134
+ if (!model.available) throw new Error(`Agent ${agentId} cannot start: ${model.reason}. Find another available Agent.`);
135
+ const availableTools = availableAgentTools(config, deps);
136
+ const missingTools = (input.requiredTools ?? []).filter((tool) => !availableTools.includes(tool));
137
+ if (missingTools.length > 0) throw new Error(`Agent ${agentId} lacks required tools: ${missingTools.join(", ")}. Find another Agent or approach.`);
138
+ args = {
139
+ ...buildPersonalTaskBrief({
140
+ title: input.title,
141
+ objective,
142
+ description: input.description
143
+ }),
144
+ agentId,
145
+ createMode: "start",
146
+ includeConversationContext: false,
147
+ expectedOutputs: input.expectedOutputs ?? [],
148
+ acceptanceCriteria: input.acceptanceCriteria ?? [],
149
+ constraints: input.constraints ?? [],
150
+ idempotencyKey: input.idempotencyKey?.trim() || randomUUID()
151
+ };
152
+ } else if (command === "list") {
153
+ command = "delegated_tasks";
154
+ args = { limit: 20 };
155
+ } else {
156
+ const taskId = input.taskId?.trim();
157
+ if (!taskId) throw new Error("taskId is required");
158
+ if (!new TaskOriginRepository().owns(taskId, conversationId)) throw new Error("Task does not belong to this personal conversation");
159
+ if (command === "instruct" || command === "answer") {
160
+ const body = input.instruction?.trim();
161
+ if (!body) throw new Error("instruction is required");
162
+ if (command === "answer" && !input.questionId?.trim()) throw new Error("questionId is required");
163
+ command = "collaboration_post";
164
+ args = {
165
+ taskId,
166
+ kind: input.command === "answer" ? "answer" : "instruction",
167
+ body,
168
+ ...input.command === "answer" ? { causationId: input.questionId.trim() } : {}
169
+ };
170
+ } else args = { taskId };
171
+ }
172
+ return {
173
+ content: (await productTool.execute(toolCallId, {
174
+ mode: "task",
175
+ command,
176
+ args
177
+ }, signal, void 0)).content,
178
+ details: {}
179
+ };
180
+ }
181
+ };
182
+ }
183
+ //#endregion
184
+ export { buildPersonalTaskBrief, createPersonalTaskTool };
@@ -1464,6 +1464,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
1464
1464
  const input = {
1465
1465
  idempotencyKey: trimString(args.idempotencyKey) ?? randomUUID(),
1466
1466
  title: trimString(args.title) ?? objective,
1467
+ ...trimString(args.body) ? { body: trimString(args.body) } : {},
1467
1468
  priority: priority ?? "normal",
1468
1469
  ...dueAt === void 0 ? {} : { dueAt },
1469
1470
  ...projectId ? { projectId } : {},
@@ -1476,7 +1477,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
1476
1477
  outputDestinations: []
1477
1478
  },
1478
1479
  dependencies: dependsOnTaskIds,
1479
- context: conversationId ? [{
1480
+ context: args.includeConversationContext === false ? [] : conversationId ? [{
1480
1481
  targetKind: "session",
1481
1482
  targetId: conversationId,
1482
1483
  role: "input",
@@ -1889,7 +1890,7 @@ function createXopcUseTool(deps) {
1889
1890
  return {
1890
1891
  name: "xopc_use",
1891
1892
  label: "XOPC Use",
1892
- description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {objective, createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
1893
+ description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {title:\"Short task name\", objective:\"One-sentence outcome\", body:\"Full Markdown task brief\", createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
1893
1894
  parameters: XopcUseToolSchema,
1894
1895
  mutatesWorkspace: true,
1895
1896
  mutationScope: "external",
@@ -9,7 +9,7 @@ export declare class AgentCatalogService {
9
9
  resumePendingProvisioning(): Promise<void>;
10
10
  /** Startup recovery for catalog rows committed before their directories were provisioned. */
11
11
  resumePendingProvisioningSync(): void;
12
- update(agentIdRaw: string, patch: Partial<Omit<AgentEntry, 'id'>>): Promise<StoredAgent>;
12
+ update(agentIdRaw: string, patch: Partial<Omit<AgentEntry, 'id'>>, expectedRevision?: number): Promise<StoredAgent>;
13
13
  /** Remove data for an Agent that has already been deleted from the catalog. */
14
14
  purgeEntryData(entry: AgentEntry, defaultAgentId: string): Promise<void>;
15
15
  validatePurgeEntry(entry: AgentEntry, defaultAgentId: string): void;
@@ -59,10 +59,11 @@ var AgentCatalogService = class {
59
59
  }
60
60
  this.resumePendingPurgeSync();
61
61
  }
62
- async update(agentIdRaw, patch) {
62
+ async update(agentIdRaw, patch, expectedRevision) {
63
63
  const agentId = normalizeAgentId(agentIdRaw);
64
64
  const current = this.repository.get(agentId);
65
65
  if (!current) throw new Error(`Agent "${agentId}" not found`);
66
+ if (expectedRevision !== void 0 && current.revision !== expectedRevision) throw new Error("Agent revision conflict");
66
67
  const { revision, provisioningState: _state, provisioningError: _error, createdAt: _created, updatedAt: _updated, deletedAt: _deleted, ...entry } = current;
67
68
  const next = {
68
69
  ...entry,
@@ -1,5 +1,5 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema } from "./schema.js";
2
+ import { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema } from "./schema.js";
3
3
  import { init_resolver, resolveEffectiveAgentConfig } from "./resolver.js";
4
4
  //#region src/agent-config/index.ts
5
5
  var init_agent_config = __esmMin((() => {
@@ -8,4 +8,4 @@ var init_agent_config = __esmMin((() => {
8
8
  }));
9
9
  //#endregion
10
10
  init_agent_config();
11
- export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_agent_config, resolveEffectiveAgentConfig };
11
+ export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_agent_config, resolveEffectiveAgentConfig };
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-v4-flash";
2
+ export declare const DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-flash";
3
3
  export declare const DEFAULT_CORE_SKILLS: readonly ["doc-coauthoring", "define-task", "find-skills", "summarize"];
4
4
  export declare const DEFAULT_SKILL_POLICY: {
5
5
  mode: "selected";
@@ -136,6 +136,15 @@ export declare const WorkflowPolicySchema: z.ZodObject<{
136
136
  allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
137
  }, z.core.$strict>;
138
138
  export declare const RuntimePolicySchema: z.ZodObject<{
139
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
140
+ low: "low";
141
+ high: "high";
142
+ off: "off";
143
+ medium: "medium";
144
+ minimal: "minimal";
145
+ xhigh: "xhigh";
146
+ max: "max";
147
+ }>>;
139
148
  commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
140
149
  mode: z.ZodLiteral<"host">;
141
150
  }, z.core.$strict>, z.ZodObject<{
@@ -215,6 +224,15 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
215
224
  allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
216
225
  }, z.core.$strict>>;
217
226
  runtime: z.ZodDefault<z.ZodObject<{
227
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
228
+ low: "low";
229
+ high: "high";
230
+ off: "off";
231
+ medium: "medium";
232
+ minimal: "minimal";
233
+ xhigh: "xhigh";
234
+ max: "max";
235
+ }>>;
218
236
  commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
219
237
  mode: z.ZodLiteral<"host">;
220
238
  }, z.core.$strict>, z.ZodObject<{
@@ -241,6 +259,35 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
241
259
  }, z.core.$strict>>;
242
260
  }, z.core.$strict>>;
243
261
  }, z.core.$strict>;
262
+ export declare const ResponsePreferencesSchema: z.ZodObject<{
263
+ addressAs: z.ZodOptional<z.ZodString>;
264
+ guidance: z.ZodOptional<z.ZodString>;
265
+ warmth: z.ZodOptional<z.ZodEnum<{
266
+ balanced: "balanced";
267
+ reserved: "reserved";
268
+ gentle: "gentle";
269
+ }>>;
270
+ humor: z.ZodOptional<z.ZodEnum<{
271
+ none: "none";
272
+ occasional: "occasional";
273
+ playful: "playful";
274
+ }>>;
275
+ supportMode: z.ZodOptional<z.ZodEnum<{
276
+ listen: "listen";
277
+ untangle: "untangle";
278
+ solutions: "solutions";
279
+ }>>;
280
+ detailLevel: z.ZodOptional<z.ZodEnum<{
281
+ brief: "brief";
282
+ balanced: "balanced";
283
+ detailed: "detailed";
284
+ }>>;
285
+ proactivity: z.ZodOptional<z.ZodEnum<{
286
+ open: "open";
287
+ decisions: "decisions";
288
+ important: "important";
289
+ }>>;
290
+ }, z.core.$strict>;
244
291
  export declare const AgentProfileSchema: z.ZodObject<{
245
292
  name: z.ZodString;
246
293
  description: z.ZodOptional<z.ZodString>;
@@ -249,6 +296,35 @@ export declare const AgentProfileSchema: z.ZodObject<{
249
296
  language: z.ZodOptional<z.ZodString>;
250
297
  emoji: z.ZodOptional<z.ZodString>;
251
298
  avatar: z.ZodOptional<z.ZodString>;
299
+ responsePreferences: z.ZodOptional<z.ZodObject<{
300
+ addressAs: z.ZodOptional<z.ZodString>;
301
+ guidance: z.ZodOptional<z.ZodString>;
302
+ warmth: z.ZodOptional<z.ZodEnum<{
303
+ balanced: "balanced";
304
+ reserved: "reserved";
305
+ gentle: "gentle";
306
+ }>>;
307
+ humor: z.ZodOptional<z.ZodEnum<{
308
+ none: "none";
309
+ occasional: "occasional";
310
+ playful: "playful";
311
+ }>>;
312
+ supportMode: z.ZodOptional<z.ZodEnum<{
313
+ listen: "listen";
314
+ untangle: "untangle";
315
+ solutions: "solutions";
316
+ }>>;
317
+ detailLevel: z.ZodOptional<z.ZodEnum<{
318
+ brief: "brief";
319
+ balanced: "balanced";
320
+ detailed: "detailed";
321
+ }>>;
322
+ proactivity: z.ZodOptional<z.ZodEnum<{
323
+ open: "open";
324
+ decisions: "decisions";
325
+ important: "important";
326
+ }>>;
327
+ }, z.core.$strict>>;
252
328
  instructions: z.ZodOptional<z.ZodString>;
253
329
  }, z.core.$strict>;
254
330
  export declare const AgentEntrySchema: z.ZodObject<{
@@ -263,6 +339,35 @@ export declare const AgentEntrySchema: z.ZodObject<{
263
339
  language: z.ZodOptional<z.ZodString>;
264
340
  emoji: z.ZodOptional<z.ZodString>;
265
341
  avatar: z.ZodOptional<z.ZodString>;
342
+ responsePreferences: z.ZodOptional<z.ZodObject<{
343
+ addressAs: z.ZodOptional<z.ZodString>;
344
+ guidance: z.ZodOptional<z.ZodString>;
345
+ warmth: z.ZodOptional<z.ZodEnum<{
346
+ balanced: "balanced";
347
+ reserved: "reserved";
348
+ gentle: "gentle";
349
+ }>>;
350
+ humor: z.ZodOptional<z.ZodEnum<{
351
+ none: "none";
352
+ occasional: "occasional";
353
+ playful: "playful";
354
+ }>>;
355
+ supportMode: z.ZodOptional<z.ZodEnum<{
356
+ listen: "listen";
357
+ untangle: "untangle";
358
+ solutions: "solutions";
359
+ }>>;
360
+ detailLevel: z.ZodOptional<z.ZodEnum<{
361
+ brief: "brief";
362
+ balanced: "balanced";
363
+ detailed: "detailed";
364
+ }>>;
365
+ proactivity: z.ZodOptional<z.ZodEnum<{
366
+ open: "open";
367
+ decisions: "decisions";
368
+ important: "important";
369
+ }>>;
370
+ }, z.core.$strict>>;
266
371
  instructions: z.ZodOptional<z.ZodString>;
267
372
  }, z.core.$strict>>;
268
373
  models: z.ZodOptional<z.ZodObject<{
@@ -320,6 +425,15 @@ export declare const AgentEntrySchema: z.ZodObject<{
320
425
  allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
321
426
  }, z.core.$strict>>;
322
427
  runtime: z.ZodOptional<z.ZodObject<{
428
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
429
+ low: "low";
430
+ high: "high";
431
+ off: "off";
432
+ medium: "medium";
433
+ minimal: "minimal";
434
+ xhigh: "xhigh";
435
+ max: "max";
436
+ }>>;
323
437
  commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
324
438
  mode: z.ZodLiteral<"host">;
325
439
  }, z.core.$strict>, z.ZodObject<{
@@ -358,6 +472,35 @@ export declare const EffectiveAgentConfigSchema: z.ZodObject<{
358
472
  language: z.ZodOptional<z.ZodString>;
359
473
  emoji: z.ZodOptional<z.ZodString>;
360
474
  avatar: z.ZodOptional<z.ZodString>;
475
+ responsePreferences: z.ZodOptional<z.ZodObject<{
476
+ addressAs: z.ZodOptional<z.ZodString>;
477
+ guidance: z.ZodOptional<z.ZodString>;
478
+ warmth: z.ZodOptional<z.ZodEnum<{
479
+ balanced: "balanced";
480
+ reserved: "reserved";
481
+ gentle: "gentle";
482
+ }>>;
483
+ humor: z.ZodOptional<z.ZodEnum<{
484
+ none: "none";
485
+ occasional: "occasional";
486
+ playful: "playful";
487
+ }>>;
488
+ supportMode: z.ZodOptional<z.ZodEnum<{
489
+ listen: "listen";
490
+ untangle: "untangle";
491
+ solutions: "solutions";
492
+ }>>;
493
+ detailLevel: z.ZodOptional<z.ZodEnum<{
494
+ brief: "brief";
495
+ balanced: "balanced";
496
+ detailed: "detailed";
497
+ }>>;
498
+ proactivity: z.ZodOptional<z.ZodEnum<{
499
+ open: "open";
500
+ decisions: "decisions";
501
+ important: "important";
502
+ }>>;
503
+ }, z.core.$strict>>;
361
504
  instructions: z.ZodOptional<z.ZodString>;
362
505
  }, z.core.$strict>>;
363
506
  models: z.ZodObject<{
@@ -414,6 +557,15 @@ export declare const EffectiveAgentConfigSchema: z.ZodObject<{
414
557
  allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
415
558
  }, z.core.$strict>;
416
559
  runtime: z.ZodObject<{
560
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
561
+ low: "low";
562
+ high: "high";
563
+ off: "off";
564
+ medium: "medium";
565
+ minimal: "minimal";
566
+ xhigh: "xhigh";
567
+ max: "max";
568
+ }>>;
417
569
  commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
418
570
  mode: z.ZodLiteral<"host">;
419
571
  }, z.core.$strict>, z.ZodObject<{
@@ -1,9 +1,9 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { z } from "zod";
3
3
  //#region src/agent-config/schema.ts
4
- var DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, AgentIdSchema, ModelRefSchema, ModelRouteSchema, ImageGenerationRouteSchema, ComputerModelRouteSchema, ModelIntentSchema, ModelIntentRoutesSchema, ModelIntentOverridesSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, ToolModeSchema, ToolPolicySchema, ToolPoliciesSchema, SkillDefaultsSchema, SkillOverrideSchema, WorkflowPolicySchema, RuntimePolicySchema, AgentDefaultsSchema, AgentProfileSchema, AgentEntrySchema, EffectiveAgentConfigSchema;
4
+ var DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, AgentIdSchema, ModelRefSchema, ModelRouteSchema, ImageGenerationRouteSchema, ComputerModelRouteSchema, ModelIntentSchema, ModelIntentRoutesSchema, ModelIntentOverridesSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, ToolModeSchema, ToolPolicySchema, ToolPoliciesSchema, SkillDefaultsSchema, SkillOverrideSchema, WorkflowPolicySchema, RuntimePolicySchema, AgentDefaultsSchema, ResponsePreferencesSchema, AgentProfileSchema, AgentEntrySchema, EffectiveAgentConfigSchema;
5
5
  var init_schema = __esmMin((() => {
6
- DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-v4-flash";
6
+ DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-flash";
7
7
  DEFAULT_CORE_SKILLS = [
8
8
  "doc-coauthoring",
9
9
  "define-task",
@@ -92,6 +92,15 @@ var init_schema = __esmMin((() => {
92
92
  allowed: z.array(z.string().min(1)).optional()
93
93
  }).strict();
94
94
  RuntimePolicySchema = z.object({
95
+ thinkingLevel: z.enum([
96
+ "off",
97
+ "minimal",
98
+ "low",
99
+ "medium",
100
+ "high",
101
+ "xhigh",
102
+ "max"
103
+ ]).optional(),
95
104
  commandIsolation: z.discriminatedUnion("mode", [z.object({ mode: z.literal("host") }).strict(), z.object({
96
105
  mode: z.literal("docker"),
97
106
  image: z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9./:_-]*@sha256:[a-f0-9]{64}$/),
@@ -113,6 +122,35 @@ var init_schema = __esmMin((() => {
113
122
  workflows: WorkflowPolicySchema.default({}),
114
123
  runtime: RuntimePolicySchema.default({})
115
124
  }).strict();
125
+ ResponsePreferencesSchema = z.object({
126
+ addressAs: z.string().trim().max(60).optional(),
127
+ guidance: z.string().trim().max(500).optional(),
128
+ warmth: z.enum([
129
+ "reserved",
130
+ "balanced",
131
+ "gentle"
132
+ ]).optional(),
133
+ humor: z.enum([
134
+ "none",
135
+ "occasional",
136
+ "playful"
137
+ ]).optional(),
138
+ supportMode: z.enum([
139
+ "listen",
140
+ "untangle",
141
+ "solutions"
142
+ ]).optional(),
143
+ detailLevel: z.enum([
144
+ "brief",
145
+ "balanced",
146
+ "detailed"
147
+ ]).optional(),
148
+ proactivity: z.enum([
149
+ "decisions",
150
+ "important",
151
+ "open"
152
+ ]).optional()
153
+ }).strict();
116
154
  AgentProfileSchema = z.object({
117
155
  name: z.string().trim().min(1),
118
156
  description: z.string().trim().optional(),
@@ -121,6 +159,7 @@ var init_schema = __esmMin((() => {
121
159
  language: z.string().trim().optional(),
122
160
  emoji: z.string().trim().optional(),
123
161
  avatar: z.string().trim().optional(),
162
+ responsePreferences: ResponsePreferencesSchema.optional(),
124
163
  instructions: z.string().trim().min(1).optional()
125
164
  }).strict();
126
165
  AgentEntrySchema = z.object({
@@ -150,4 +189,4 @@ var init_schema = __esmMin((() => {
150
189
  }));
151
190
  //#endregion
152
191
  init_schema();
153
- export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema };
192
+ export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema };
@@ -37,8 +37,18 @@ const thinkCommand = {
37
37
  content: `❌ Invalid thinking level: ${args}\n\nAvailable levels: ${formatThinkingLevels()}\n\nUsage: /think <level>\nExample: /think high`,
38
38
  success: false
39
39
  };
40
- await setSessionAgentField(ctx.getSessionConfigStore?.(), ctx.conversationId, "thinkingLevel", level);
41
- ctx.syncAgentThinkingLevel?.(level);
40
+ if (ctx.setThinkingLevel) try {
41
+ await ctx.setThinkingLevel(level);
42
+ } catch (error) {
43
+ return {
44
+ content: error instanceof Error ? error.message : "Unable to change thinking level",
45
+ success: false
46
+ };
47
+ }
48
+ else {
49
+ await setSessionAgentField(ctx.getSessionConfigStore?.(), ctx.conversationId, "thinkingLevel", level);
50
+ ctx.syncAgentThinkingLevel?.(level);
51
+ }
42
52
  return {
43
53
  content: `🧠 *Thinking Level Set*\n\nLevel: *${level}*\n${{
44
54
  off: "No thinking",
@@ -1,6 +1,7 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
4
+ import { resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
4
5
  import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
5
6
  import { getProjectForSession } from "../projects/workspace.js";
6
7
  import { getSessionDisplayName } from "./session-key.js";
@@ -208,6 +209,8 @@ var CommandContextImpl = class {
208
209
  * Get current thinking level (session override or default)
209
210
  */
210
211
  async getThinkingLevel() {
212
+ const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
213
+ if (configured) return configured;
211
214
  const configStore = this.deps.sessionConfigStore;
212
215
  if (configStore) {
213
216
  const sessionConfig = await configStore.get(this.conversationId);
@@ -218,12 +221,15 @@ var CommandContextImpl = class {
218
221
  * Set thinking level for this session
219
222
  */
220
223
  async setThinkingLevel(level) {
224
+ const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
225
+ if (configured && level !== configured) throw new Error(`This agent uses thinking ${configured}`);
221
226
  const configStore = this.deps.sessionConfigStore;
222
227
  if (configStore) await configStore.update(this.conversationId, { thinkingLevel: level });
223
228
  this.deps.applySessionThinkingLevel?.(this.conversationId, level);
224
229
  }
225
230
  syncAgentThinkingLevel(level) {
226
- this.deps.applySessionThinkingLevel?.(this.conversationId, level);
231
+ const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
232
+ this.deps.applySessionThinkingLevel?.(this.conversationId, configured ?? level);
227
233
  }
228
234
  async compactSession(options) {
229
235
  if (!this.deps.compactSession) return null;
@@ -4,10 +4,10 @@ import { CredentialResolver, init_credentials } from "../../auth/credentials.js"
4
4
  import { getAllProviders, init_providers } from "../../providers/index.js";
5
5
  import { formatExamples, register } from "../registry.js";
6
6
  import { disconnectProvider } from "../../providers/provider-disconnect.js";
7
+ import { colorizeStatus, colors } from "../utils/colors.js";
7
8
  import { listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
8
9
  import "../../auth/profiles/index.js";
9
10
  import { getOAuthProvider, getSupportedOAuthProviders } from "../utils/oauth-providers.js";
10
- import { colorizeStatus, colors } from "../utils/colors.js";
11
11
  import { runCliOAuthLogin } from "../utils/oauth-login.js";
12
12
  import { Command } from "commander";
13
13
  //#region src/cli/commands/auth.ts
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
53
53
  id: "database-schema",
54
54
  label: "Database schema",
55
55
  status: "pass",
56
- message: `SQLite schema v${status.dbVersion} (current release v228).`,
56
+ message: `SQLite schema v${status.dbVersion} (current release v229).`,
57
57
  hints: []
58
58
  };
59
59
  }
@@ -106,7 +106,7 @@ async function runModelsList(options) {
106
106
  }
107
107
  }
108
108
  console.log("\nUsage:");
109
- console.log(" xopc models set deepseek/deepseek-v4-flash");
109
+ console.log(" xopc models set deepseek/deepseek-flash");
110
110
  console.log(" xopc models auth login --provider anthropic");
111
111
  console.log(" xopc models auth paste-api-key --provider deepseek");
112
112
  }
@@ -210,7 +210,7 @@ function createModelsCommand(_ctx) {
210
210
  const cmd = new Command("models").description("List and manage models and model auth").addHelpText("after", formatExamples([
211
211
  "xopc models list",
212
212
  "xopc models status",
213
- "xopc models set deepseek/deepseek-v4-flash",
213
+ "xopc models set deepseek/deepseek-flash",
214
214
  "xopc models auth list",
215
215
  "xopc models auth login --provider anthropic",
216
216
  "xopc models auth paste-api-key --provider deepseek"
@@ -12,10 +12,10 @@ import { discoverProviderModels, isProviderApiDiscoverable } from "../../../prov
12
12
  import { getXopcCloudCatalogCoordinator } from "../../../providers/xopc-cloud-catalog-coordinator.js";
13
13
  import { getDomesticProviderBaseUrl, getDomesticProviderPreset, getDomesticProviderPresetIds, providerConfigFromDomesticPreset } from "../../../providers/domestic-presets.js";
14
14
  import { getProviderHint, getRecommendedModelsForProvider, sortModelsForPicker, sortProvidersForPicker } from "../../../providers/presentation.js";
15
+ import { colors } from "../../utils/colors.js";
15
16
  import { listProfilesForProvider } from "../../../auth/profiles/profiles.js";
16
17
  import "../../../auth/profiles/index.js";
17
18
  import { getOAuthProvider } from "../../utils/oauth-providers.js";
18
- import { colors } from "../../utils/colors.js";
19
19
  import { runCliOAuthLogin } from "../../utils/oauth-login.js";
20
20
  import { confirm, input, select } from "@inquirer/prompts";
21
21
  //#region src/cli/commands/onboard/model.ts