@chatcode/chatcode-cli 3.0.3 → 3.0.4-rc.2

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 (243) hide show
  1. package/README.i18n.yaml +10 -10
  2. package/README.md +16 -1
  3. package/README.zh.md +16 -1
  4. package/lib/bin.js +62 -11
  5. package/lib/{command-errors-CBJRI2gy.js → command-errors-CScdshCl.js} +12 -12
  6. package/lib/{command-trees-Dvq4C7a4.js → command-trees-Dc17MYfV.js} +2 -2
  7. package/lib/{component-identity-DPdJglJO.js → component-identity-DFJD_d-P.js} +3 -3
  8. package/lib/{dump-config-CauO75nE.js → dump-config-BcH-VYuv.js} +5 -5
  9. package/lib/dump-config-CyopmD85.js +2 -0
  10. package/lib/{dump-config-schema-CObLWWaW.js → dump-config-schema-DM0fb6Ns.js} +2 -2
  11. package/lib/{extension-events-Be9LWvHD.js → extension-events-qXmhzmHo.js} +20 -20
  12. package/lib/{frames-7PAg0Q9b.js → frames-B89znn_0.js} +4 -4
  13. package/lib/headless-compat.js +2 -2
  14. package/lib/{host-access-DeCjoRQP.js → host-access-B0CRAwsX.js} +1 -1
  15. package/lib/{keymap-CRUxM_qn.js → keymap-CIoVICBI.js} +17 -16
  16. package/lib/{plugin-CDFSDE_y.js → plugin-BKQsL2xn.js} +3264 -2301
  17. package/lib/{plugin-Cn-hyYY8.js → plugin-eJjD6r12.js} +1 -1
  18. package/lib/{profile-boot-SJGbpLgN.js → profile-boot-BNQry1NM.js} +97 -14
  19. package/lib/profile-boot.js +2 -2
  20. package/lib/{scenes-D6jV1EEi.js → scenes-BRf-zMpF.js} +3 -3
  21. package/lib/{settings-sections-DJQRNBo9.js → settings-sections-4gMhveN_.js} +7 -3
  22. package/lib/statusBarSettings-CnmdSHkO.js +382 -0
  23. package/lib/{themes-BCly4_y9.js → themes-Ce97Zsri.js} +13 -13
  24. package/lib/tui-compat-command-trees.js +1 -1
  25. package/lib/tui-compat-extensions.js +3 -3
  26. package/lib/tui-compat-plugin-host.js +5 -5
  27. package/lib/tui-compat-scenes.js +1 -1
  28. package/lib/tui-compat-settings-sections.js +1 -1
  29. package/lib/tui-compat-working-activity.js +4 -4
  30. package/lib/tui-compat-workspaces.js +1 -1
  31. package/lib/tui-compat.js +9 -26
  32. package/lib/types/args.d.ts +2 -0
  33. package/lib/types/permission-bypass.d.ts +16 -0
  34. package/lib/types/profile-boot.d.ts +12 -0
  35. package/lib/types/tui-compat.d.ts +4 -0
  36. package/lib/types/web-browser.d.ts +6 -0
  37. package/lib/types/web-instance.d.ts +42 -0
  38. package/lib/web-browser-Vcgfdsv_.js +46 -0
  39. package/lib/web-instance-B0jec7cq.js +2 -0
  40. package/lib/web-instance-DbP7IHPv.js +280 -0
  41. package/lib/{workspaces-Bb3kCAFb.js → workspaces-1xrm-e3V.js} +2 -2
  42. package/package.json +36 -33
  43. package/runtime/manifest.json +4 -2
  44. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +137 -11
  45. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/types/index.d.ts +27 -1
  46. package/runtime/node_modules/@deepseek-ai/dsh-agent-preset/skills/cordis-composition-reference/references/packages.md +2 -1
  47. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/client.js +2 -0
  48. package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/remote-stream.js +4 -0
  49. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/client.js +152 -39
  50. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/index.js +4 -0
  51. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.d.ts +3 -0
  52. package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js +1 -0
  53. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/index.js +179 -35
  54. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.host.js +57 -30
  55. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.remote-client.js +31 -19
  56. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.d.ts +9 -1
  57. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.js +36 -6
  58. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/archived-session-gate.js +1 -1
  59. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/catalog.js +12 -2
  60. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/service.d.ts +1 -1
  61. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.d.ts +2 -2
  62. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.js +24 -8
  63. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.d.ts +4 -3
  64. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.js +31 -14
  65. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.d.ts +6 -0
  66. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.js +89 -4
  67. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/remote-events.d.ts +1 -1
  68. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/types.d.ts +27 -0
  69. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/index.js +28 -1
  70. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.host.js +39 -0
  71. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.d.ts +2 -0
  72. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.js +32 -0
  73. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.d.ts +8 -0
  74. package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.js +19 -1
  75. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/client.js +30 -0
  76. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/index.js +111 -2
  77. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.host.js +104 -11
  78. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.d.ts +5 -1
  79. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.js +78 -11
  80. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.d.ts +14 -1
  81. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.js +17 -0
  82. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.d.ts +15 -0
  83. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.js +12 -0
  84. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.d.ts +13 -1
  85. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.js +44 -2
  86. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/feed.js +17 -0
  87. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.d.ts +13 -1
  88. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.js +22 -0
  89. package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/types.d.ts +17 -0
  90. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +67 -19
  91. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/index.d.ts +1 -1
  92. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +11 -1
  93. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/worker/profile-resolution-bootstrap.js +22 -3
  94. package/runtime/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +9 -3
  95. package/runtime/node_modules/@deepseek-ai/dsh-base/package.json +2 -1
  96. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/client.js +931 -7
  97. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/index.js +57 -19
  98. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/client/index.d.ts +5 -2
  99. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/config.d.ts +12 -0
  100. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/events.d.ts +4 -4
  101. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/index.d.ts +3 -8
  102. package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/package.json +6 -2
  103. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +3 -2
  104. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/types/index.d.ts +2 -2
  105. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +10 -0
  106. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +1 -1
  107. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
  108. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
  109. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +68 -16
  110. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +3 -1
  111. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/locales.d.ts +6 -0
  112. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css +3 -5
  113. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css +23 -27
  114. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings/lib/types/client/contract/slots.d.ts +3 -1
  115. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
  116. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/types/index.d.ts +2 -2
  117. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +8 -7
  118. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +1 -1
  119. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/settings-document-store.d.ts +2 -1
  120. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +33 -12
  121. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
  122. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
  123. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +3 -1
  124. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
  125. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1925 -207
  126. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +13 -0
  127. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/contract/slots.d.ts +4 -0
  128. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +42 -0
  129. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/recent.d.ts +11 -0
  130. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/RecentList.d.ts +15 -0
  131. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/Rows.d.ts +6 -1
  132. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +24 -0
  133. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/stores.d.ts +2 -2
  134. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/tree.d.ts +15 -13
  135. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +3 -1
  136. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/index.js +16 -0
  137. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.host.js +7 -3
  138. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.remote-client.js +6 -2
  139. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/index.js +20 -0
  140. package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/types.d.ts +5 -0
  141. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/index.js +35 -0
  142. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.d.ts +11 -0
  143. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.js +10 -0
  144. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.d.ts +28 -0
  145. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.js +36 -0
  146. package/runtime/node_modules/@deepseek-ai/dsh-computer-use/package.json +42 -0
  147. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +102 -14
  148. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/types/index.d.ts +34 -4
  149. package/runtime/node_modules/@deepseek-ai/dsh-config-editor/package.json +1 -0
  150. package/runtime/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +5 -2
  151. package/runtime/node_modules/@deepseek-ai/dsh-host-webserver/lib/index.js +2 -1
  152. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/index.js +21 -8
  153. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.d.ts +4 -6
  154. package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.js +18 -7
  155. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/index.js +4 -0
  156. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.host.js +5 -5
  157. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.remote-client.js +5 -5
  158. package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/types/index.js +5 -0
  159. package/runtime/node_modules/@deepseek-ai/dsh-session/lib/types/index.d.ts +21 -0
  160. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/index.js +12 -0
  161. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/types/index.d.ts +15 -0
  162. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +95 -2
  163. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/types/index.d.ts +3 -1
  164. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/index.js +25 -1
  165. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/types/index.d.ts +1 -0
  166. package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +2 -1
  167. package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/index.js +13 -0
  168. package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/types/observation.d.ts +5 -0
  169. package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/lib/index.js +26 -0
  170. package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +2 -1
  171. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/index.js +5 -4
  172. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.d.ts +4 -3
  173. package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.js +4 -3
  174. package/runtime/node_modules/@deepseek-ai/dsh-storage/lib/types/backend.d.ts +4 -0
  175. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/index.js +65 -1
  176. package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/types/domain.d.ts +17 -2
  177. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js +25 -0
  178. package/runtime/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -0
  179. package/runtime/node_modules/@deepseek-ai/dsh-subagent/lib/types/control.d.ts +1 -1
  180. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/index.js +5522 -0
  181. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/command-args.d.ts +17 -0
  182. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/cicd.d.ts +8 -0
  183. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/tianti.d.ts +7 -0
  184. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti-deliver/tianti-deliver.d.ts +8 -0
  185. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/config.d.ts +27 -0
  186. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/index.d.ts +13 -0
  187. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/memory-config.d.ts +10 -0
  188. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/runtime.d.ts +105 -0
  189. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/aliases.d.ts +11 -0
  190. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/auth.d.ts +20 -0
  191. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/client.d.ts +206 -0
  192. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/config.d.ts +22 -0
  193. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/index.d.ts +6 -0
  194. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/log.d.ts +16 -0
  195. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/types.d.ts +136 -0
  196. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/codebase.d.ts +19 -0
  197. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/dynamicWorkflow.d.ts +10 -0
  198. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/engine.d.ts +8 -0
  199. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executor.d.ts +11 -0
  200. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executors.d.ts +15 -0
  201. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/index.d.ts +23 -0
  202. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/memorySuggestions.d.ts +12 -0
  203. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/openspec.d.ts +31 -0
  204. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/recommend.d.ts +8 -0
  205. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/render.d.ts +8 -0
  206. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/requirementContext.d.ts +12 -0
  207. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/scenarioUpgrade.d.ts +24 -0
  208. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/state.d.ts +16 -0
  209. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/store.d.ts +33 -0
  210. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/templates.d.ts +8 -0
  211. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/types.d.ts +385 -0
  212. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/writeReviewSync.d.ts +6 -0
  213. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/index.d.ts +29 -0
  214. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/store.d.ts +20 -0
  215. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/types.d.ts +49 -0
  216. package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/tools.d.ts +12 -0
  217. package/runtime/node_modules/@deepseek-ai/dsh-tianti/package.json +57 -0
  218. package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +157 -22
  219. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-D5kpKf--.css +1 -0
  220. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js +133 -0
  221. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js.map +1 -0
  222. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-apple-touch-icon.png +0 -0
  223. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-icon-32.png +0 -0
  224. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-mask-icon.svg +1 -0
  225. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon-dark.svg +1 -3
  226. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.ico +0 -0
  227. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.svg +1 -3
  228. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +8 -4
  229. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +8 -4
  230. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/package.json +2 -1
  231. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +325 -37
  232. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/invariant.js +6 -1
  233. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.d.ts +6 -0
  234. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.js +23 -17
  235. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +41 -0
  236. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +314 -23
  237. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.d.ts +4 -0
  238. package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.js +4 -0
  239. package/lib/dump-config-CijLv_kn.js +0 -2
  240. package/lib/tuiDisplayPrefs-Dm_fULiR.js +0 -204
  241. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-DUvMhLle.css +0 -1
  242. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js +0 -127
  243. package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js.map +0 -1
@@ -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.3");
4128
+ const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.4-rc.2");
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.3",
4259
+ version: "3.0.4-rc.2",
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.3" })
660
+ children: t("general.currentVersion", { version: "3.0.4-rc.2" })
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;
@@ -55,7 +55,7 @@ window.__ModuleLoader__.load({
55
55
  }
56
56
  //#endregion
57
57
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-settings-models/src/client/ModelsSection.module.css.mjs
58
- const css$3 = "._1OLooa_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}._1OLooa_title{color:var(--dsw-alias-label-primary);margin:0;font-size:16px;font-weight:500;line-height:24px}._1OLooa_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}._1OLooa_notice{color:var(--dsw-alias-state-warn-label);margin:0;font-size:12px;line-height:18px}._1OLooa_savedNotice{color:var(--dsw-alias-state-success-primary);margin:0;font-size:12px;line-height:18px}._1OLooa_rows{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}._1OLooa_rowCard{border:.5px solid var(--dsw-alias-settings-card-stroke);background:var(--dsw-alias-settings-card-fill);border-radius:var(--dsw-radius-xl);flex-direction:column;gap:12px;padding:12px 14px;display:flex}._1OLooa_rowHead{align-items:center;gap:10px;display:flex}._1OLooa_rowIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}._1OLooa_rowName{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}._1OLooa_rowTag{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);flex:none;padding:1px 6px;font-size:11px;line-height:16px}._1OLooa_credentialDot{box-sizing:border-box;corner-shape:round;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}._1OLooa_credentialDotConfigured{background:var(--dsw-alias-state-success-primary)}._1OLooa_credentialDotMissing{background:var(--dsw-alias-state-error-primary)}._1OLooa_rowActions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}._1OLooa_primaryButton,._1OLooa_secondaryButton,._1OLooa_addButton{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:4px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._1OLooa_primaryButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}._1OLooa_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}._1OLooa_secondaryButton,._1OLooa_addButton{border:.5px solid var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary);background:0 0}._1OLooa_secondaryButton:hover:not(:disabled),._1OLooa_addButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._1OLooa_secondaryButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}._1OLooa_dangerButton{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;color:var(--dsw-alias-state-error-primary);font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._1OLooa_dangerButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}._1OLooa_rowActions ._1OLooa_secondaryButton,._1OLooa_rowActions ._1OLooa_dangerButton{border-radius:var(--dsw-radius-sm);height:28px;padding:0 10px;font-size:12px;line-height:18px}._1OLooa_primaryButton:disabled,._1OLooa_secondaryButton:disabled,._1OLooa_dangerButton:disabled,._1OLooa_addButton:disabled,._1OLooa_linkButton:disabled,._1OLooa_addModelButton:disabled{opacity:.4;cursor:default}._1OLooa_primaryButton:focus-visible,._1OLooa_secondaryButton:focus-visible,._1OLooa_dangerButton:focus-visible,._1OLooa_addButton:focus-visible,._1OLooa_linkButton:focus-visible,._1OLooa_addModelButton:focus-visible,._1OLooa_iconButton:focus-visible,._1OLooa_customizedSummary:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._1OLooa_editor{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;padding:14px 16px;display:flex}._1OLooa_editorHeader{align-items:baseline;gap:8px;display:flex}._1OLooa_editorTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}._1OLooa_editorRoute{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._1OLooa_field{flex-direction:column;gap:6px;display:flex}._1OLooa_fieldLabel{color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}._1OLooa_linkButton{box-sizing:border-box;border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}._1OLooa_linkButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._1OLooa_advancedHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._1OLooa_editorActions{justify-content:flex-end;gap:8px;display:flex}._1OLooa_addBlock{flex-direction:column;gap:12px;display:flex}._1OLooa_addActions{display:flex}._1OLooa_addButton{border:1px dashed var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-lg);flex:1 1 0;gap:6px;min-width:180px;height:44px}._1OLooa_addModes{flex-direction:column;align-items:flex-start;gap:8px;display:flex}._1OLooa_addPanel{flex-direction:column;gap:14px;display:flex}._1OLooa_addPanel[hidden]{display:none}._1OLooa_addCard,._1OLooa_setupCard{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;padding:14px 16px;list-style:none;display:flex}._1OLooa_addCard ._1OLooa_editor,._1OLooa_setupCard ._1OLooa_editor{background:0 0;padding:0}._1OLooa_customized{border-top:.5px solid var(--dsw-alias-border-l2);padding-top:10px}._1OLooa_customizedSummary{border-radius:var(--dsw-radius-sm);cursor:pointer;width:fit-content;color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:flex}._1OLooa_customizedSummary::-webkit-details-marker{display:none}._1OLooa_customizedSummary:before{content:\"\";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .12s;transform:rotate(-45deg)translate(-1px,-1px)}._1OLooa_customized[open]>._1OLooa_customizedSummary:before{transform:rotate(45deg)translate(-1px,-1px)}._1OLooa_customizedSummary:hover{color:var(--dsw-alias-label-primary)}._1OLooa_customizedBody{flex-direction:column;gap:12px;padding-top:12px;display:flex}._1OLooa_modelCatalog{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:10px;padding-top:12px;display:flex}._1OLooa_modelCatalogHeading{flex-direction:column;gap:2px;display:flex}._1OLooa_modelCatalogTitle{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}._1OLooa_modelCatalogMeta,._1OLooa_modelEmpty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._1OLooa_modelList{flex-direction:column;gap:8px;display:flex}._1OLooa_modelListHead{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}._1OLooa_modelEntry{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);padding:6px}._1OLooa_modelRow{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}._1OLooa_iconButton{box-sizing:border-box;border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}._1OLooa_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._1OLooa_iconButton:disabled{cursor:default;opacity:.4}._1OLooa_iconButtonDanger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}._1OLooa_modelAdvanced{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 4px 2px;display:grid}._1OLooa_modelField{flex-direction:column;gap:4px;min-width:0;display:flex}._1OLooa_modelInputTypes{border:none;grid-column:1/-1;min-width:0;margin:0;padding:0}._1OLooa_modelInputTypes legend{margin-bottom:4px;padding:0}._1OLooa_modelInputChoices{flex-wrap:wrap;align-items:center;gap:16px;min-height:32px;display:flex}._1OLooa_modelFieldLabel{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._1OLooa_modelEmpty{border:1px dashed var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-lg);text-align:center;padding:12px}._1OLooa_addModelButton{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;align-self:flex-start;align-items:center;gap:4px;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}._1OLooa_addModelButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._1OLooa_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;height:32px;font:inherit;background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);padding:0 10px;font-size:14px;line-height:22px}select._1OLooa_input{cursor:pointer;max-width:240px}._1OLooa_input:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}._1OLooa_input::placeholder{color:var(--dsw-alias-label-dimmed)}._1OLooa_input:disabled{opacity:.6;cursor:default}._1OLooa_selectInput{appearance:none;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 12px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}._1OLooa_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}._1OLooa_deleteDialog{width:min(480px,100%)}._1OLooa_deleteConfirm:not(:disabled){border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}._1OLooa_deleteConfirm:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}._1OLooa_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){._1OLooa_customizedSummary:before,._1OLooa_switchThumb{transition:none}}._1OLooa_fetchDialog{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);max-width:520px}._1OLooa_candidateToolbar{align-items:center;gap:8px;margin-bottom:6px;display:flex}._1OLooa_candidateSearch{flex:240px;min-width:0}._1OLooa_candidateList{flex-direction:column;gap:2px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}._1OLooa_candidate{border-radius:var(--dsw-radius-md)}._1OLooa_candidateLabel{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._1OLooa_candidateId{min-width:0;font-family:var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;overflow:hidden}._1OLooa_candidateEmpty{color:var(--dsw-alias-label-secondary);text-align:center;margin:24px 0;font-size:13px;line-height:20px}";
58
+ const css$3 = "._1OLooa_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}._1OLooa_title{color:var(--dsw-alias-label-primary);margin:0;font-size:16px;font-weight:500;line-height:24px}._1OLooa_intro{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}._1OLooa_notice{color:var(--dsw-alias-state-warn-label);margin:0;font-size:12px;line-height:18px}._1OLooa_savedNotice{color:var(--dsw-alias-state-success-primary);margin:0;font-size:12px;line-height:18px}._1OLooa_rows{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}._1OLooa_rowCard{border:.5px solid var(--dsw-alias-settings-card-stroke);background:var(--dsw-alias-settings-card-fill);border-radius:var(--dsw-radius-xl);flex-direction:column;gap:12px;padding:12px 14px;display:flex}._1OLooa_rowHead{align-items:center;gap:10px;display:flex}._1OLooa_rowIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}._1OLooa_rowName{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}._1OLooa_modelSummary{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}._1OLooa_rowTag{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);flex:none;padding:1px 6px;font-size:11px;line-height:16px}._1OLooa_credentialDot{box-sizing:border-box;corner-shape:round;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}._1OLooa_credentialDotConfigured{background:var(--dsw-alias-state-success-primary)}._1OLooa_credentialDotMissing{background:var(--dsw-alias-state-error-primary)}._1OLooa_rowActions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}._1OLooa_primaryButton,._1OLooa_secondaryButton,._1OLooa_addButton{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:4px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._1OLooa_primaryButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}._1OLooa_primaryButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}._1OLooa_secondaryButton,._1OLooa_addButton{border:.5px solid var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary);background:0 0}._1OLooa_secondaryButton:hover:not(:disabled),._1OLooa_addButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._1OLooa_secondaryButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}._1OLooa_dangerButton{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;color:var(--dsw-alias-state-error-primary);font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._1OLooa_dangerButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}._1OLooa_rowActions ._1OLooa_secondaryButton,._1OLooa_rowActions ._1OLooa_dangerButton{border-radius:var(--dsw-radius-sm);height:28px;padding:0 10px;font-size:12px;line-height:18px}._1OLooa_primaryButton:disabled,._1OLooa_secondaryButton:disabled,._1OLooa_dangerButton:disabled,._1OLooa_addButton:disabled,._1OLooa_linkButton:disabled,._1OLooa_addModelButton:disabled{opacity:.4;cursor:default}._1OLooa_primaryButton:focus-visible,._1OLooa_secondaryButton:focus-visible,._1OLooa_dangerButton:focus-visible,._1OLooa_addButton:focus-visible,._1OLooa_linkButton:focus-visible,._1OLooa_addModelButton:focus-visible,._1OLooa_iconButton:focus-visible,._1OLooa_customizedSummary:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._1OLooa_editor{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;padding:14px 16px;display:flex}._1OLooa_editorHeader{align-items:baseline;gap:8px;display:flex}._1OLooa_editorTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px}._1OLooa_editorRoute{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._1OLooa_field{flex-direction:column;gap:6px;display:flex}._1OLooa_fieldLabel{color:var(--dsw-alias-label-secondary);align-items:center;gap:10px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}._1OLooa_linkButton{box-sizing:border-box;border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}._1OLooa_linkButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._1OLooa_advancedHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._1OLooa_editorActions{justify-content:flex-end;gap:8px;display:flex}._1OLooa_addBlock{flex-direction:column;gap:12px;display:flex}._1OLooa_addActions{display:flex}._1OLooa_addButton{border:1px dashed var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-lg);flex:1 1 0;gap:6px;min-width:180px;height:44px}._1OLooa_addModes{flex-direction:column;align-items:flex-start;gap:8px;display:flex}._1OLooa_addPanel{flex-direction:column;gap:14px;display:flex}._1OLooa_addPanel[hidden]{display:none}._1OLooa_addCard,._1OLooa_setupCard{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;padding:14px 16px;list-style:none;display:flex}._1OLooa_addCard ._1OLooa_editor,._1OLooa_setupCard ._1OLooa_editor{background:0 0;padding:0}._1OLooa_customized{border-top:.5px solid var(--dsw-alias-border-l2);padding-top:10px}._1OLooa_customizedSummary{border-radius:var(--dsw-radius-sm);cursor:pointer;width:fit-content;color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:flex}._1OLooa_customizedSummary::-webkit-details-marker{display:none}._1OLooa_customizedSummary:before{content:\"\";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .12s;transform:rotate(-45deg)translate(-1px,-1px)}._1OLooa_customized[open]>._1OLooa_customizedSummary:before{transform:rotate(45deg)translate(-1px,-1px)}._1OLooa_customizedSummary:hover{color:var(--dsw-alias-label-primary)}._1OLooa_customizedBody{flex-direction:column;gap:12px;padding-top:12px;display:flex}._1OLooa_modelCatalog{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:10px;padding-top:12px;display:flex}._1OLooa_modelCatalogHeading{flex-direction:column;gap:2px;display:flex}._1OLooa_modelCatalogTitle{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}._1OLooa_modelCatalogMeta,._1OLooa_modelEmpty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._1OLooa_modelList{flex-direction:column;gap:8px;display:flex}._1OLooa_modelListHead{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}._1OLooa_modelEntry{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);padding:6px}._1OLooa_modelRow{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}._1OLooa_iconButton{box-sizing:border-box;border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}._1OLooa_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._1OLooa_iconButton:disabled{cursor:default;opacity:.4}._1OLooa_iconButtonDanger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}._1OLooa_modelAdvanced{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 4px 2px;display:grid}._1OLooa_modelField{flex-direction:column;gap:4px;min-width:0;display:flex}._1OLooa_modelInputTypes{border:none;grid-column:1/-1;min-width:0;margin:0;padding:0}._1OLooa_modelInputTypes legend{margin-bottom:4px;padding:0}._1OLooa_modelInputChoices{flex-wrap:wrap;align-items:center;gap:16px;min-height:32px;display:flex}._1OLooa_modelFieldLabel{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._1OLooa_modelEmpty{border:1px dashed var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-lg);text-align:center;padding:12px}._1OLooa_addModelButton{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;align-self:flex-start;align-items:center;gap:4px;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}._1OLooa_addModelButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._1OLooa_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;height:32px;font:inherit;background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);padding:0 10px;font-size:14px;line-height:22px}select._1OLooa_input{cursor:pointer;max-width:240px}._1OLooa_input:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}._1OLooa_input::placeholder{color:var(--dsw-alias-label-dimmed)}._1OLooa_input:disabled{opacity:.6;cursor:default}._1OLooa_selectInput{appearance:none;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 12px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}._1OLooa_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}._1OLooa_deleteDialog{width:min(480px,100%)}._1OLooa_deleteConfirm:not(:disabled){border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}._1OLooa_deleteConfirm:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-danger)}._1OLooa_hiddenLabel{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){._1OLooa_customizedSummary:before,._1OLooa_switchThumb{transition:none}}._1OLooa_fetchDialog{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);max-width:520px}._1OLooa_candidateToolbar{align-items:center;gap:8px;margin-bottom:6px;display:flex}._1OLooa_candidateSearch{flex:240px;min-width:0}._1OLooa_candidateList{flex-direction:column;gap:2px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}._1OLooa_candidate{border-radius:var(--dsw-radius-md)}._1OLooa_candidateLabel{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}._1OLooa_candidateId{min-width:0;font-family:var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;overflow:hidden}._1OLooa_candidateEmpty{color:var(--dsw-alias-label-secondary);text-align:center;margin:24px 0;font-size:13px;line-height:20px}";
59
59
  const tagId$3 = "@deepseek-ai/dsh-client-ui-settings-models/ModelsSection.module.css";
60
60
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
61
61
  const tag = document.createElement("style");
@@ -118,6 +118,7 @@ window.__ModuleLoader__.load({
118
118
  "modelList": "_1OLooa_modelList",
119
119
  "modelListHead": "_1OLooa_modelListHead",
120
120
  "modelRow": "_1OLooa_modelRow",
121
+ "modelSummary": "_1OLooa_modelSummary",
121
122
  "notice": "_1OLooa_notice",
122
123
  "primaryButton": "_1OLooa_primaryButton",
123
124
  "rowActions": "_1OLooa_rowActions",
@@ -1024,11 +1025,15 @@ window.__ModuleLoader__.load({
1024
1025
  this.failLoad(generation, mirrored.error ?? "settings are unavailable in this browser");
1025
1026
  return;
1026
1027
  }
1027
- const providers = joinProviderDirectory(registered.value, declared.value);
1028
1028
  const writable = mirrored.view.writable;
1029
1029
  const views = mirrored.view.namespaces;
1030
1030
  const namespaces = new Map(views.map((view) => [view.ns, view]));
1031
- const rows = providers.map((entry) => {
1031
+ const rows = joinProviderDirectory(registered.value, declared.value).filter((entry) => {
1032
+ if (entry.provider !== "deepseek-official" || entry.settingsNs !== "llm-deepseek") return true;
1033
+ const namespace = namespaces.get(entry.settingsNs);
1034
+ const models = this.schema.getPath(namespace?.value, ["models"]);
1035
+ return !Array.isArray(models) || models.length > 0;
1036
+ }).map((entry) => {
1032
1037
  const namespace = namespaces.get(entry.settingsNs);
1033
1038
  return {
1034
1039
  entry,
@@ -1863,10 +1868,6 @@ window.__ModuleLoader__.load({
1863
1868
  * confirmation; the page re-renders from pushed invalidations or the
1864
1869
  * post-apply reload.
1865
1870
  */
1866
- /** ChatCode product policy keeps custom-provider authoring out of the settings UI. */
1867
- function customProviderSettingsEnabled() {
1868
- return false;
1869
- }
1870
1871
  /** Render an editor for either the setup posture or an expanded provider row. */
1871
1872
  function renderProviderEditor({ target, ...props }) {
1872
1873
  return (0, react_jsx_runtime.jsx)(ProviderEditor, {
@@ -1936,6 +1937,17 @@ window.__ModuleLoader__.load({
1936
1937
  ...row.entry.declared === true ? { declared: true } : {}
1937
1938
  };
1938
1939
  }
1940
+ /** Model labels for declared provider cards; route identity and provider names remain unchanged. */
1941
+ function modelLabelsOf(row, namespace, schema) {
1942
+ if (row.entry.declared !== true || row.entry.settingsNs !== "llm-pi-ai") return [];
1943
+ const models = schema.getPath(namespace.value, [...row.entry.settingsPath, "models"]);
1944
+ if (!Array.isArray(models)) return [];
1945
+ return models.flatMap((model) => {
1946
+ if (typeof model !== "object" || model === null) return [];
1947
+ if ("name" in model && typeof model.name === "string" && model.name.trim() !== "") return [model.name];
1948
+ return "id" in model && typeof model.id === "string" ? [model.id] : [];
1949
+ });
1950
+ }
1939
1951
  /** Stable visible and accessible identity for one provider target. */
1940
1952
  function providerTargetLabel(target) {
1941
1953
  return target.provider === target.displayName ? target.provider : `${target.displayName} (${target.provider})`;
@@ -2069,7 +2081,7 @@ window.__ModuleLoader__.load({
2069
2081
  displayName: savedRow.entry.displayName
2070
2082
  };
2071
2083
  const anyUsable = state.rows.some(providerUsable);
2072
- const configured = state.rows.filter((row) => row.configured && row.entry.declared !== true);
2084
+ const configured = state.rows.filter((row) => row.configured);
2073
2085
  const configurable = state.rows.filter((row) => row.entry.declared !== true && state.namespaces.has(row.entry.settingsNs));
2074
2086
  const addable = state.rows.flatMap((row) => {
2075
2087
  const namespace = state.namespaces.get(row.entry.settingsNs);
@@ -2082,7 +2094,7 @@ window.__ModuleLoader__.load({
2082
2094
  const protocols = protocolChoices(piAi, schema);
2083
2095
  const catalogOffered = configurable.length > 0;
2084
2096
  const catalogEnabled = addable.length > 0;
2085
- const customOffered = customProviderSettingsEnabled() && piAi !== void 0;
2097
+ const customOffered = piAi !== void 0;
2086
2098
  const customEnabled = customOffered && protocols.length > 0;
2087
2099
  const bothOffered = catalogOffered && customOffered;
2088
2100
  const mode = bothOffered ? addMode : customOffered ? "custom" : "catalog";
@@ -2130,6 +2142,7 @@ window.__ModuleLoader__.load({
2130
2142
  const namespace = state.namespaces.get(target.settingsNs);
2131
2143
  /* v8 ignore next -- the join marks a row configured only when its namespace resolved */
2132
2144
  if (namespace === void 0) return null;
2145
+ const modelLabels = modelLabelsOf(row, namespace, schema);
2133
2146
  const error = row.entry.error === void 0 ? null : (0, react_jsx_runtime.jsx)("p", {
2134
2147
  role: "alert",
2135
2148
  className: ModelsSection_module_css_default["error"],
@@ -2170,7 +2183,7 @@ window.__ModuleLoader__.load({
2170
2183
  children: [
2171
2184
  (0, react_jsx_runtime.jsx)("span", {
2172
2185
  className: ModelsSection_module_css_default["rowName"],
2173
- children: row.entry.displayName
2186
+ children: modelLabels.length === 1 ? modelLabels[0] : row.entry.displayName
2174
2187
  }),
2175
2188
  row.entry.declared === true ? (0, react_jsx_runtime.jsx)("span", {
2176
2189
  className: ModelsSection_module_css_default["rowTag"],
@@ -2214,6 +2227,10 @@ window.__ModuleLoader__.load({
2214
2227
  }) : null]
2215
2228
  })]
2216
2229
  }),
2230
+ modelLabels.length > 1 ? (0, react_jsx_runtime.jsx)("p", {
2231
+ className: ModelsSection_module_css_default["modelSummary"],
2232
+ children: t("providerModels").replace("{models}", () => modelLabels.join(t("modelNameSeparator")))
2233
+ }) : null,
2217
2234
  error,
2218
2235
  renderSlot("settings.models.provider-card", {
2219
2236
  provider: row.entry,
@@ -2866,11 +2883,13 @@ window.__ModuleLoader__.load({
2866
2883
  addMode: "How to add",
2867
2884
  addCatalog: "Third-party model provider",
2868
2885
  addCustom: "Custom model API",
2869
- addCatalogHint: "Pick OpenAI, Anthropic, Kimi, or another provider from the built-in catalog and enter its API key.",
2886
+ addCatalogHint: "Pick DeepSeek, OpenAI, Anthropic, Kimi, or another provider from the built-in catalog and enter its API key.",
2870
2887
  addCustomHint: "Connect a relay, a self-hosted server, or any other OpenAI- or Anthropic-compatible endpoint by its base URL, protocol, and models.",
2871
2888
  addCatalogExhausted: "Every catalog provider is already configured.",
2872
2889
  addCustomUnavailable: "No API protocol is available to declare.",
2873
2890
  provider: "Provider",
2891
+ providerModels: "Models: {models}",
2892
+ modelNameSeparator: ", ",
2874
2893
  close: "Close",
2875
2894
  cancel: "Cancel",
2876
2895
  apply: "Apply",
@@ -2982,11 +3001,13 @@ window.__ModuleLoader__.load({
2982
3001
  addMode: "添加方式",
2983
3002
  addCatalog: "第三方模型提供商",
2984
3003
  addCustom: "自定义模型 API",
2985
- addCatalogHint: "从内置目录中选择 OpenAI、Anthropic、Kimi 等提供商,填入其 API 密钥即可使用。",
3004
+ addCatalogHint: "从内置目录中选择 DeepSeek、OpenAI、Anthropic、Kimi 等提供商,填入其 API 密钥即可使用。",
2986
3005
  addCustomHint: "连接中转站、自部署服务或其他兼容 OpenAI / Anthropic 协议的接口,需填写 API 地址、协议和模型。",
2987
3006
  addCatalogExhausted: "目录中的提供商都已添加。",
2988
3007
  addCustomUnavailable: "没有可用的 API 协议。",
2989
3008
  provider: "提供商",
3009
+ providerModels: "模型:{models}",
3010
+ modelNameSeparator: "、",
2990
3011
  close: "关闭",
2991
3012
  cancel: "取消",
2992
3013
  apply: "保存",
@@ -23,6 +23,8 @@ export declare const en: {
23
23
  addCatalogExhausted: string;
24
24
  addCustomUnavailable: string;
25
25
  provider: string;
26
+ providerModels: string;
27
+ modelNameSeparator: string;
26
28
  close: string;
27
29
  cancel: string;
28
30
  apply: string;
@@ -54,7 +54,7 @@ window.__ModuleLoader__.load({
54
54
  }
55
55
  //#endregion
56
56
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-settings-plugin-inventory/src/client/PluginInventorySettingsTab.module.css.mjs
57
- const css = ".dPDnWG_section{width:100%;max-width:760px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:14px;display:flex}.dPDnWG_catalogHeading h3,.dPDnWG_status,.dPDnWG_failure p{margin:0}.dPDnWG_status,.dPDnWG_failure{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.dPDnWG_failure{color:var(--dsw-alias-state-error-primary);align-items:center;gap:10px;display:flex}.dPDnWG_statusWithDot{align-items:center;gap:6px;display:inline-flex}.dPDnWG_failure button{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;padding:4px 10px}.dPDnWG_catalog{flex-direction:column;gap:12px;display:flex}.dPDnWG_search{width:100%;color:var(--dsw-alias-label-tertiary);align-items:center;display:flex;position:relative}.dPDnWG_search>svg{pointer-events:none;position:absolute;left:12px}.dPDnWG_search input{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;height:36px;color:var(--dsw-alias-label-primary);font:inherit;outline:none;padding:0 34px 0 36px;font-size:13px}.dPDnWG_search input::placeholder{color:var(--dsw-alias-label-tertiary)}.dPDnWG_search input:focus-visible{border-color:var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary)) 18%, transparent)}.dPDnWG_catalogHeading{align-items:baseline;gap:7px;padding:0 2px;display:flex}.dPDnWG_catalogHeading h3{font-size:13px;font-weight:600;line-height:20px}.dPDnWG_catalogHeading span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.dPDnWG_cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;margin:0;padding:0;list-style:none;display:grid}.dPDnWG_card{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);min-width:0;overflow:hidden}.dPDnWG_card[data-open=true]{border-color:var(--dsw-alias-border-l3)}.dPDnWG_cardContent{box-sizing:border-box;width:100%;min-height:52px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:stretch;padding:12px 14px;display:flex}.dPDnWG_cardContent:hover,.dPDnWG_card[data-open=true]>.dPDnWG_cardContent{background:var(--dsw-alias-interactive-bg-hover)}.dPDnWG_cardContent:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.dPDnWG_cardMainRow{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.dPDnWG_cardTitle,.dPDnWG_cardIdentity{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dPDnWG_cardTitle{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:20px}.dPDnWG_cardIdentity,.dPDnWG_entryValue{font-family:var(--ds-font-family-code);font-size:12px;line-height:18px}.dPDnWG_cardIdentity{width:100%;color:var(--dsw-alias-label-tertiary);display:block}.dPDnWG_cardTrailing{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:7px;display:inline-flex}.dPDnWG_phaseDot{flex:none;display:inline-flex}.dPDnWG_group{flex-direction:column;gap:10px;display:flex}.dPDnWG_groupTitleRow{align-items:center;gap:8px;min-height:32px;display:flex}.dPDnWG_group+.dPDnWG_group{border-top:.5px solid var(--dsw-alias-border-l2);padding-top:14px}.dPDnWG_headerEnd{margin-left:auto}.dPDnWG_groupToggle{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:0;display:flex}.dPDnWG_groupToggle:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.dPDnWG_groupToggle>.dPDnWG_chevron{transform:rotate(-90deg)}.dPDnWG_groupToggle[aria-expanded=true]>.dPDnWG_chevron{transform:none}.dPDnWG_groupTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.dPDnWG_groupSub{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 8px;margin:-6px 0 0 20px;font-size:12px;line-height:18px;display:flex}.dPDnWG_failedCount{color:var(--dsw-alias-state-error-primary)}.dPDnWG_switcher{white-space:nowrap;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);height:36px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border:none;flex:none;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.dPDnWG_switcher:hover{background:var(--dsw-alias-interactive-bg-hover)}.dPDnWG_switcher:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.dPDnWG_switcher>.dPDnWG_chevron{flex:none}.dPDnWG_switcherLabel{text-overflow:ellipsis;max-width:240px;overflow:hidden}.dPDnWG_groupBody{flex-direction:column;gap:10px;display:flex}.dPDnWG_brokenNote{border-radius:var(--dsw-radius-lg);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;white-space:pre-line;margin:0;padding:8px 10px;font-size:12.5px;line-height:18px}.dPDnWG_hint{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:12.5px;line-height:18px;display:flex}.dPDnWG_jumpLink{color:var(--dsw-alias-state-business-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}.dPDnWG_enabledIn{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.dPDnWG_card[data-failed=true]{border-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.dPDnWG_chevron{color:var(--dsw-alias-label-tertiary);flex:none}.dPDnWG_card[data-open=true] .dPDnWG_chevron{transform:rotate(180deg)}.dPDnWG_cardDetails{border-top:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);padding:10px 14px 12px}.dPDnWG_entryValue{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);display:block}.dPDnWG_details{grid-template-columns:76px minmax(0,1fr);gap:6px 10px;margin:8px 0 0;display:grid}.dPDnWG_details div{display:contents}.dPDnWG_details dt{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:17px}.dPDnWG_details dd{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:17px}.dPDnWG_visuallyHidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.dPDnWG_chevron{transition:transform .14s var(--ds-ease-in-out)}}@media (width<=680px){.dPDnWG_cards{grid-template-columns:minmax(0,1fr)}}";
57
+ const css = ".dPDnWG_section{width:100%;color:var(--dsw-alias-label-primary);flex-direction:column;gap:14px;display:flex}.dPDnWG_catalogHeading h3,.dPDnWG_status,.dPDnWG_failure p{margin:0}.dPDnWG_status,.dPDnWG_failure{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.dPDnWG_failure{color:var(--dsw-alias-state-error-primary);align-items:center;gap:10px;display:flex}.dPDnWG_statusWithDot{align-items:center;gap:6px;display:inline-flex}.dPDnWG_failure button{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;background:0 0;padding:4px 10px}.dPDnWG_catalog{flex-direction:column;gap:12px;display:flex}.dPDnWG_search{width:100%;color:var(--dsw-alias-label-tertiary);align-items:center;display:flex;position:relative}.dPDnWG_search>svg{pointer-events:none;position:absolute;left:12px}.dPDnWG_search input{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;height:36px;color:var(--dsw-alias-label-primary);font:inherit;outline:none;padding:0 34px 0 36px;font-size:13px}.dPDnWG_search input::placeholder{color:var(--dsw-alias-label-tertiary)}.dPDnWG_search input:focus-visible{border-color:var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary)) 18%, transparent)}.dPDnWG_catalogHeading{align-items:baseline;gap:7px;padding:0 2px;display:flex}.dPDnWG_catalogHeading h3{font-size:13px;font-weight:600;line-height:20px}.dPDnWG_catalogHeading span{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.dPDnWG_cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;margin:0;padding:0;list-style:none;display:grid}.dPDnWG_card{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);min-width:0;overflow:hidden}.dPDnWG_card[data-open=true]{border-color:var(--dsw-alias-border-l3)}.dPDnWG_cardContent{box-sizing:border-box;width:100%;min-height:52px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:stretch;padding:12px 14px;display:flex}.dPDnWG_cardContent:hover,.dPDnWG_card[data-open=true]>.dPDnWG_cardContent{background:var(--dsw-alias-interactive-bg-hover)}.dPDnWG_cardContent:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.dPDnWG_cardMainRow{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.dPDnWG_cardTitle,.dPDnWG_cardIdentity{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dPDnWG_cardTitle{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:20px}.dPDnWG_cardIdentity,.dPDnWG_entryValue{font-family:var(--ds-font-family-code);font-size:12px;line-height:18px}.dPDnWG_cardIdentity{width:100%;color:var(--dsw-alias-label-tertiary);display:block}.dPDnWG_cardTrailing{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:7px;display:inline-flex}.dPDnWG_phaseDot{flex:none;display:inline-flex}.dPDnWG_group{flex-direction:column;gap:10px;display:flex}.dPDnWG_groupTitleRow{align-items:center;gap:8px;min-height:32px;display:flex}.dPDnWG_group+.dPDnWG_group{border-top:.5px solid var(--dsw-alias-border-l2);padding-top:14px}.dPDnWG_headerEnd{margin-left:auto}.dPDnWG_groupToggle{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:0;display:flex}.dPDnWG_groupToggle:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.dPDnWG_groupToggle>.dPDnWG_chevron{transform:rotate(-90deg)}.dPDnWG_groupToggle[aria-expanded=true]>.dPDnWG_chevron{transform:none}.dPDnWG_groupTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.dPDnWG_groupSub{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 8px;margin:-6px 0 0 20px;font-size:12px;line-height:18px;display:flex}.dPDnWG_failedCount{color:var(--dsw-alias-state-error-primary)}.dPDnWG_switcher{white-space:nowrap;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);height:36px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border:none;flex:none;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.dPDnWG_switcher:hover{background:var(--dsw-alias-interactive-bg-hover)}.dPDnWG_switcher:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.dPDnWG_switcher>.dPDnWG_chevron{flex:none}.dPDnWG_switcherLabel{text-overflow:ellipsis;max-width:240px;overflow:hidden}.dPDnWG_groupBody{flex-direction:column;gap:10px;display:flex}.dPDnWG_brokenNote{border-radius:var(--dsw-radius-lg);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;white-space:pre-line;margin:0;padding:8px 10px;font-size:12.5px;line-height:18px}.dPDnWG_hint{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:12.5px;line-height:18px;display:flex}.dPDnWG_jumpLink{color:var(--dsw-alias-state-business-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}.dPDnWG_enabledIn{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.dPDnWG_card[data-failed=true]{border-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.dPDnWG_chevron{color:var(--dsw-alias-label-tertiary);flex:none}.dPDnWG_card[data-open=true] .dPDnWG_chevron{transform:rotate(180deg)}.dPDnWG_cardDetails{border-top:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);padding:10px 14px 12px}.dPDnWG_entryValue{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);display:block}.dPDnWG_details{grid-template-columns:76px minmax(0,1fr);gap:6px 10px;margin:8px 0 0;display:grid}.dPDnWG_details div{display:contents}.dPDnWG_details dt{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:17px}.dPDnWG_details dd{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:17px}.dPDnWG_visuallyHidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.dPDnWG_chevron{transition:transform .14s var(--ds-ease-in-out)}}@media (width<=680px){.dPDnWG_cards{grid-template-columns:minmax(0,1fr)}}";
58
58
  const tagId = "@deepseek-ai/dsh-client-ui-settings-plugin-inventory/PluginInventorySettingsTab.module.css";
59
59
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
60
60
  const tag = document.createElement("style");
@@ -167,7 +167,9 @@ window.__ModuleLoader__.load({
167
167
  const SCROLLBAR_LINGER_MS = 2e3;
168
168
  /** Format complete-build metadata for the local brand badge. */
169
169
  function localBuildVersion() {
170
- return `3.0.3-212a731-dirty`;
170
+ const commit = "4d610ce";
171
+ const dirty = {}.CHATCODE_CLI_CLIENT_GIT_DIRTY ?? {}["DSH_CLIENT_GIT_DIRTY"];
172
+ return `3.0.4-rc.2-${commit}` + (dirty === "true" ? "-dirty" : "");
171
173
  }
172
174
  /** Each panel row subscribes only to its own selection state. */
173
175
  function PanelRow({ id, label, wide, usePanelInfo, selectPanel, renderSlot }) {