@chatcode/chatcode-cli 3.0.2 → 3.0.4-rc.1

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 (221) hide show
  1. package/README.i18n.yaml +10 -10
  2. package/README.md +26 -1
  3. package/README.zh.md +26 -1
  4. package/lib/bin.js +70 -75
  5. package/lib/{command-errors-CIYn1nnW.js → command-errors-BkCHTQHj.js} +12 -12
  6. package/lib/{command-trees-8o99Bws7.js → command-trees-5HFyC5sI.js} +2 -2
  7. package/lib/{component-identity-CnmIKHEF.js → component-identity-De91VHwW.js} +3 -3
  8. package/lib/{dist-DxjlHHph.js → dist-CsDWUvQ4.js} +238 -232
  9. package/lib/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -0
  10. package/lib/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -0
  11. package/lib/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -0
  12. package/lib/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -0
  13. package/lib/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -0
  14. package/lib/dsh-ecosystem-spec/protocols/tui-channel.js +166 -0
  15. package/lib/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -0
  16. package/lib/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -0
  17. package/lib/dsh-ecosystem-spec/registry/README.md +14 -0
  18. package/lib/dsh-ecosystem-spec/registry/contracts/decision-events-v1alpha1.json +13 -0
  19. package/lib/dsh-ecosystem-spec/registry/contracts/scene-v1alpha1.json +13 -0
  20. package/lib/dsh-ecosystem-spec/registry/contracts/settings-section-v1alpha1.json +13 -0
  21. package/lib/dsh-ecosystem-spec/registry/contracts/tui-channel-v1alpha1.json +30 -0
  22. package/lib/dsh-ecosystem-spec/registry/contracts/workspace-provider-v1alpha1.json +6 -0
  23. package/lib/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -0
  24. package/lib/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -0
  25. package/lib/dsh-ecosystem-spec/registry/registry-0.15.json +149 -0
  26. package/lib/dsh-ecosystem-spec/schemas/conformance-claim.schema.json +15 -0
  27. package/lib/dsh-ecosystem-spec/schemas/effect-ledger-record.schema.json +16 -0
  28. package/lib/dsh-ecosystem-spec/schemas/host-descriptor.schema.json +26 -0
  29. package/lib/{dump-config-BSTrhTT_.js → dump-config-BcH-VYuv.js} +5 -5
  30. package/lib/dump-config-CyopmD85.js +2 -0
  31. package/lib/{dump-config-schema-Cz4A13GB.js → dump-config-schema-DM0fb6Ns.js} +2 -2
  32. package/lib/{extension-events-DciGPKJa.js → extension-events-CdYCRP0o.js} +26 -26
  33. package/lib/{frames-7PAg0Q9b.js → frames-DOX-Jgk8.js} +4 -4
  34. package/lib/headless-compat.js +2 -2
  35. package/lib/{home-migration-DLaSvmfn.js → home-migration-BjDmRwBB.js} +23 -4
  36. package/lib/{host-access-CmD27uhQ.js → host-access-Bk4xps5E.js} +1 -1
  37. package/lib/{keymap-CFChEJ2W.js → keymap-CJ1kvLR2.js} +17 -16
  38. package/lib/{plugin-jvd9PCVt.js → plugin-XR7ncbnW.js} +3767 -2331
  39. package/lib/{plugin-DYHtreEd.js → plugin-eJjD6r12.js} +1 -1
  40. package/lib/{profile-boot-Blq7uqhx.js → profile-boot-BNQry1NM.js} +109 -14
  41. package/lib/profile-boot.js +2 -2
  42. package/lib/{scenes-ai_8sHDs.js → scenes-CAmWncZD.js} +3 -3
  43. package/lib/{settings-sections-QQ1-2lhL.js → settings-sections-CakcvBv9.js} +7 -3
  44. package/lib/startup-diagnostics-C_hRCp-q.js +91 -0
  45. package/lib/statusBarSettings-BPPS_Usm.js +382 -0
  46. package/lib/{supports-color-CcW-FGjr.js → supports-color-DyChQwlI.js} +2 -2
  47. package/lib/{themes-DTzG_9I_.js → themes-OjcUpZzw.js} +13 -13
  48. package/lib/tui-compat-command-trees.js +1 -1
  49. package/lib/tui-compat-extensions.js +4 -4
  50. package/lib/tui-compat-plugin-host.js +5 -5
  51. package/lib/tui-compat-scenes.js +1 -1
  52. package/lib/tui-compat-settings-sections.js +1 -1
  53. package/lib/tui-compat-working-activity.js +4 -4
  54. package/lib/tui-compat-workspaces.js +1 -1
  55. package/lib/tui-compat.js +44 -29
  56. package/lib/types/args.d.ts +2 -0
  57. package/lib/types/home-migration.d.ts +8 -0
  58. package/lib/types/permission-bypass.d.ts +16 -0
  59. package/lib/types/profile-boot.d.ts +12 -0
  60. package/lib/types/startup-diagnostics.d.ts +13 -0
  61. package/lib/types/tui-compat.d.ts +6 -0
  62. package/lib/types/web-browser.d.ts +6 -0
  63. package/lib/types/web-instance.d.ts +42 -0
  64. package/lib/web-browser-Vcgfdsv_.js +46 -0
  65. package/lib/web-instance-B0jec7cq.js +2 -0
  66. package/lib/web-instance-DbP7IHPv.js +280 -0
  67. package/lib/{workspaces-CznCgVHv.js → workspaces-XY7UdfXp.js} +2 -2
  68. package/package.json +40 -32
  69. package/runtime/manifest.json +4 -6
  70. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +34 -4
  71. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/types/index.d.ts +9 -0
  72. package/runtime/node_modules/@deepseek-ai/dsh-agent-preset/skills/cordis-composition-reference/references/packages.md +2 -1
  73. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/client.js +2 -0
  74. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/remote-stream.js +4 -0
  75. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/client.js +39 -0
  76. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/index.js +6 -1
  77. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.host.js +10 -3
  78. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.remote-client.js +7 -0
  79. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/catalog.js +8 -1
  80. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/types.d.ts +10 -0
  81. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/index.js +28 -1
  82. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.host.js +39 -0
  83. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.d.ts +2 -0
  84. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.js +32 -0
  85. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.d.ts +8 -0
  86. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.js +19 -1
  87. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/index.js +28 -0
  88. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/feed.js +17 -0
  89. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +67 -19
  90. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/index.d.ts +1 -1
  91. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +11 -1
  92. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/worker/profile-resolution-bootstrap.js +22 -3
  93. package/runtime/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +9 -3
  94. package/runtime/node_modules/@deepseek-ai/dsh-base/package.json +2 -1
  95. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +3 -2
  96. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/types/index.d.ts +2 -2
  97. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +1 -1
  98. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
  99. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +60 -12
  100. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +3 -1
  101. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/locales.d.ts +6 -0
  102. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css +3 -5
  103. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css +23 -27
  104. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings/lib/types/client/contract/slots.d.ts +3 -1
  105. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  106. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/types/index.d.ts +2 -2
  107. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +8 -7
  108. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +1 -1
  109. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/settings-document-store.d.ts +2 -1
  110. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +33 -12
  111. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
  112. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
  113. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
  114. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
  115. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +8 -1
  116. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +2 -0
  117. package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/index.js +84 -8
  118. package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/types/region.d.ts +9 -0
  119. package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/types/summarizer.d.ts +7 -0
  120. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/index.js +35 -0
  121. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.d.ts +11 -0
  122. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.js +10 -0
  123. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.d.ts +28 -0
  124. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.js +36 -0
  125. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/package.json +42 -0
  126. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +102 -14
  127. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/types/index.d.ts +34 -4
  128. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/package.json +1 -0
  129. package/runtime/node_modules/@deepseek-ai/dsh-host-webserver/lib/index.js +2 -1
  130. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/index.js +21 -8
  131. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.d.ts +4 -6
  132. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.js +18 -7
  133. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +3 -8
  134. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/types/client/HeaderAction.d.ts +1 -1
  135. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/index.js +5 -4
  136. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.d.ts +4 -3
  137. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.js +4 -3
  138. package/runtime/node_modules/@deepseek-ai/dsh-skill/lib/types/index.d.ts +1 -1
  139. package/runtime/node_modules/@deepseek-ai/dsh-skill-filesystem/lib/index.js +7 -1
  140. package/runtime/node_modules/@deepseek-ai/dsh-storage/lib/types/backend.d.ts +4 -0
  141. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/index.js +60 -0
  142. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/types/domain.d.ts +15 -0
  143. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js +25 -0
  144. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -0
  145. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/index.js +5472 -0
  146. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/command-args.d.ts +17 -0
  147. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/cicd.d.ts +8 -0
  148. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/tianti.d.ts +7 -0
  149. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti-deliver/tianti-deliver.d.ts +8 -0
  150. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/config.d.ts +27 -0
  151. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/index.d.ts +12 -0
  152. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/memory-config.d.ts +10 -0
  153. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/runtime.d.ts +105 -0
  154. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/aliases.d.ts +11 -0
  155. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/auth.d.ts +20 -0
  156. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/client.d.ts +206 -0
  157. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/config.d.ts +20 -0
  158. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/index.d.ts +6 -0
  159. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/log.d.ts +16 -0
  160. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/types.d.ts +136 -0
  161. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/codebase.d.ts +19 -0
  162. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/dynamicWorkflow.d.ts +10 -0
  163. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/engine.d.ts +8 -0
  164. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executor.d.ts +11 -0
  165. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executors.d.ts +15 -0
  166. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/index.d.ts +23 -0
  167. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/memorySuggestions.d.ts +12 -0
  168. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/openspec.d.ts +31 -0
  169. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/recommend.d.ts +8 -0
  170. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/render.d.ts +8 -0
  171. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/requirementContext.d.ts +12 -0
  172. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/scenarioUpgrade.d.ts +24 -0
  173. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/state.d.ts +16 -0
  174. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/store.d.ts +33 -0
  175. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/templates.d.ts +8 -0
  176. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/types.d.ts +385 -0
  177. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/writeReviewSync.d.ts +6 -0
  178. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/index.d.ts +29 -0
  179. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/store.d.ts +20 -0
  180. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/types.d.ts +49 -0
  181. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/tools.d.ts +12 -0
  182. package/runtime/node_modules/@deepseek-ai/dsh-tianti/package.json +55 -0
  183. package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +57 -13
  184. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/cordis.patch.yml +2 -1
  185. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/ptc.patch.yml +2 -1
  186. package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/standard.patch.yml +2 -1
  187. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-D5kpKf--.css +1 -0
  188. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js +133 -0
  189. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js.map +1 -0
  190. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-apple-touch-icon.png +0 -0
  191. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-icon-32.png +0 -0
  192. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-mask-icon.svg +1 -0
  193. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon-dark.svg +1 -3
  194. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.ico +0 -0
  195. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.svg +1 -3
  196. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +8 -4
  197. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +8 -4
  198. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/package.json +2 -1
  199. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +110 -33
  200. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.d.ts +6 -0
  201. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.js +23 -17
  202. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +10 -0
  203. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +95 -21
  204. package/lib/dump-config-DBW7YLx-.js +0 -2
  205. package/lib/tuiDisplayPrefs-BCHRRcfe.js +0 -162
  206. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-DUvMhLle.css +0 -1
  207. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js +0 -127
  208. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js.map +0 -1
  209. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/README.md +0 -9
  210. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/bin/system.node +0 -0
  211. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/package.json +0 -31
  212. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/prebuilds.json +0 -6
  213. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/README.md +0 -9
  214. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/package.json +0 -31
  215. package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/prebuilds.json +0 -6
  216. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/README.md +0 -11
  217. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/package.json +0 -31
  218. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/prebuilds.json +0 -24
  219. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/README.md +0 -11
  220. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/package.json +0 -31
  221. package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/prebuilds.json +0 -24
@@ -13,11 +13,11 @@ export interface Config {
13
13
  }
14
14
  /** Live preferences projected to the browser. */
15
15
  export declare const Config: z<Schemastery.ObjectS<NoInfer<{
16
- transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "volatile-defined">;
16
+ transcriptView: z<"compact" | "detailed" | "standard" | "verbose" | "normal" | "expanded", "compact" | "detailed" | "standard" | "verbose" | "normal" | "expanded", "volatile-defined">;
17
17
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "volatile-defined">;
18
18
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "volatile-defined">;
19
19
  }>>, Schemastery.ObjectT<NoInfer<{
20
- transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "volatile-defined">;
20
+ transcriptView: z<"compact" | "detailed" | "standard" | "verbose" | "normal" | "expanded", "compact" | "detailed" | "standard" | "verbose" | "normal" | "expanded", "volatile-defined">;
21
21
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "volatile-defined">;
22
22
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "volatile-defined">;
23
23
  }>>, "plain">;
@@ -17092,7 +17092,7 @@ window.__ModuleLoader__.load({
17092
17092
  }
17093
17093
  //#endregion
17094
17094
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css.mjs
17095
- const css$1 = ".k_Uu_G_root{padding:0 var(--dsh-composer-side-clearance) 4px;flex-direction:column;align-items:center;display:flex}.k_Uu_G_dock{justify-content:center;align-items:center;gap:12px;max-width:100%;padding-top:4px;display:flex}.k_Uu_G_hero .k_Uu_G_dock:empty{display:none}.k_Uu_G_hero{padding:0 var(--dsh-composer-side-clearance)}.k_Uu_G_notice{width:100%;max-width:var(--dsh-composer-card-max-width);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.k_Uu_G_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-panel);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-elevation-soft);font-size:var(--dsh-content-font-size,14px);line-height:calc(24px + var(--dsh-content-font-delta,0px));--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:0;flex-direction:column;gap:12px;padding-top:8px;display:flex;position:relative}.k_Uu_G_cardWorkspaceTrigger{--dsw-elevation-stroke-color:transparent;cursor:pointer}.k_Uu_G_cardWorkspaceTrigger:after{content:\"\";box-sizing:border-box;border-radius:var(--dsw-radius-panel);color:var(--dsw-alias-border-l4);pointer-events:none;border:1px dashed;transition:color .1s;position:absolute;inset:0}.k_Uu_G_cardWorkspaceTrigger :disabled{pointer-events:none}.k_Uu_G_cardWorkspaceTrigger:hover:after{color:var(--dsw-alias-state-business-primary)}.k_Uu_G_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.k_Uu_G_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.k_Uu_G_scroll{max-height:var(--dsh-composer-text-max-height);margin-right:4px;overflow-y:auto}.k_Uu_G_scroll::-webkit-scrollbar-track{margin-top:8px}.k_Uu_G_grow{position:relative}.k_Uu_G_pending{corner-shape:round;background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate k_Uu_G_input-pending}@keyframes k_Uu_G_input-pending{0%{opacity:.35}to{opacity:1}}.k_Uu_G_input{box-sizing:border-box;min-height:36px;font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);outline:none;padding:4px 8px 0 14px}.k_Uu_G_input p{margin:0}.k_Uu_G_input p:last-child:after{content:var(--dsh-composer-hint);color:var(--dsw-alias-label-caption)}.k_Uu_G_input[data-composer-composing] p:last-child:after{content:none}.k_Uu_G_input[data-composer-composing]+.k_Uu_G_placeholder{visibility:hidden}.k_Uu_G_placeholder{color:var(--dsw-alias-label-caption);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;user-select:none;position:absolute;inset:4px 8px auto 14px;overflow:hidden}.k_Uu_G_inputDisabled{color:var(--dsw-alias-label-tertiary);cursor:not-allowed}.k_Uu_G_input[aria-haspopup=menu]{cursor:pointer}.k_Uu_G_hero .k_Uu_G_input{min-height:52px}.k_Uu_G_hero .k_Uu_G_placeholder{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.k_Uu_G_row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.k_Uu_G_row[data-model-compact]{--dsh-composer-model-text-display:none;--dsh-composer-model-icon-display:block}.k_Uu_G_tools,.k_Uu_G_modes,.k_Uu_G_trailing{align-items:center;min-width:0;display:flex}.k_Uu_G_tools,.k_Uu_G_modes{gap:12px}.k_Uu_G_trailing{flex:none;gap:12px;margin-left:auto}@container (width<=560px){.k_Uu_G_tools,.k_Uu_G_modes,.k_Uu_G_trailing{gap:8px}}.k_Uu_G_add{corner-shape:round;background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.k_Uu_G_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.k_Uu_G_add:disabled{opacity:.5;cursor:default}.k_Uu_G_select{border-radius:var(--dsw-radius-sm);max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.k_Uu_G_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.k_Uu_G_select:disabled{opacity:.5;cursor:default}.k_Uu_G_primary{corner-shape:round;background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.k_Uu_G_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.k_Uu_G_primary:disabled{opacity:.4;cursor:default}.k_Uu_G_retry{border-radius:var(--dsw-radius-sm);color:inherit;cursor:pointer;background:0 0;border:1px solid;margin-left:8px;padding:1px 8px;font-size:12px}.k_Uu_G_standardControls{align-items:center;gap:12px;min-width:0;display:flex}.k_Uu_G_tools[hidden],.k_Uu_G_standardControls[hidden]{display:none}.k_Uu_G_trailingActive{flex:1;margin-left:0}.k_Uu_G_activity{flex:none;align-items:center;display:flex}.k_Uu_G_activity:empty{display:none}.k_Uu_G_activityExpanded{flex:1;min-width:0}";
17095
+ const css$1 = ".k_Uu_G_root{padding:0 var(--dsh-composer-side-clearance) 4px;flex-direction:column;align-items:center;display:flex}.k_Uu_G_dock{justify-content:center;align-items:center;gap:12px;max-width:100%;padding-top:4px;display:flex}.k_Uu_G_hero .k_Uu_G_dock:empty{display:none}.k_Uu_G_hero{padding:0 var(--dsh-composer-side-clearance)}.k_Uu_G_notice{width:100%;max-width:var(--dsh-composer-card-max-width);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.k_Uu_G_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-panel);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-elevation-soft);font:var(--dsw-font-markdown-base);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:0;flex-direction:column;gap:12px;padding-top:8px;display:flex;position:relative}.k_Uu_G_cardWorkspaceTrigger{--dsw-elevation-stroke-color:transparent;cursor:pointer}.k_Uu_G_cardWorkspaceTrigger:after{content:\"\";box-sizing:border-box;border-radius:var(--dsw-radius-panel);color:var(--dsw-alias-border-l4);pointer-events:none;border:1px dashed;transition:color .1s;position:absolute;inset:0}.k_Uu_G_cardWorkspaceTrigger :disabled{pointer-events:none}.k_Uu_G_cardWorkspaceTrigger:hover:after{color:var(--dsw-alias-state-business-primary)}.k_Uu_G_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.k_Uu_G_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.k_Uu_G_scroll{max-height:var(--dsh-composer-text-max-height);margin-right:4px;overflow-y:auto}.k_Uu_G_scroll::-webkit-scrollbar-track{margin-top:8px}.k_Uu_G_grow{position:relative}.k_Uu_G_pending{corner-shape:round;background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate k_Uu_G_input-pending}@keyframes k_Uu_G_input-pending{0%{opacity:.35}to{opacity:1}}.k_Uu_G_input{box-sizing:border-box;min-height:36px;font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);outline:none;padding:4px 8px 0 14px}.k_Uu_G_input p{margin:0}.k_Uu_G_input p:last-child:after{content:var(--dsh-composer-hint);color:var(--dsw-alias-label-caption)}.k_Uu_G_input[data-composer-composing] p:last-child:after{content:none}.k_Uu_G_input[data-composer-composing]+.k_Uu_G_placeholder{visibility:hidden}.k_Uu_G_placeholder{color:var(--dsw-alias-label-caption);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;user-select:none;position:absolute;inset:4px 8px auto 14px;overflow:hidden}.k_Uu_G_inputDisabled{color:var(--dsw-alias-label-tertiary);cursor:not-allowed}.k_Uu_G_input[aria-haspopup=menu]{cursor:pointer}.k_Uu_G_hero .k_Uu_G_input{min-height:52px}.k_Uu_G_hero .k_Uu_G_placeholder{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.k_Uu_G_row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.k_Uu_G_row[data-model-compact]{--dsh-composer-model-text-display:none;--dsh-composer-model-icon-display:block}.k_Uu_G_tools,.k_Uu_G_modes,.k_Uu_G_trailing{align-items:center;min-width:0;display:flex}.k_Uu_G_tools,.k_Uu_G_modes{gap:12px}.k_Uu_G_trailing{flex:none;gap:12px;margin-left:auto}@container (width<=560px){.k_Uu_G_tools,.k_Uu_G_modes,.k_Uu_G_trailing{gap:8px}}.k_Uu_G_add{corner-shape:round;background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.k_Uu_G_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.k_Uu_G_add:disabled{opacity:.5;cursor:default}.k_Uu_G_select{border-radius:var(--dsw-radius-sm);max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.k_Uu_G_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.k_Uu_G_select:disabled{opacity:.5;cursor:default}.k_Uu_G_primary{corner-shape:round;background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.k_Uu_G_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.k_Uu_G_primary:disabled{opacity:.4;cursor:default}.k_Uu_G_retry{border-radius:var(--dsw-radius-sm);color:inherit;cursor:pointer;background:0 0;border:1px solid;margin-left:8px;padding:1px 8px;font-size:12px}.k_Uu_G_standardControls{align-items:center;gap:12px;min-width:0;display:flex}.k_Uu_G_tools[hidden],.k_Uu_G_standardControls[hidden]{display:none}.k_Uu_G_trailingActive{flex:1;margin-left:0}.k_Uu_G_activity{flex:none;align-items:center;display:flex}.k_Uu_G_activity:empty{display:none}.k_Uu_G_activityExpanded{flex:1;min-width:0}";
17096
17096
  const tagId$1 = "@deepseek-ai/dsh-client-ui-conversation/InputBar.module.css";
17097
17097
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
17098
17098
  const tag = document.createElement("style");
@@ -435,7 +435,7 @@ window.__ModuleLoader__.load({
435
435
  };
436
436
  //#endregion
437
437
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-goal/src/client/GoalCommandInputView.module.css.mjs
438
- const css = ".qGV2Nq_row{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.qGV2Nq_stack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;display:flex}.qGV2Nq_bubble{overflow-wrap:anywhere;border-radius:var(--dsw-radius-xl);background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));white-space:pre-wrap;padding:10px 16px}";
438
+ const css = ".qGV2Nq_row{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.qGV2Nq_stack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;display:flex}.qGV2Nq_bubble{overflow-wrap:anywhere;border-radius:var(--dsw-radius-xl);background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-base);white-space:pre-wrap;padding:10px 16px}";
439
439
  const tagId = "@deepseek-ai/dsh-client-ui-goal/GoalCommandInputView.module.css";
440
440
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
441
441
  const tag = document.createElement("style");
@@ -296,6 +296,7 @@ window.__ModuleLoader__.load({
296
296
  if (catalog.status !== "ready" || catalog.value === null || projected === void 0) {
297
297
  this.store.set({
298
298
  current: catalog.value === null ? null : this.store.getSnapshot().current,
299
+ ...catalog.value?.savedDisplayName === void 0 ? {} : { savedDisplayName: catalog.value.savedDisplayName },
299
300
  ...retainedEffort === void 0 ? {} : { retainedEffort },
300
301
  routable: null,
301
302
  groups: catalog.value?.groups ?? [],
@@ -310,6 +311,7 @@ window.__ModuleLoader__.load({
310
311
  const routable = catalog.value.groups.some((group) => group.id === selection.provider && group.models.some((model) => model.id === selection.model));
311
312
  this.store.set({
312
313
  current: selection,
314
+ ...catalog.value.savedDisplayName === void 0 ? {} : { savedDisplayName: catalog.value.savedDisplayName },
313
315
  ...retainedEffort === void 0 ? {} : { retainedEffort },
314
316
  routable,
315
317
  groups: catalog.value.groups,
@@ -413,7 +415,7 @@ window.__ModuleLoader__.load({
413
415
  }
414
416
  //#endregion
415
417
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-model-selection/src/client/ModelSelect.module.css.mjs
416
- const css = ".mVaOWa_root{min-width:0;position:relative}.mVaOWa_trigger{border-radius:var(--dsw-radius-sm);min-width:0;max-width:min(360px,45cqw);height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:400;line-height:20px;display:flex}.mVaOWa_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}.mVaOWa_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.mVaOWa_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mVaOWa_triggerEffort{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-caption);flex-shrink:1000;overflow:hidden}.mVaOWa_triggerIcon{display:var(--dsh-composer-model-icon-display,none);flex:none}.mVaOWa_triggerLabel,.mVaOWa_triggerEffort{display:var(--dsh-composer-model-text-display,block)}.mVaOWa_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s}.mVaOWa_chevronOpen{transform:rotate(180deg)}.mVaOWa_menu{z-index:1100;--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);width:max-content;min-width:min(240px,100vw - 32px);max-width:min(420px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--dsw-elevation-prominent);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:0;flex-direction:column;padding:4px;display:flex;position:fixed;overflow:hidden}.mVaOWa_status,.mVaOWa_empty{color:var(--dsw-alias-label-tertiary);padding:8px;font-size:12px;line-height:18px}.mVaOWa_error,.mVaOWa_warning{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:3px;padding:6px 7px;font-size:11px;line-height:16px;display:flex}.mVaOWa_warning{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-state-warn-label)}.mVaOWa_retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600}.mVaOWa_groups{min-height:0;overflow-y:auto}.mVaOWa_group+.mVaOWa_group{margin-top:3px}.mVaOWa_groupTitle{z-index:1;background:var(--dsw-specific-menu);color:var(--dsw-alias-label-tertiary);padding:4px 7px 2px;font-size:11px;font-weight:500;line-height:16px;position:sticky;top:0}.mVaOWa_option{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:auto;min-width:100%;min-height:34px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:6px;padding:5px 7px;display:flex}.mVaOWa_option:hover:not(:disabled),.mVaOWa_option:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_selected{background:0 0}.mVaOWa_option:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.mVaOWa_optionCopy{flex-direction:column;flex:1;min-width:0;display:flex}.mVaOWa_modelName{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:18px;overflow:hidden}.mVaOWa_check{color:var(--dsw-alias-label-primary);flex:0 0 14px;place-items:center;display:grid}.mVaOWa_check svg{width:14px;height:14px}.mVaOWa_cell{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:auto;min-width:100%;height:34px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0 8px;font-size:13px;line-height:20px;display:flex}.mVaOWa_cell:hover{background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_cellLabel{white-space:nowrap;flex:none}.mVaOWa_cellValue{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;overflow:hidden}.mVaOWa_cellChevron{width:12px;height:12px;color:var(--dsw-alias-menu-icon);flex:none}";
418
+ const css = ".mVaOWa_root{min-width:0;position:relative}.mVaOWa_trigger{border-radius:var(--dsw-radius-sm);min-width:0;max-width:min(360px,45cqw);height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:400;line-height:20px;display:flex}.mVaOWa_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}.mVaOWa_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.mVaOWa_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mVaOWa_triggerEffort{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-caption);flex-shrink:1000;overflow:hidden}.mVaOWa_triggerIcon{display:var(--dsh-composer-model-icon-display,none);flex:none}.mVaOWa_triggerLabel,.mVaOWa_triggerEffort{display:var(--dsh-composer-model-text-display,block)}.mVaOWa_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s}.mVaOWa_chevronOpen{transform:rotate(180deg)}.mVaOWa_menu{z-index:1100;--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);width:max-content;min-width:min(240px,100vw - 32px);max-width:min(420px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--dsw-elevation-prominent);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:0;flex-direction:column;padding:4px;display:flex;position:fixed;overflow:hidden}.mVaOWa_status,.mVaOWa_empty{color:var(--dsw-alias-label-tertiary);padding:8px;font-size:12px;line-height:18px}.mVaOWa_error,.mVaOWa_warning{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:3px;padding:6px 7px;font-size:11px;line-height:16px;display:flex}.mVaOWa_warning{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-state-warn-label)}.mVaOWa_retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600}.mVaOWa_groups{min-height:0;overflow-y:auto}.mVaOWa_group+.mVaOWa_group{margin-top:3px}.mVaOWa_groupTitle{z-index:1;background:linear-gradient(var(--dsw-specific-menu), var(--dsw-specific-menu)), var(--dsw-alias-bg-base);color:var(--dsw-alias-label-tertiary);padding:4px 7px 2px;font-size:11px;font-weight:500;line-height:16px;position:sticky;top:0}.mVaOWa_option{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:auto;min-width:100%;min-height:34px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:6px;padding:5px 7px;display:flex}.mVaOWa_option:hover:not(:disabled),.mVaOWa_option:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_selected{background:0 0}.mVaOWa_option:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.mVaOWa_optionCopy{flex-direction:column;flex:1;min-width:0;display:flex}.mVaOWa_modelHeading{align-items:center;gap:6px;min-width:0;display:flex}.mVaOWa_modelHeading>.mVaOWa_capabilityTag{border-radius:0;flex:none}.mVaOWa_modelName{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:18px;overflow:hidden}.mVaOWa_check{color:var(--dsw-alias-label-primary);flex:0 0 14px;place-items:center;display:grid}.mVaOWa_check svg{width:14px;height:14px}.mVaOWa_cell{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:auto;min-width:100%;height:34px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0 8px;font-size:13px;line-height:20px;display:flex}.mVaOWa_cell:hover{background:var(--dsw-alias-interactive-bg-hover)}.mVaOWa_cellLabel{white-space:nowrap;flex:none}.mVaOWa_cellValue{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;overflow:hidden}.mVaOWa_cellChevron{width:12px;height:12px;color:var(--dsw-alias-menu-icon);flex:none}";
417
419
  const tagId = "@deepseek-ai/dsh-client-ui-model-selection/ModelSelect.module.css";
418
420
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
419
421
  const tag = document.createElement("style");
@@ -423,6 +425,7 @@ window.__ModuleLoader__.load({
423
425
  document.head.appendChild(tag);
424
426
  }
425
427
  var ModelSelect_module_css_default = {
428
+ "capabilityTag": "mVaOWa_capabilityTag",
426
429
  "cell": "mVaOWa_cell",
427
430
  "cellChevron": "mVaOWa_cellChevron",
428
431
  "cellLabel": "mVaOWa_cellLabel",
@@ -436,6 +439,7 @@ window.__ModuleLoader__.load({
436
439
  "groupTitle": "mVaOWa_groupTitle",
437
440
  "groups": "mVaOWa_groups",
438
441
  "menu": "mVaOWa_menu",
442
+ "modelHeading": "mVaOWa_modelHeading",
439
443
  "modelName": "mVaOWa_modelName",
440
444
  "option": "mVaOWa_option",
441
445
  "optionCopy": "mVaOWa_optionCopy",
@@ -519,6 +523,27 @@ window.__ModuleLoader__.load({
519
523
  ...model.reasoning?.defaultEffort === void 0 ? {} : { reasoningEffort: model.reasoning.defaultEffort }
520
524
  }
521
525
  }))), [groups]);
526
+ const sections = (0, react.useMemo)(() => {
527
+ const result = [];
528
+ for (const group of groups) {
529
+ const sectionId = group.custom === true ? "custom-models" : group.id;
530
+ let section = result.find((candidate) => candidate.id === sectionId);
531
+ if (section === void 0) {
532
+ section = {
533
+ id: sectionId,
534
+ name: group.custom === true ? t("provider.custom") : group.id === "deepseek-account" ? t("provider.account") : group.name,
535
+ choices: []
536
+ };
537
+ result.push(section);
538
+ }
539
+ section.choices.push(...choices.filter((choice) => choice.group.id === group.id));
540
+ }
541
+ return result;
542
+ }, [
543
+ groups,
544
+ choices,
545
+ t
546
+ ]);
522
547
  const currentChoice = choices[state.current === null ? -1 : choices.findIndex((c) => c.selection.provider === state.current?.provider && c.selection.model === state.current.model)];
523
548
  const reasoning = currentChoice?.model.reasoning;
524
549
  const effectiveEffort = state.current?.reasoningEffort ?? reasoning?.defaultEffort;
@@ -699,7 +724,9 @@ window.__ModuleLoader__.load({
699
724
  });
700
725
  };
701
726
  const waiting = state.current === null && state.status === "loading";
702
- const modelLabel = waiting ? t("trigger.loading") : currentChoice === void 0 ? state.current === null ? t("trigger.fallback") : state.current.model : displayModelName(currentChoice.model);
727
+ const savedName = state.savedDisplayName?.provider === state.current?.provider && state.savedDisplayName?.model === state.current?.model ? state.savedDisplayName?.name : void 0;
728
+ const catalogName = currentChoice === void 0 ? void 0 : displayModelName(currentChoice.model).trim();
729
+ const modelLabel = waiting ? t("trigger.loading") : catalogName !== void 0 && catalogName !== "" && catalogName !== state.current?.model ? catalogName : savedName ?? (catalogName || (state.current === null ? t("trigger.fallback") : state.current.model));
703
730
  const triggerLabel = effortLabel === void 0 ? modelLabel : `${modelLabel} · ${effortLabel}`;
704
731
  const triggerAria = waiting ? t("trigger.loading") : state.current === null ? t("trigger.selectAria") : effortLabel === void 0 ? t("trigger.aria", { model: modelLabel }) : t("trigger.ariaEffort", {
705
732
  model: modelLabel,
@@ -829,8 +856,8 @@ window.__ModuleLoader__.load({
829
856
  }, failure.id)),
830
857
  (0, react_jsx_runtime.jsx)("div", {
831
858
  className: clsx(ModelSelect_module_css_default.groups, "scrollable"),
832
- children: groups.map((group) => {
833
- const headingId = `${id}-${group.id}`;
859
+ children: sections.map((section) => {
860
+ const headingId = `${id}-${section.id}`;
834
861
  return (0, react_jsx_runtime.jsxs)("section", {
835
862
  role: "group",
836
863
  "aria-labelledby": headingId,
@@ -838,8 +865,8 @@ window.__ModuleLoader__.load({
838
865
  children: [(0, react_jsx_runtime.jsx)("div", {
839
866
  className: ModelSelect_module_css_default.groupTitle,
840
867
  id: headingId,
841
- children: group.id === "deepseek-account" ? t("provider.account") : group.name
842
- }), group.models.map((model) => {
868
+ children: section.name
869
+ }), section.choices.map(({ group, model }) => {
843
870
  const selected = state.current?.provider === group.id && state.current.model === model.id;
844
871
  return (0, react_jsx_runtime.jsxs)("button", {
845
872
  ref: itemRef(),
@@ -857,17 +884,32 @@ window.__ModuleLoader__.load({
857
884
  },
858
885
  children: [(0, react_jsx_runtime.jsx)("span", {
859
886
  className: ModelSelect_module_css_default.optionCopy,
860
- children: (0, react_jsx_runtime.jsx)("span", {
861
- className: ModelSelect_module_css_default.modelName,
862
- children: displayModelName(model)
887
+ children: (0, react_jsx_runtime.jsxs)("span", {
888
+ className: ModelSelect_module_css_default.modelHeading,
889
+ children: [
890
+ (0, react_jsx_runtime.jsx)("span", {
891
+ className: ModelSelect_module_css_default.modelName,
892
+ children: displayModelName(model)
893
+ }),
894
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tag, {
895
+ tone: "neutral",
896
+ className: ModelSelect_module_css_default.capabilityTag,
897
+ children: t("option.text")
898
+ }),
899
+ model.inputModalities?.includes("image") === true && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tag, {
900
+ tone: "info",
901
+ className: ModelSelect_module_css_default.capabilityTag,
902
+ children: t("option.image")
903
+ })
904
+ ]
863
905
  })
864
906
  }), (0, react_jsx_runtime.jsx)("span", {
865
907
  className: ModelSelect_module_css_default.check,
866
908
  children: pending?.provider === group.id && pending.model === model.id ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }) : selected ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, {}) : null
867
909
  })]
868
- }, model.id);
910
+ }, `${group.id}/${model.id}`);
869
911
  })]
870
- }, group.id);
912
+ }, section.id);
871
913
  })
872
914
  }),
873
915
  state.status === "ready" && choices.length === 0 && (0, react_jsx_runtime.jsx)("div", {
@@ -933,10 +975,13 @@ window.__ModuleLoader__.load({
933
975
  */
934
976
  /** Simplified Chinese dictionary (the key-set source of truth). */
935
977
  const zh = {
978
+ "provider.custom": "自定义模型",
936
979
  "provider.account": "DeepSeek 账号",
937
980
  "command.label": "模型",
938
981
  "command.description": "选择本会话使用的模型",
939
982
  "option.loadError": "目录加载失败:{message}",
983
+ "option.text": "文本",
984
+ "option.image": "识图",
940
985
  "option.deepseekV4Flash.description": "快速、高效且经济;适合目标明确、常规或并行任务。",
941
986
  "option.deepseekV4Pro.description": "更强的自主编码、知识与复杂推理能力;适合复杂或质量优先的任务,但成本更高。",
942
987
  "trigger.fallback": "请选择模型",
@@ -958,10 +1003,13 @@ window.__ModuleLoader__.load({
958
1003
  };
959
1004
  /** English dictionary, checked complete against the zh key set. */
960
1005
  const en = {
1006
+ "provider.custom": "Custom models",
961
1007
  "provider.account": "DeepSeek Account",
962
1008
  "command.label": "Model",
963
1009
  "command.description": "Select the model for this conversation",
964
1010
  "option.loadError": "Catalog failed to load: {message}",
1011
+ "option.text": "Text",
1012
+ "option.image": "Vision",
965
1013
  "option.deepseekV4Flash.description": "Fast, efficient, and economical; suited to focused, routine, or parallel tasks.",
966
1014
  "option.deepseekV4Pro.description": "Stronger agentic coding, knowledge, and difficult reasoning; suited to complex or quality-critical tasks at higher cost.",
967
1015
  "trigger.fallback": "Select model",
@@ -1001,7 +1049,7 @@ window.__ModuleLoader__.load({
1001
1049
  function optionsOf(directory, t) {
1002
1050
  const rows = [];
1003
1051
  for (const group of directory.groups) {
1004
- const name = group.id === "deepseek-account" ? t("provider.account") : group.name;
1052
+ const name = group.custom === true ? t("provider.custom") : group.id === "deepseek-account" ? t("provider.account") : group.name;
1005
1053
  for (const model of group.models) {
1006
1054
  const description = descriptionOf(group.id, model, t);
1007
1055
  rows.push({
@@ -4,7 +4,7 @@
4
4
  * Session's durable selection projection, then submit through the same
5
5
  * selectModel call. A switch made in either entry updates this shared state.
6
6
  */
7
- import type { ModelCatalogFailure, ModelProviderGroup, ModelSelection } from '@deepseek-ai/dsh-api-session-controller/types';
7
+ import type { ModelCatalog, ModelCatalogFailure, ModelProviderGroup, ModelSelection } from '@deepseek-ai/dsh-api-session-controller/types';
8
8
  import type { SessionId } from '@deepseek-ai/dsh-api-remotes/client';
9
9
  import type { RemoteResult, TypertClientRemote } from '@deepseek-ai/dsh-typert-protocol';
10
10
  import type { ObservableSnapshot, SnapshotStore } from '@deepseek-ai/dsh-client-store';
@@ -13,6 +13,8 @@ import type { ModelCatalogDirectory } from './catalog.ts';
13
13
  export interface ModelDirectoryState {
14
14
  /** Saved selection, retained even when its provider or model leaves the catalog. */
15
15
  current: ModelSelection | null;
16
+ /** Shared name metadata, matched by provider and model before presentation. */
17
+ savedDisplayName?: ModelCatalog['savedDisplayName'];
16
18
  /** Saved effort caption retained when the selected model is unavailable. */
17
19
  retainedEffort?: string;
18
20
  /** Whether the current selection is present in the available catalog; null while unresolved. */
@@ -9,10 +9,13 @@
9
9
  */
10
10
  /** Simplified Chinese dictionary (the key-set source of truth). */
11
11
  export declare const zh: {
12
+ 'provider.custom': string;
12
13
  'provider.account': string;
13
14
  'command.label': string;
14
15
  'command.description': string;
15
16
  'option.loadError': string;
17
+ 'option.text': string;
18
+ 'option.image': string;
16
19
  'option.deepseekV4Flash.description': string;
17
20
  'option.deepseekV4Pro.description': string;
18
21
  'trigger.fallback': string;
@@ -36,10 +39,13 @@ export declare const zh: {
36
39
  export type ModelKey = keyof typeof zh;
37
40
  /** English dictionary, checked complete against the zh key set. */
38
41
  export declare const en: {
42
+ 'provider.custom': string;
39
43
  'provider.account': string;
40
44
  'command.label': string;
41
45
  'command.description': string;
42
46
  'option.loadError': string;
47
+ 'option.text': string;
48
+ 'option.image': string;
43
49
  'option.deepseekV4Flash.description': string;
44
50
  'option.deepseekV4Pro.description': string;
45
51
  'trigger.fallback': string;
@@ -4,9 +4,7 @@
4
4
  .block {
5
5
  --dsl-code-block-banner-background-color: var(--dsw-alias-markdown-code-block-banner);
6
6
  --dsl-code-block-border-radius: var(--dsw-radius-lg);
7
- /* Local 11/18 instead of the shared --dsw-font-xs-13: the banner scales
8
- with the markdown 0.875 ladder without shrinking every other xs-13 use. */
9
- --dsl-code-block-banner-font: 11px/18px var(--dsw-font-family);
7
+ --dsl-code-block-banner-font: var(--dsw-font-xxs-12);
10
8
  --dsl-code-block-content-font: var(--dsw-font-markdown-code-block);
11
9
  --dsl-code-block-background: var(--dsw-alias-markdown-code-block);
12
10
 
@@ -45,8 +43,8 @@
45
43
  .infostring {
46
44
  color: var(--dsw-alias-label-primary);
47
45
  font-family: var(--ds-font-family-code);
48
- font-size: 11px;
49
- line-height: 18px;
46
+ font-size: inherit;
47
+ line-height: inherit;
50
48
  min-width: 0;
51
49
  overflow: hidden;
52
50
  text-overflow: ellipsis;
@@ -1,6 +1,5 @@
1
- /* Visual baseline: deepsuite `@deepseek/md` markdown.css, adapted to CSS
2
- Modules. Cite pills and header anchors are absent (no matching DOM).
3
- Token names match that sheet. */
1
+ /* Prose uses the theme's conversation typography; compact reasoning keeps
2
+ its own secondary size and tighter spacing. */
4
3
 
5
4
  .markdown {
6
5
  min-width: 0;
@@ -10,32 +9,32 @@
10
9
  }
11
10
 
12
11
  .markdown strong {
13
- font-weight: 600;
12
+ font-weight: var(--dsw-font-markdown-base-strong-font-weight);
14
13
  }
15
14
 
16
15
  .markdown h1 {
17
16
  font: var(--dsw-font-markdown-h1);
18
- margin: 32px 0 16px;
17
+ margin: 24px 0 12px;
19
18
  }
20
19
 
21
20
  .markdown h2 {
22
21
  font: var(--dsw-font-markdown-h2);
23
- margin: 32px 0 16px;
22
+ margin: 24px 0 12px;
24
23
  }
25
24
 
26
25
  .markdown h3 {
27
26
  font: var(--dsw-font-markdown-h3);
28
- margin: 32px 0 16px;
27
+ margin: 20px 0 8px;
29
28
  }
30
29
 
31
30
  .markdown h4 {
32
31
  font: var(--dsw-font-markdown-h4);
33
- margin: 16px 0;
32
+ margin: 16px 0 8px;
34
33
  }
35
34
 
36
35
  .markdown :where(h5, h6) {
37
36
  font: var(--dsw-font-markdown-base-strong);
38
- margin: 16px 0;
37
+ margin: 16px 0 8px;
39
38
  }
40
39
 
41
40
  .markdown :where(h1, h2, h3, h4, h5, h6) strong {
@@ -43,7 +42,7 @@
43
42
  }
44
43
 
45
44
  .markdown p {
46
- margin: 16px 0;
45
+ margin: 12px 0;
47
46
  }
48
47
 
49
48
  /* Tighten h4–h6 against a following list (design: 8px gap). */
@@ -100,12 +99,12 @@
100
99
  }
101
100
 
102
101
  .markdown :where(ul, ol) {
103
- margin: 16px 0;
104
- padding-left: 18px;
102
+ margin: 12px 0;
103
+ padding-left: 1.5em;
105
104
  }
106
105
 
107
106
  .markdown li:not(:first-child) {
108
- margin-top: 6px;
107
+ margin-top: 4px;
109
108
  }
110
109
 
111
110
  .markdown li > :where(ul, ol) {
@@ -113,7 +112,7 @@
113
112
  }
114
113
 
115
114
  .markdown li::marker {
116
- line-height: 24px;
115
+ line-height: inherit;
117
116
  color: var(--dsw-alias-label-secondary);
118
117
  }
119
118
 
@@ -144,13 +143,13 @@
144
143
  display: block;
145
144
  border: none;
146
145
  height: 0.5px;
147
- margin: 32px 0;
146
+ margin: 24px 0;
148
147
  background: var(--dsw-alias-border-l2);
149
148
  }
150
149
 
151
150
  .markdown blockquote {
152
151
  border-left: 2px solid var(--dsw-alias-label-caption);
153
- margin: 16px 0 0;
152
+ margin: 12px 0;
154
153
  padding-left: 14px;
155
154
  }
156
155
 
@@ -161,16 +160,17 @@
161
160
  }
162
161
 
163
162
  .markdown :not(pre) > code {
164
- display: inline-flex;
165
- align-items: center;
163
+ display: inline;
166
164
  box-sizing: border-box;
167
165
  font: var(--dsw-font-markdown-code);
168
166
  font-family: var(--ds-font-family-code);
169
- font-size: 0.875em !important;
167
+ font-size: 0.92em !important;
168
+ line-height: inherit;
170
169
  background-color: var(--dsw-alias-markdown-inline-code);
171
170
  border: 0.5px solid var(--dsw-alias-border-l1);
172
- border-radius: var(--dsw-radius-sm);
173
- padding: 0 5px;
171
+ border-radius: var(--dsw-radius-xs);
172
+ padding: 1px 4px;
173
+ box-decoration-break: clone;
174
174
  }
175
175
 
176
176
  .markdown :where(h1, h2, h3, h4, h5, h6) code {
@@ -270,10 +270,6 @@
270
270
  padding-right: 0;
271
271
  }
272
272
 
273
- .tableScroll table code {
274
- font-size: 11px;
275
- }
276
-
277
273
  .markdown > *:first-child,
278
274
  .markdown p:first-child {
279
275
  margin-top: 0 !important;
@@ -338,7 +334,7 @@
338
334
  .compact :is(h1, h2, h3, h4, h5, h6) {
339
335
  margin: 8px 0 4px;
340
336
  font: inherit;
341
- font-weight: 600;
337
+ font-weight: 500;
342
338
  color: inherit;
343
339
  }
344
340
 
@@ -424,7 +420,7 @@
424
420
  }
425
421
 
426
422
  .compact th {
427
- font-weight: 600;
423
+ font-weight: 500;
428
424
  }
429
425
 
430
426
  .compact :global(.katex) {
@@ -47,7 +47,9 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
47
47
  'settings.action': {
48
48
  kind: 'list';
49
49
  scope: 'root';
50
- owner: SettingsHeaderOwnerProps;
50
+ owner: SettingsHeaderOwnerProps & {
51
+ sectionId?: string;
52
+ };
51
53
  };
52
54
  /**
53
55
  * The close button's visually-hidden label text (the button itself —
@@ -4125,7 +4125,7 @@ window.__ModuleLoader__.load({
4125
4125
  for (const listener of listeners) listener();
4126
4126
  };
4127
4127
  /** @returns the client identity for one account call, read at call time so it carries the language and zone in effect then. */
4128
- const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.2");
4128
+ const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.4-rc.1");
4129
4129
  const notices = createBonusNoticeController({
4130
4130
  ackRetryDelayMs: config.bonusAckRetryDelayMs,
4131
4131
  ackRetryMaxDelayMs: config.bonusAckRetryMaxDelayMs,
@@ -4256,7 +4256,7 @@ window.__ModuleLoader__.load({
4256
4256
  refreshAccount,
4257
4257
  contactUs() {
4258
4258
  const url = contactUrl(config, {
4259
- version: "3.0.2",
4259
+ version: "3.0.4-rc.1",
4260
4260
  locale: ctx.locale.getSnapshot().active === "zh" ? "zh-CN" : "en",
4261
4261
  width: window.screen.width,
4262
4262
  height: window.screen.height,
@@ -27,7 +27,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
27
27
  bonusAckRetryDelayMs: z<number, number, "defined">;
28
28
  bonusAckRetryMaxDelayMs: z<number, number, "defined">;
29
29
  version: z<1, 1, "volatile-defined">;
30
- step: z<"purpose" | "process" | "welcome" | "credit" | "done", "purpose" | "process" | "welcome" | "credit" | "done", "volatile-defined">;
30
+ step: z<"welcome" | "credit" | "purpose" | "process" | "done", "welcome" | "credit" | "purpose" | "process" | "done", "volatile-defined">;
31
31
  purpose: z<"office" | "development" | "both" | null, "office" | "development" | "both" | null, "volatile">;
32
32
  process: z<"compact" | "standard" | "detailed" | null, "compact" | "standard" | "detailed" | null, "volatile">;
33
33
  completion: z<"completed" | "skipped" | "api-key" | null, "completed" | "skipped" | "api-key" | null, "volatile">;
@@ -39,7 +39,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
39
39
  bonusAckRetryDelayMs: z<number, number, "defined">;
40
40
  bonusAckRetryMaxDelayMs: z<number, number, "defined">;
41
41
  version: z<1, 1, "volatile-defined">;
42
- step: z<"purpose" | "process" | "welcome" | "credit" | "done", "purpose" | "process" | "welcome" | "credit" | "done", "volatile-defined">;
42
+ step: z<"welcome" | "credit" | "purpose" | "process" | "done", "welcome" | "credit" | "purpose" | "process" | "done", "volatile-defined">;
43
43
  purpose: z<"office" | "development" | "both" | null, "office" | "development" | "both" | null, "volatile">;
44
44
  process: z<"compact" | "standard" | "detailed" | null, "compact" | "standard" | "detailed" | null, "volatile">;
45
45
  completion: z<"completed" | "skipped" | "api-key" | null, "completed" | "skipped" | "api-key" | null, "volatile">;
@@ -57,7 +57,7 @@ window.__ModuleLoader__.load({
57
57
  }
58
58
  //#endregion
59
59
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-settings-general/src/client/SettingsRoot.module.css.mjs
60
- const css$6 = ".hYRpBW_triggerRow{flex:none;align-items:center;gap:8px;width:calc(100% + 4px);margin:4px -2px;display:flex;position:relative}.hYRpBW_triggerRow.hYRpBW_railRow{width:36px;margin:8px 0 10px}.hYRpBW_trigger{box-sizing:border-box;border-radius:var(--dsw-radius-md);cursor:pointer;width:auto;min-width:0;height:42px;color:var(--dsw-alias-label-primary);background:0 0;border:none;flex:1;align-items:center;gap:8px;margin:0;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.hYRpBW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.hYRpBW_trigger.hYRpBW_rail{flex:none;justify-content:center;gap:0;width:36px;height:36px;margin:0;padding:0}.hYRpBW_triggerLabel{white-space:nowrap;overflow:hidden}.hYRpBW_overlay{z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hYRpBW_mask{background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);position:absolute;inset:0}.hYRpBW_panel{z-index:1;width:70vw;height:min(800px, calc(100vh - 2 * max(24px, var(--dsh-frame-top-clearance,24px))));border-radius:var(--dsw-radius-panel);background:var(--dsw-alias-bg-layer-2);max-width:calc(100vw - 48px);box-shadow:var(--dsw-elevation-prominent);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);display:flex;position:relative;overflow:hidden}.hYRpBW_panel:focus{outline:none}.hYRpBW_nav{box-sizing:border-box;flex-direction:column;flex:none;gap:18px;width:188px;padding:22px 12px 0;display:flex}.hYRpBW_navTitle{color:var(--dsw-alias-label-primary);padding:0 12px;font-size:16px;font-weight:500;line-height:24px}.hYRpBW_navList{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.hYRpBW_navCell{box-sizing:border-box;border-radius:var(--dsw-radius-md);cursor:pointer;height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:9px 16px 9px 12px;font-family:inherit;font-size:14px;font-weight:400;line-height:22px;display:flex}.hYRpBW_navCell:hover{background:var(--dsw-specific-sidebar-nav-item-hover)}.hYRpBW_navCell.hYRpBW_active{background:var(--dsw-specific-sidebar-nav-item-active)}.hYRpBW_navIcon{flex:none}.hYRpBW_navLabel{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.hYRpBW_content{flex-direction:column;flex:1;min-width:0;display:flex}.hYRpBW_header{box-sizing:border-box;flex:none;justify-content:space-between;align-items:flex-start;gap:8px;height:54px;padding:20px 14px 8px 10px;display:flex}.hYRpBW_actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.hYRpBW_close{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-primary);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.hYRpBW_close:hover{background:var(--dsw-alias-interactive-bg-hover)}.hYRpBW_options{flex:1;min-height:0;padding:0 24px 24px;overflow-y:auto}.hYRpBW_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
60
+ const css$6 = ".hYRpBW_triggerRow{flex:none;align-items:center;gap:8px;width:calc(100% + 4px);margin:4px -2px;display:flex;position:relative}.hYRpBW_triggerRow.hYRpBW_railRow{width:36px;margin:8px 0 10px}.hYRpBW_trigger{box-sizing:border-box;border-radius:var(--dsw-radius-md);cursor:pointer;width:auto;min-width:0;height:42px;color:var(--dsw-alias-label-primary);background:0 0;border:none;flex:1;align-items:center;gap:8px;margin:0;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.hYRpBW_trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.hYRpBW_trigger.hYRpBW_rail{flex:none;justify-content:center;gap:0;width:36px;height:36px;margin:0;padding:0}.hYRpBW_triggerLabel{white-space:nowrap;overflow:hidden}.hYRpBW_overlay{z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hYRpBW_mask{background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);position:absolute;inset:0}.hYRpBW_panel{z-index:1;width:70vw;height:min(800px, calc(100vh - 2 * max(24px, var(--dsh-frame-top-clearance,24px))));border-radius:var(--dsw-radius-panel);background:var(--dsw-alias-bg-layer-2);max-width:calc(100vw - 48px);box-shadow:var(--dsw-elevation-prominent);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);display:flex;position:relative;overflow:hidden}.hYRpBW_panel:focus{outline:none}.hYRpBW_nav{box-sizing:border-box;flex-direction:column;flex:none;gap:18px;width:188px;padding:22px 12px 0;display:flex}.hYRpBW_navTitle{color:var(--dsw-alias-label-primary);padding:0 12px;font-size:16px;font-weight:500;line-height:24px}.hYRpBW_navList{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.hYRpBW_navCell{box-sizing:border-box;border-radius:var(--dsw-radius-md);cursor:pointer;height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:9px 16px 9px 12px;font-family:inherit;font-size:14px;font-weight:400;line-height:22px;display:flex}.hYRpBW_navCell:hover{background:var(--dsw-specific-sidebar-nav-item-hover)}.hYRpBW_navCell.hYRpBW_active{background:var(--dsw-specific-sidebar-nav-item-active)}.hYRpBW_navIcon{flex:none}.hYRpBW_navLabel{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.hYRpBW_content{flex-direction:column;flex:1;min-width:0;display:flex}.hYRpBW_header{box-sizing:border-box;flex:none;justify-content:space-between;align-items:flex-start;gap:8px;height:54px;padding:20px 14px 8px 10px;display:flex}.hYRpBW_actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.hYRpBW_close{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-primary);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.hYRpBW_close:hover{background:var(--dsw-alias-interactive-bg-hover)}.hYRpBW_options{flex:1;min-height:0;padding:0 24px 24px;overflow-y:auto}.hYRpBW_options>[data-slot=settings\\.section]>*{box-sizing:border-box;width:100%;max-width:none}.hYRpBW_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
61
61
  const tagId$6 = "@deepseek-ai/dsh-client-ui-settings-general/SettingsRoot.module.css";
62
62
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
63
63
  const tag = document.createElement("style");
@@ -319,7 +319,7 @@ window.__ModuleLoader__.load({
319
319
  className: SettingsRoot_module_css_default.header,
320
320
  children: [(0, react_jsx_runtime.jsx)("div", {
321
321
  className: SettingsRoot_module_css_default.actions,
322
- children: renderSlot("settings.action", {})
322
+ children: renderSlot("settings.action", { ...active === void 0 ? {} : { sectionId: active } })
323
323
  }), (0, react_jsx_runtime.jsxs)("button", {
324
324
  type: "button",
325
325
  className: SettingsRoot_module_css_default.close,
@@ -657,7 +657,7 @@ window.__ModuleLoader__.load({
657
657
  function CurrentVersionRow({ t }) {
658
658
  return (0, react_jsx_runtime.jsx)("div", {
659
659
  className: CurrentVersionRow_module_css_default.row,
660
- children: t("general.currentVersion", { version: "3.0.2" })
660
+ children: t("general.currentVersion", { version: "3.0.4-rc.1" })
661
661
  });
662
662
  }
663
663
  //#endregion
@@ -742,7 +742,7 @@ window.__ModuleLoader__.load({
742
742
  * @param props - header owner props, localized copy, and injected document state.
743
743
  * @returns the action, or null while unavailable or unresolved.
744
744
  */
745
- function SettingsDocumentAction({ controller, useSnapshot, t }) {
745
+ function SettingsDocumentAction({ controller, useSnapshot, t, sectionId }) {
746
746
  const state = useSnapshot((snapshot) => snapshot);
747
747
  (0, react.useEffect)(() => {
748
748
  controller.load();
@@ -759,7 +759,7 @@ window.__ModuleLoader__.load({
759
759
  size: "sm",
760
760
  disabled: state.opening,
761
761
  onClick: () => {
762
- controller.open();
762
+ controller.open(sectionId === "models" ? "llm-pi-ai" : void 0);
763
763
  },
764
764
  children: t("openDocument")
765
765
  })]
@@ -806,9 +806,10 @@ window.__ModuleLoader__.load({
806
806
  }
807
807
  /**
808
808
  * Open the loaded document once; concurrent gestures collapse behind the in-flight action.
809
+ * @param namespace Configuration owner; omitted opens the active profile document.
809
810
  * @returns after the native-open request settles, or immediately when unavailable/already opening.
810
811
  */
811
- async open() {
812
+ async open(namespace) {
812
813
  const current = this.store.getSnapshot();
813
814
  if (current.status !== "ready" || current.opening) return;
814
815
  this.store.update((state) => {
@@ -816,7 +817,7 @@ window.__ModuleLoader__.load({
816
817
  state.error = null;
817
818
  });
818
819
  try {
819
- const result = await this.ctx.remote.settings.openSettingsDocument();
820
+ const result = await (namespace === void 0 ? this.ctx.remote.settings.openSettingsDocument() : this.ctx.remote.settings.openNamespaceDocument(namespace));
820
821
  if (!result.ok) {
821
822
  const { message } = result.error;
822
823
  this.store.update((state) => {
@@ -18,5 +18,5 @@ export type SettingsDocumentActionProps = PropsRuntime<'settings.action'> & Prop
18
18
  * @param props - header owner props, localized copy, and injected document state.
19
19
  * @returns the action, or null while unavailable or unresolved.
20
20
  */
21
- export declare function SettingsDocumentAction({ controller, useSnapshot, t }: SettingsDocumentActionProps): ReactNode;
21
+ export declare function SettingsDocumentAction({ controller, useSnapshot, t, sectionId }: SettingsDocumentActionProps): ReactNode;
22
22
  //# sourceMappingURL=SettingsDocumentAction.d.ts.map
@@ -32,9 +32,10 @@ export declare class SettingsDocumentStore {
32
32
  load(): Promise<void>;
33
33
  /**
34
34
  * Open the loaded document once; concurrent gestures collapse behind the in-flight action.
35
+ * @param namespace Configuration owner; omitted opens the active profile document.
35
36
  * @returns after the native-open request settles, or immediately when unavailable/already opening.
36
37
  */
37
- open(): Promise<void>;
38
+ open(namespace?: string): Promise<void>;
38
39
  /** Stop following the mirror. */
39
40
  dispose(): void;
40
41
  private derive;