@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.
- package/README.i18n.yaml +10 -10
- package/README.md +16 -1
- package/README.zh.md +16 -1
- package/lib/bin.js +62 -11
- package/lib/{command-errors-CBJRI2gy.js → command-errors-CScdshCl.js} +12 -12
- package/lib/{command-trees-Dvq4C7a4.js → command-trees-Dc17MYfV.js} +2 -2
- package/lib/{component-identity-DPdJglJO.js → component-identity-DFJD_d-P.js} +3 -3
- package/lib/{dump-config-CauO75nE.js → dump-config-BcH-VYuv.js} +5 -5
- package/lib/dump-config-CyopmD85.js +2 -0
- package/lib/{dump-config-schema-CObLWWaW.js → dump-config-schema-DM0fb6Ns.js} +2 -2
- package/lib/{extension-events-Be9LWvHD.js → extension-events-qXmhzmHo.js} +20 -20
- package/lib/{frames-7PAg0Q9b.js → frames-B89znn_0.js} +4 -4
- package/lib/headless-compat.js +2 -2
- package/lib/{host-access-DeCjoRQP.js → host-access-B0CRAwsX.js} +1 -1
- package/lib/{keymap-CRUxM_qn.js → keymap-CIoVICBI.js} +17 -16
- package/lib/{plugin-CDFSDE_y.js → plugin-BKQsL2xn.js} +3264 -2301
- package/lib/{plugin-Cn-hyYY8.js → plugin-eJjD6r12.js} +1 -1
- package/lib/{profile-boot-SJGbpLgN.js → profile-boot-BNQry1NM.js} +97 -14
- package/lib/profile-boot.js +2 -2
- package/lib/{scenes-D6jV1EEi.js → scenes-BRf-zMpF.js} +3 -3
- package/lib/{settings-sections-DJQRNBo9.js → settings-sections-4gMhveN_.js} +7 -3
- package/lib/statusBarSettings-CnmdSHkO.js +382 -0
- package/lib/{themes-BCly4_y9.js → themes-Ce97Zsri.js} +13 -13
- package/lib/tui-compat-command-trees.js +1 -1
- package/lib/tui-compat-extensions.js +3 -3
- package/lib/tui-compat-plugin-host.js +5 -5
- package/lib/tui-compat-scenes.js +1 -1
- package/lib/tui-compat-settings-sections.js +1 -1
- package/lib/tui-compat-working-activity.js +4 -4
- package/lib/tui-compat-workspaces.js +1 -1
- package/lib/tui-compat.js +9 -26
- package/lib/types/args.d.ts +2 -0
- package/lib/types/permission-bypass.d.ts +16 -0
- package/lib/types/profile-boot.d.ts +12 -0
- package/lib/types/tui-compat.d.ts +4 -0
- package/lib/types/web-browser.d.ts +6 -0
- package/lib/types/web-instance.d.ts +42 -0
- package/lib/web-browser-Vcgfdsv_.js +46 -0
- package/lib/web-instance-B0jec7cq.js +2 -0
- package/lib/web-instance-DbP7IHPv.js +280 -0
- package/lib/{workspaces-Bb3kCAFb.js → workspaces-1xrm-e3V.js} +2 -2
- package/package.json +36 -33
- package/runtime/manifest.json +4 -2
- package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +137 -11
- package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/types/index.d.ts +27 -1
- package/runtime/node_modules/@deepseek-ai/dsh-agent-preset/skills/cordis-composition-reference/references/packages.md +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/client.js +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/remote-stream.js +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/client.js +152 -39
- package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/index.js +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.d.ts +3 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/index.js +179 -35
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.host.js +57 -30
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.remote-client.js +31 -19
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.d.ts +9 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.js +36 -6
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/archived-session-gate.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/catalog.js +12 -2
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/service.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.js +24 -8
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.d.ts +4 -3
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.js +31 -14
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.d.ts +6 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/list.js +89 -4
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/remote-events.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/types.d.ts +27 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/index.js +28 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.host.js +39 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/typert.remote-client.js +32 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-settings-controller/lib/types/index.js +19 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/client.js +30 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/index.js +111 -2
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.host.js +104 -11
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.d.ts +5 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/typert.remote-client.js +78 -11
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.d.ts +14 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/model.js +17 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.d.ts +15 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/client/service.js +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.d.ts +13 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/commands.js +44 -2
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/feed.js +17 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.d.ts +13 -1
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/index.js +22 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-workspace-controller/lib/types/types.d.ts +17 -0
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +67 -19
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/index.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/types/profile-context.d.ts +11 -1
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/worker/profile-resolution-bootstrap.js +22 -3
- package/runtime/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +9 -3
- package/runtime/node_modules/@deepseek-ai/dsh-base/package.json +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/client.js +931 -7
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/index.js +57 -19
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/client/index.d.ts +5 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/config.d.ts +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/events.d.ts +4 -4
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/lib/types/index.d.ts +3 -8
- package/runtime/node_modules/@deepseek-ai/dsh-client-hmr/package.json +6 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +3 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/types/index.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +68 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +3 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/locales.d.ts +6 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css +3 -5
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css +23 -27
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings/lib/types/client/contract/slots.d.ts +3 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/types/index.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +8 -7
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/types/client/settings-document-store.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +33 -12
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +3 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1925 -207
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +13 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/contract/slots.d.ts +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +42 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/recent.d.ts +11 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/RecentList.d.ts +15 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/Rows.d.ts +6 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +24 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/stores.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/tree.d.ts +15 -13
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +3 -1
- package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/index.js +16 -0
- package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.host.js +7 -3
- package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/typert.remote-client.js +6 -2
- package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/index.js +20 -0
- package/runtime/node_modules/@deepseek-ai/dsh-commands/lib/types/types.d.ts +5 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/index.js +35 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.d.ts +11 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/brand.js +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.d.ts +28 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/lib/types/index.js +36 -0
- package/runtime/node_modules/@deepseek-ai/dsh-computer-use/package.json +42 -0
- package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/index.js +102 -14
- package/runtime/node_modules/@deepseek-ai/dsh-config-editor/lib/types/index.d.ts +34 -4
- package/runtime/node_modules/@deepseek-ai/dsh-config-editor/package.json +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +5 -2
- package/runtime/node_modules/@deepseek-ai/dsh-host-webserver/lib/index.js +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/index.js +21 -8
- package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.d.ts +4 -6
- package/runtime/node_modules/@deepseek-ai/dsh-native-command/lib/types/path-opener.js +18 -7
- package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/index.js +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.host.js +5 -5
- package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/typert.remote-client.js +5 -5
- package/runtime/node_modules/@deepseek-ai/dsh-schedule/lib/types/index.js +5 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session/lib/types/index.d.ts +21 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/index.js +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence/lib/types/index.d.ts +15 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +95 -2
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/types/index.d.ts +3 -1
- package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/index.js +25 -1
- package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/lib/types/index.d.ts +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/index.js +13 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-query/lib/types/observation.d.ts +5 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/lib/index.js +26 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/index.js +5 -4
- package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.d.ts +4 -3
- package/runtime/node_modules/@deepseek-ai/dsh-settings/lib/types/index.js +4 -3
- package/runtime/node_modules/@deepseek-ai/dsh-storage/lib/types/backend.d.ts +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/index.js +65 -1
- package/runtime/node_modules/@deepseek-ai/dsh-storage-domain/lib/types/domain.d.ts +17 -2
- package/runtime/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js +25 -0
- package/runtime/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-subagent/lib/types/control.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/index.js +5522 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/command-args.d.ts +17 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/cicd.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti/tianti.d.ts +7 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/commands/tianti-deliver/tianti-deliver.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/config.d.ts +27 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/index.d.ts +13 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/memory-config.d.ts +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/runtime.d.ts +105 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/aliases.d.ts +11 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/auth.d.ts +20 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/client.d.ts +206 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/config.d.ts +22 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/index.d.ts +6 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/log.d.ts +16 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/tianti/types.d.ts +136 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/codebase.d.ts +19 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/dynamicWorkflow.d.ts +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/engine.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executor.d.ts +11 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/executors.d.ts +15 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/index.d.ts +23 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/memorySuggestions.d.ts +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/openspec.d.ts +31 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/recommend.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/render.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/requirementContext.d.ts +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/scenarioUpgrade.d.ts +24 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/state.d.ts +16 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/store.d.ts +33 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/templates.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/types.d.ts +385 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/wanmaDevelopmentWorkflow/writeReviewSync.d.ts +6 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/index.d.ts +29 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/store.d.ts +20 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/services/writeReview/types.d.ts +49 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/lib/types/tools.d.ts +12 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tianti/package.json +57 -0
- package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +157 -22
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-D5kpKf--.css +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js +133 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Dz_cDcce.js.map +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-apple-touch-icon.png +0 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-icon-32.png +0 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/chatcode-mask-icon.svg +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon-dark.svg +1 -3
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.ico +0 -0
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/favicon.svg +1 -3
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +8 -4
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/preview.html +8 -4
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/package.json +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +325 -37
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/invariant.js +6 -1
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.d.ts +6 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/entity.js +23 -17
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +41 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +314 -23
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.d.ts +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/spec.js +4 -0
- package/lib/dump-config-CijLv_kn.js +0 -2
- package/lib/tuiDisplayPrefs-Dm_fULiR.js +0 -204
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-DUvMhLle.css +0 -1
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js +0 -127
- package/runtime/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Q6zc2uHV.js.map +0 -1
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import { statSync } from "node:fs";
|
|
2
|
+
import WebSocket, { WebSocketServer } from "ws";
|
|
2
3
|
import z from "@deepseek-ai/schemastery";
|
|
3
4
|
//#region lib/types/events.js
|
|
4
|
-
/** System
|
|
5
|
+
/** System endpoint pushing graph/rebuilt frames (wire protocol constant). */
|
|
5
6
|
const EVENTS_ENDPOINT = "/plugins/events";
|
|
6
7
|
EVENTS_ENDPOINT.slice(1);
|
|
7
8
|
//#endregion
|
|
9
|
+
//#region lib/types/config.js
|
|
10
|
+
/** Shared Host polling and browser reconnection configuration. */
|
|
11
|
+
/** Validate both halves against the same defaults. */
|
|
12
|
+
const Config = z.object({
|
|
13
|
+
pollIntervalMs: z.number().step(1).min(1).default(500),
|
|
14
|
+
reconnectDelayMs: z.number().step(1).min(1).default(1e3)
|
|
15
|
+
});
|
|
16
|
+
//#endregion
|
|
8
17
|
//#region lib/types/index.js
|
|
9
18
|
/**
|
|
10
19
|
* Host transport for Web client graph changes and rebuilt bundles. One interval
|
|
11
20
|
* stat-polls every graph row's client bundle (polling by design: network mounts
|
|
12
21
|
* deliver no inotify events), reports changes through
|
|
13
|
-
* `clientModules.rebuilt(id)`, and serves
|
|
22
|
+
* `clientModules.rebuilt(id)`, and serves `/plugins/events` over WebSocket
|
|
23
|
+
* (with the legacy SSE route retained)
|
|
14
24
|
* broadcasting graph/rebuilt frames to the browser half (src/client/).
|
|
15
25
|
* The Web composition mounts this transport for live graph updates;
|
|
16
26
|
* a development rebuild watcher also supplies bundle changes.
|
|
@@ -19,7 +29,6 @@ EVENTS_ENDPOINT.slice(1);
|
|
|
19
29
|
const name = "client-hmr";
|
|
20
30
|
/** Required services: the client graph and Web route registry. */
|
|
21
31
|
const inject = ["clientModules", "webServer"];
|
|
22
|
-
const Config = z.object({ pollIntervalMs: z.number().step(1).min(1).default(500) });
|
|
23
32
|
/** Serialize one frame as an SSE data line. */
|
|
24
33
|
function sseData(frame) {
|
|
25
34
|
return `data: ${JSON.stringify(frame)}\n\n`;
|
|
@@ -38,7 +47,7 @@ function sameBundleStat(left, right) {
|
|
|
38
47
|
return left.mtimeMs === right.mtimeMs && left.ctimeMs === right.ctimeMs && left.size === right.size;
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
41
|
-
* Mount bundle watches and graph/rebuilt SSE
|
|
50
|
+
* Mount bundle watches and authenticated graph/rebuilt WebSocket delivery, retaining legacy SSE clients.
|
|
42
51
|
* @param ctx - host plugin context carrying clientModules and webServer.
|
|
43
52
|
* @param config - validated {@link Config}.
|
|
44
53
|
*/
|
|
@@ -114,12 +123,17 @@ function apply(ctx, config) {
|
|
|
114
123
|
};
|
|
115
124
|
}, "client-hmr: bundle watches");
|
|
116
125
|
const connections = /* @__PURE__ */ new Set();
|
|
126
|
+
let sockets;
|
|
127
|
+
const broadcast = (frame) => {
|
|
128
|
+
const json = JSON.stringify(frame);
|
|
129
|
+
for (const res of connections) res.write(`data: ${json}\n\n`);
|
|
130
|
+
for (const socket of sockets.clients) if (socket.readyState === WebSocket.OPEN) socket.send(json);
|
|
131
|
+
};
|
|
117
132
|
const publishGraph = () => {
|
|
118
|
-
|
|
133
|
+
broadcast({
|
|
119
134
|
type: "graph",
|
|
120
135
|
graph: ctx.clientModules.graph()
|
|
121
136
|
});
|
|
122
|
-
for (const res of connections) res.write(line);
|
|
123
137
|
};
|
|
124
138
|
const connect = (res) => {
|
|
125
139
|
res.writeHead(200, {
|
|
@@ -137,8 +151,40 @@ function apply(ctx, config) {
|
|
|
137
151
|
connections.delete(res);
|
|
138
152
|
});
|
|
139
153
|
};
|
|
140
|
-
ctx.effect(()
|
|
141
|
-
|
|
154
|
+
ctx.effect(function* () {
|
|
155
|
+
sockets = new WebSocketServer({ noServer: true });
|
|
156
|
+
yield async () => {
|
|
157
|
+
for (const res of connections) res.destroy();
|
|
158
|
+
connections.clear();
|
|
159
|
+
for (const socket of sockets.clients) socket.terminate();
|
|
160
|
+
await new Promise((resolve, reject) => {
|
|
161
|
+
sockets.close((error) => {
|
|
162
|
+
if (error === void 0) resolve();
|
|
163
|
+
else reject(error);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
yield ctx.webServer.registerUpgrade({
|
|
168
|
+
path: EVENTS_ENDPOINT,
|
|
169
|
+
handler(req, socket, head) {
|
|
170
|
+
const connection = ctx.get("connection");
|
|
171
|
+
const rejection = connection === void 0 ? 403 : connection.requestRejection(req);
|
|
172
|
+
if (rejection !== void 0) {
|
|
173
|
+
socket.end(`HTTP/1.1 ${String(rejection)} Rejected\r\nConnection: close\r\nContent-Length: 0\r\n\r\n`);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
sockets.handleUpgrade(req, socket, head, (client) => {
|
|
177
|
+
client.on("error", () => {
|
|
178
|
+
client.terminate();
|
|
179
|
+
});
|
|
180
|
+
client.send(JSON.stringify({
|
|
181
|
+
type: "graph",
|
|
182
|
+
graph: ctx.clientModules.graph()
|
|
183
|
+
}));
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
yield ctx.webServer.register({
|
|
142
188
|
kind: "exact",
|
|
143
189
|
path: EVENTS_ENDPOINT,
|
|
144
190
|
handler: (req, res) => {
|
|
@@ -150,22 +196,14 @@ function apply(ctx, config) {
|
|
|
150
196
|
connect(res);
|
|
151
197
|
}
|
|
152
198
|
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
199
|
+
yield ctx.clientModules.onGraphChanged(publishGraph);
|
|
200
|
+
yield ctx.clientModules.onRebuilt((id, rev) => {
|
|
201
|
+
broadcast({
|
|
156
202
|
type: "rebuilt",
|
|
157
203
|
id,
|
|
158
204
|
rev
|
|
159
205
|
});
|
|
160
|
-
for (const res of connections) res.write(line);
|
|
161
206
|
});
|
|
162
|
-
return () => {
|
|
163
|
-
unsubscribeGraph();
|
|
164
|
-
unsubscribe();
|
|
165
|
-
disposeRoute();
|
|
166
|
-
for (const res of connections) res.destroy();
|
|
167
|
-
connections.clear();
|
|
168
|
-
};
|
|
169
207
|
}, "client-hmr: /plugins/events channel");
|
|
170
208
|
}
|
|
171
209
|
//#endregion
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** WebSocket transport for page-owned client entry reconciliation and rebuilt code replacement. */
|
|
2
2
|
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import { Config } from '../config.ts';
|
|
3
4
|
export type { PluginsEventFrame } from '../events.ts';
|
|
5
|
+
export { Config } from '../config.ts';
|
|
4
6
|
/** Cordis plugin name. */
|
|
5
7
|
export declare const name = "client-hmr";
|
|
6
8
|
/** Required service: the client module system whose entry controller handles received frames. */
|
|
@@ -8,6 +10,7 @@ export declare const inject: string[];
|
|
|
8
10
|
/**
|
|
9
11
|
* Forward graph snapshots and rebuilds to the page's shared serial controller.
|
|
10
12
|
* @param ctx - Plugin context with the client module system.
|
|
13
|
+
* @param config - validated browser reconnection timing.
|
|
11
14
|
*/
|
|
12
|
-
export declare function apply(ctx: Context): void;
|
|
15
|
+
export declare function apply(ctx: Context, config: Config): void;
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Shared Host polling and browser reconnection configuration. */
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
/** Timing controls for the plugin reload transport. */
|
|
4
|
+
export interface Config {
|
|
5
|
+
/** Bundle stat-poll interval in milliseconds. Default: 500. */
|
|
6
|
+
pollIntervalMs?: number;
|
|
7
|
+
/** Browser WebSocket reconnection delay in milliseconds. Default: 1000. */
|
|
8
|
+
reconnectDelayMs?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Validate both halves against the same defaults. */
|
|
11
|
+
export declare const Config: z<Config, Required<Config>>;
|
|
12
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Wire protocol of the `/plugins/events` SSE channel — single source for
|
|
2
|
+
* Wire protocol of the `/plugins/events` WebSocket and legacy SSE channel — single source for
|
|
3
3
|
* both halves of this package. Frames still cross a wire boundary: the
|
|
4
4
|
* browser half validates them at its JSON parse point; sharing the type keeps
|
|
5
5
|
* the two ends from drifting, not from parsing.
|
|
6
6
|
*/
|
|
7
7
|
import type { WebBootGraph } from '@deepseek-ai/dsh-client-modules';
|
|
8
|
-
/** One
|
|
8
|
+
/** One JSON frame: the settled graph on connection or change, or one rebuilt bundle notice. */
|
|
9
9
|
export type PluginsEventFrame = {
|
|
10
10
|
type: 'graph';
|
|
11
11
|
graph: WebBootGraph;
|
|
@@ -30,11 +30,11 @@ export type PluginsEventParseResult = {
|
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Validate the frame envelope; the module controller parses the complete graph before updating its index.
|
|
33
|
-
* @param value - Parsed JSON value from the
|
|
33
|
+
* @param value - Parsed JSON value from the transport message.
|
|
34
34
|
* @returns the known frame, an unknown-type marker, or an invalid marker.
|
|
35
35
|
*/
|
|
36
36
|
export declare function parsePluginsEventFrame(value: unknown): PluginsEventParseResult;
|
|
37
|
-
/** System
|
|
37
|
+
/** System endpoint pushing graph/rebuilt frames (wire protocol constant). */
|
|
38
38
|
export declare const EVENTS_ENDPOINT = "/plugins/events";
|
|
39
39
|
/**
|
|
40
40
|
* Document-relative form of {@link EVENTS_ENDPOINT} used by the browser half.
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
-
import
|
|
2
|
+
import { Config } from './config.ts';
|
|
3
3
|
export type { PluginsEventFrame } from './events.ts';
|
|
4
4
|
export { EVENTS_ENDPOINT } from './events.ts';
|
|
5
|
+
export { Config } from './config.ts';
|
|
5
6
|
/** Cordis plugin name. */
|
|
6
7
|
export declare const name = "client-hmr";
|
|
7
8
|
/** Required services: the client graph and Web route registry. */
|
|
8
9
|
export declare const inject: string[];
|
|
9
|
-
/** Plugin config, validated by the same-named schemastery schema. */
|
|
10
|
-
export interface Config {
|
|
11
|
-
/** Bundle stat-poll interval in milliseconds (default 500, the build-side watcher's polling default). */
|
|
12
|
-
pollIntervalMs?: number;
|
|
13
|
-
}
|
|
14
|
-
export declare const Config: z<Config>;
|
|
15
10
|
/**
|
|
16
|
-
* Mount bundle watches and graph/rebuilt SSE
|
|
11
|
+
* Mount bundle watches and authenticated graph/rebuilt WebSocket delivery, retaining legacy SSE clients.
|
|
17
12
|
* @param ctx - host plugin context carrying clientModules and webServer.
|
|
18
13
|
* @param config - validated {@link Config}.
|
|
19
14
|
*/
|
|
@@ -40,12 +40,16 @@
|
|
|
40
40
|
},
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@deepseek-ai/schemastery": "workspace:~"
|
|
43
|
+
"@deepseek-ai/schemastery": "workspace:~",
|
|
44
|
+
"ws": "^8.21.0"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
46
|
-
"@deepseek-ai/cordis": "workspace:~"
|
|
47
|
+
"@deepseek-ai/cordis": "workspace:~",
|
|
48
|
+
"@deepseek-ai/dsh-client-connection": "workspace:*"
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|
|
51
|
+
"@deepseek-ai/dsh-client-connection": "workspace:*",
|
|
52
|
+
"@types/ws": "^8.18.1",
|
|
49
53
|
"@deepseek-ai/cordis-plugin-loader": "workspace:~",
|
|
50
54
|
"@deepseek-ai/dsh-client-modules": "workspace:*",
|
|
51
55
|
"@deepseek-ai/dsh-host-webserver": "workspace:*",
|
|
@@ -211,7 +211,7 @@ window.__ModuleLoader__.load({
|
|
|
211
211
|
}
|
|
212
212
|
//#endregion
|
|
213
213
|
//#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-chat/src/client/chat/MessageItem.module.css.mjs
|
|
214
|
-
const css$17 = ".b0VkcW_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.b0VkcW_userStack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;gap:8px;display:flex}.b0VkcW_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font
|
|
214
|
+
const css$17 = ".b0VkcW_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.b0VkcW_userStack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;gap:8px;display:flex}.b0VkcW_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;padding:10px 16px}.b0VkcW_referenceSummary{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.b0VkcW_contextRow{padding:2px 0}.b0VkcW_compactionRow{--dsh-compaction-header-height:calc(24px + var(--dsh-content-font-delta,0px));padding:2px 0}.b0VkcW_compactionButton{width:100%;height:var(--dsh-compaction-header-height);border-radius:var(--dsw-radius-sm);min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:none;align-items:center;padding:0;display:flex}.b0VkcW_compactionRow:has(.b0VkcW_compactionBody) .b0VkcW_compactionButton{z-index:7;background:var(--dsw-alias-bg-base);border-radius:0;position:sticky;top:0}.b0VkcW_compactionBody :has(>[data-code-block-banner]){top:var(--dsh-compaction-header-height)}.b0VkcW_compactionRow:has(.b0VkcW_compactionBody) .b0VkcW_compactionButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.b0VkcW_compactionButton:not(:disabled){cursor:pointer}.b0VkcW_compactionButton:not(:disabled):hover{background:var(--dsw-alias-interactive-bg-hover)}.b0VkcW_compactionLeading{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-secondary);flex:none;place-items:center;margin-right:6px;display:inline-grid}.b0VkcW_compactionLeading svg{width:calc(14px + var(--dsh-content-font-delta,0px));height:calc(14px + var(--dsh-content-font-delta,0px))}.b0VkcW_compactionContextIcon,.b0VkcW_compactionDisclosureIcon{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.b0VkcW_compactionDisclosureIcon,.b0VkcW_compactionButton:not(:disabled):hover .b0VkcW_compactionContextIcon,.b0VkcW_compactionButton:not(:disabled):focus-visible .b0VkcW_compactionContextIcon{opacity:0}.b0VkcW_compactionButton:not(:disabled):hover .b0VkcW_compactionDisclosureIcon,.b0VkcW_compactionButton:not(:disabled):focus-visible .b0VkcW_compactionDisclosureIcon{opacity:1}.b0VkcW_compactionTitle{font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-primary-dimmed);flex:none}.b0VkcW_compactionSep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.b0VkcW_compactionSummary{min-width:0;color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.b0VkcW_compactionBody{padding:4px 0 4px calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px))}.b0VkcW_retryRow{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px))}.b0VkcW_retrySummary{border-radius:var(--dsw-radius-sm);width:fit-content;color:inherit;cursor:pointer;user-select:none;align-items:center;gap:7px;padding:2px 0;list-style:none;display:inline-flex}.b0VkcW_retrySummary::-webkit-details-marker{display:none}.b0VkcW_retrySummary:after{content:\"\";opacity:.8;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.b0VkcW_retrySummary:hover{color:var(--dsw-alias-label-secondary)}.b0VkcW_retrySummary:focus-visible{outline:1.5px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.b0VkcW_retryText{color:inherit}.b0VkcW_retryRow[data-active] .b0VkcW_retryText{background:linear-gradient(90deg, var(--dsw-alias-label-tertiary) 0%, var(--dsw-alias-label-tertiary) 40%, var(--dsw-alias-label-secondary) 50%, var(--dsw-alias-label-tertiary) 60%, var(--dsw-alias-label-tertiary) 100%);color:#0000;background-position:100%;background-size:200% 100%;background-clip:text;animation:1.6s ease-in-out infinite b0VkcW_retry-shimmer}.b0VkcW_retryRow[open] .b0VkcW_retrySummary:after{transform:rotate(45deg)}.b0VkcW_retryDetails{overflow-wrap:anywhere;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px));gap:2px;margin-top:3px;padding-left:14px;display:grid}.b0VkcW_retryDetailLabel{color:var(--dsw-alias-label-secondary)}.b0VkcW_turnErrorRow{font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:8px;padding:2px 0;display:grid}.b0VkcW_turnErrorDot{margin-top:5px}.b0VkcW_turnErrorCopy{overflow-wrap:anywhere;min-width:0}.b0VkcW_turnErrorTitle{color:var(--dsw-alias-state-error-primary);margin-right:6px;font-weight:600}.b0VkcW_turnErrorMessage{color:var(--dsw-alias-label-secondary)}.b0VkcW_turnErrorCode{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-markdown-code-block-small)}.b0VkcW_maxTokensTitle{color:var(--dsw-alias-state-warn-primary);margin-right:6px;font-weight:600}@keyframes b0VkcW_retry-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.b0VkcW_retryRow[data-active] .b0VkcW_retryText{color:inherit;background:0 0;animation:none}}.b0VkcW_attachmentRow{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.b0VkcW_fileCard{border:.5px solid var(--dsw-alias-border-l2,#0000001f);border-radius:var(--dsw-radius-xl);background:var(--dsw-specific-input-major,transparent);box-sizing:border-box;flex:0 0 240px;align-items:center;gap:10px;width:240px;min-height:64px;padding:8px 12px;display:inline-flex}.b0VkcW_fileIcon{flex:none;width:28px;height:28px}.b0VkcW_fileContent{flex-direction:column;flex:1;min-width:0;display:flex}.b0VkcW_fileName{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.b0VkcW_fileMeta{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-tertiary,#00000073);font-size:12px;line-height:15px;overflow:hidden}";
|
|
215
215
|
const tagId$17 = "@deepseek-ai/dsh-client-ui-chat/MessageItem.module.css";
|
|
216
216
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) {
|
|
217
217
|
const tag = document.createElement("style");
|
|
@@ -5773,7 +5773,7 @@ window.__ModuleLoader__.load({
|
|
|
5773
5773
|
});
|
|
5774
5774
|
//#endregion
|
|
5775
5775
|
//#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-chat/src/client/chat/AssistantMarkdown.module.css.mjs
|
|
5776
|
-
const css$8 = ".LSXNsa_root{font
|
|
5776
|
+
const css$8 = ".LSXNsa_root{font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary);flex-direction:column;display:flex}.LSXNsa_body{--dsh-assistant-block-gap:16px;gap:var(--dsh-assistant-block-gap);flex-direction:column;display:flex}.LSXNsa_body .md-table-wide{--dsh-table-spare:max(0px, calc((100cqw - var(--dsh-chat-content-width)) / 2));--dsh-table-lead:calc(var(--dsh-table-spare) + min(var(--dsh-chat-content-width), 100cqw) - 100%);box-sizing:border-box;width:calc(100% + var(--dsh-table-lead) + var(--dsh-table-spare));max-width:none;margin-left:calc(-1 * var(--dsh-table-lead));padding-left:var(--dsh-table-lead)}.LSXNsa_body .md-table-wide>table{z-index:1;position:relative}.LSXNsa_body>[data-turn-process-inline][hidden]{margin-bottom:calc(-1 * var(--dsh-assistant-block-gap))}.LSXNsa_stopped{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-tertiary);align-self:flex-start;padding:0 6px;font-size:11px;line-height:18px}.LSXNsa_actions{margin-top:16px;margin-left:-6px}";
|
|
5777
5777
|
const tagId$8 = "@deepseek-ai/dsh-client-ui-chat/AssistantMarkdown.module.css";
|
|
5778
5778
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
|
|
5779
5779
|
const tag = document.createElement("style");
|
|
@@ -5874,6 +5874,7 @@ window.__ModuleLoader__.load({
|
|
|
5874
5874
|
"data-streaming": streaming || void 0,
|
|
5875
5875
|
children: (0, react_jsx_runtime.jsxs)("div", {
|
|
5876
5876
|
className: AssistantMarkdown_module_css_default.body,
|
|
5877
|
+
"data-assistant-body": true,
|
|
5877
5878
|
children: [rendered, interrupted && (groupPart === void 0 || groupPart === "response" || !blocks.some((block) => block.kind !== "reasoning" && block.kind !== "tool-call")) && (0, react_jsx_runtime.jsx)("span", {
|
|
5878
5879
|
className: AssistantMarkdown_module_css_default.stopped,
|
|
5879
5880
|
children: t("message.stopped")
|
|
@@ -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" | "
|
|
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" | "
|
|
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">;
|
|
@@ -883,11 +883,21 @@ window.__ModuleLoader__.load({
|
|
|
883
883
|
});
|
|
884
884
|
}
|
|
885
885
|
const visible = rows.filter((c) => req.position === "leading" || c.hint === void 0);
|
|
886
|
+
const exact = req.position === "leading" ? this.directory.resolve(session.sessionId, req.query) : void 0;
|
|
887
|
+
if (exact?.input?.suggestions?.length) return exact.input.suggestions.map((suggestion) => ({
|
|
888
|
+
name: `${exact.name} ${suggestion.value}`,
|
|
889
|
+
description: suggestion.description,
|
|
890
|
+
value: exact.name
|
|
891
|
+
}));
|
|
886
892
|
return req.query === "" ? sectionRows(visible, this.t) : (0, _deepseek_ai_dsh_client_ui_primitives.rankByName)(visible, req.query);
|
|
887
893
|
}
|
|
888
894
|
/** Decision table, menu column: contribution/decorated-host → popup or action; host input → claim; host bare → detached execute. */
|
|
889
895
|
dispatch(pick) {
|
|
890
896
|
const name = pick.candidate.name;
|
|
897
|
+
if (pick.position === "leading" && pick.candidate.value !== void 0) {
|
|
898
|
+
const command = this.directory.resolve(pick.session.sessionId, pick.candidate.value);
|
|
899
|
+
if (command?.input?.suggestions?.find((item) => `${command.name} ${item.value}` === name) !== void 0) return { text: `/${name} ` };
|
|
900
|
+
}
|
|
891
901
|
const contribution = this.live.contributions.get(name);
|
|
892
902
|
if (contribution !== void 0 && contribution.available(pick.session)) {
|
|
893
903
|
this.invoke(name, contribution.ui, pick.session, {
|
|
@@ -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
|
|
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");
|
|
@@ -13,7 +13,7 @@ export declare class PresentedOpenController {
|
|
|
13
13
|
/** File action URLs key the state across Sessions, turns, and both clickable surfaces. */
|
|
14
14
|
readonly state: import("@deepseek-ai/dsh-client-store").SnapshotStore<Record<string, PresentedOpenPhase | undefined>>;
|
|
15
15
|
/** Native destination metadata, or a retryable read failure. */
|
|
16
|
-
readonly host: import("@deepseek-ai/dsh-client-store").SnapshotStore<"error" |
|
|
16
|
+
readonly host: import("@deepseek-ai/dsh-client-store").SnapshotStore<PresentedHost | "error" | null>;
|
|
17
17
|
private readonly expiry;
|
|
18
18
|
private loading;
|
|
19
19
|
private metadata;
|
|
@@ -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
|
|
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");
|
|
@@ -252,6 +252,7 @@ window.__ModuleLoader__.load({
|
|
|
252
252
|
});
|
|
253
253
|
return result;
|
|
254
254
|
}
|
|
255
|
+
if (this.catalog.store.getSnapshot().value?.selectionScope === "process") this.catalog.refresh();
|
|
255
256
|
this.store.update((s) => {
|
|
256
257
|
s.status = "ready";
|
|
257
258
|
s.pending = null;
|
|
@@ -289,13 +290,14 @@ window.__ModuleLoader__.load({
|
|
|
289
290
|
if (this.disposed) return;
|
|
290
291
|
const catalog = this.catalog.store.getSnapshot();
|
|
291
292
|
const projected = modelSelectionProjection(this.projected.getSnapshot());
|
|
292
|
-
const intended = projected?.next ?? catalog.value?.default;
|
|
293
|
+
const intended = catalog.value?.selectionScope === "process" ? catalog.value.default : projected?.next ?? catalog.value?.default;
|
|
293
294
|
const reasoning = intended === void 0 ? void 0 : this.catalog.reasoningFor(intended);
|
|
294
295
|
const effort = intended?.reasoningEffort ?? reasoning?.defaultEffort;
|
|
295
296
|
const retainedEffort = effort === void 0 ? void 0 : reasoning?.efforts.find((level) => level.id === effort)?.name ?? effort;
|
|
296
297
|
if (catalog.status !== "ready" || catalog.value === null || projected === void 0) {
|
|
297
298
|
this.store.set({
|
|
298
299
|
current: catalog.value === null ? null : this.store.getSnapshot().current,
|
|
300
|
+
...catalog.value?.savedDisplayName === void 0 ? {} : { savedDisplayName: catalog.value.savedDisplayName },
|
|
299
301
|
...retainedEffort === void 0 ? {} : { retainedEffort },
|
|
300
302
|
routable: null,
|
|
301
303
|
groups: catalog.value?.groups ?? [],
|
|
@@ -306,10 +308,11 @@ window.__ModuleLoader__.load({
|
|
|
306
308
|
});
|
|
307
309
|
return;
|
|
308
310
|
}
|
|
309
|
-
const selection =
|
|
311
|
+
const selection = intended ?? catalog.value.default;
|
|
310
312
|
const routable = catalog.value.groups.some((group) => group.id === selection.provider && group.models.some((model) => model.id === selection.model));
|
|
311
313
|
this.store.set({
|
|
312
|
-
current: selection,
|
|
314
|
+
current: selection.provider === "" || selection.model === "" ? null : selection,
|
|
315
|
+
...catalog.value.savedDisplayName === void 0 ? {} : { savedDisplayName: catalog.value.savedDisplayName },
|
|
313
316
|
...retainedEffort === void 0 ? {} : { retainedEffort },
|
|
314
317
|
routable,
|
|
315
318
|
groups: catalog.value.groups,
|
|
@@ -362,6 +365,9 @@ window.__ModuleLoader__.load({
|
|
|
362
365
|
ctx.remote.$on("llm/adapters-updated", () => {
|
|
363
366
|
this.catalog.refresh();
|
|
364
367
|
});
|
|
368
|
+
ctx.remote.$on("api-session/model-updated", () => {
|
|
369
|
+
this.catalog.refresh();
|
|
370
|
+
});
|
|
365
371
|
ctx.remote.$on("settings/document-updated", () => {
|
|
366
372
|
this.catalog.refresh();
|
|
367
373
|
});
|
|
@@ -413,7 +419,7 @@ window.__ModuleLoader__.load({
|
|
|
413
419
|
}
|
|
414
420
|
//#endregion
|
|
415
421
|
//#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}";
|
|
422
|
+
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
423
|
const tagId = "@deepseek-ai/dsh-client-ui-model-selection/ModelSelect.module.css";
|
|
418
424
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
419
425
|
const tag = document.createElement("style");
|
|
@@ -423,6 +429,7 @@ window.__ModuleLoader__.load({
|
|
|
423
429
|
document.head.appendChild(tag);
|
|
424
430
|
}
|
|
425
431
|
var ModelSelect_module_css_default = {
|
|
432
|
+
"capabilityTag": "mVaOWa_capabilityTag",
|
|
426
433
|
"cell": "mVaOWa_cell",
|
|
427
434
|
"cellChevron": "mVaOWa_cellChevron",
|
|
428
435
|
"cellLabel": "mVaOWa_cellLabel",
|
|
@@ -436,6 +443,7 @@ window.__ModuleLoader__.load({
|
|
|
436
443
|
"groupTitle": "mVaOWa_groupTitle",
|
|
437
444
|
"groups": "mVaOWa_groups",
|
|
438
445
|
"menu": "mVaOWa_menu",
|
|
446
|
+
"modelHeading": "mVaOWa_modelHeading",
|
|
439
447
|
"modelName": "mVaOWa_modelName",
|
|
440
448
|
"option": "mVaOWa_option",
|
|
441
449
|
"optionCopy": "mVaOWa_optionCopy",
|
|
@@ -519,6 +527,27 @@ window.__ModuleLoader__.load({
|
|
|
519
527
|
...model.reasoning?.defaultEffort === void 0 ? {} : { reasoningEffort: model.reasoning.defaultEffort }
|
|
520
528
|
}
|
|
521
529
|
}))), [groups]);
|
|
530
|
+
const sections = (0, react.useMemo)(() => {
|
|
531
|
+
const result = [];
|
|
532
|
+
for (const group of groups) {
|
|
533
|
+
const sectionId = group.custom === true ? "custom-models" : group.id;
|
|
534
|
+
let section = result.find((candidate) => candidate.id === sectionId);
|
|
535
|
+
if (section === void 0) {
|
|
536
|
+
section = {
|
|
537
|
+
id: sectionId,
|
|
538
|
+
name: group.custom === true ? t("provider.custom") : group.id === "deepseek-account" ? t("provider.account") : group.name,
|
|
539
|
+
choices: []
|
|
540
|
+
};
|
|
541
|
+
result.push(section);
|
|
542
|
+
}
|
|
543
|
+
section.choices.push(...choices.filter((choice) => choice.group.id === group.id));
|
|
544
|
+
}
|
|
545
|
+
return result;
|
|
546
|
+
}, [
|
|
547
|
+
groups,
|
|
548
|
+
choices,
|
|
549
|
+
t
|
|
550
|
+
]);
|
|
522
551
|
const currentChoice = choices[state.current === null ? -1 : choices.findIndex((c) => c.selection.provider === state.current?.provider && c.selection.model === state.current.model)];
|
|
523
552
|
const reasoning = currentChoice?.model.reasoning;
|
|
524
553
|
const effectiveEffort = state.current?.reasoningEffort ?? reasoning?.defaultEffort;
|
|
@@ -681,7 +710,7 @@ window.__ModuleLoader__.load({
|
|
|
681
710
|
};
|
|
682
711
|
const choose = (selection) => {
|
|
683
712
|
if (state.current?.provider === selection.provider && state.current.model === selection.model) {
|
|
684
|
-
|
|
713
|
+
submit({ ...state.current });
|
|
685
714
|
return;
|
|
686
715
|
}
|
|
687
716
|
submit(selection);
|
|
@@ -699,7 +728,9 @@ window.__ModuleLoader__.load({
|
|
|
699
728
|
});
|
|
700
729
|
};
|
|
701
730
|
const waiting = state.current === null && state.status === "loading";
|
|
702
|
-
const
|
|
731
|
+
const savedName = state.savedDisplayName?.provider === state.current?.provider && state.savedDisplayName?.model === state.current?.model ? state.savedDisplayName?.name : void 0;
|
|
732
|
+
const catalogName = currentChoice === void 0 ? void 0 : displayModelName(currentChoice.model).trim();
|
|
733
|
+
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
734
|
const triggerLabel = effortLabel === void 0 ? modelLabel : `${modelLabel} · ${effortLabel}`;
|
|
704
735
|
const triggerAria = waiting ? t("trigger.loading") : state.current === null ? t("trigger.selectAria") : effortLabel === void 0 ? t("trigger.aria", { model: modelLabel }) : t("trigger.ariaEffort", {
|
|
705
736
|
model: modelLabel,
|
|
@@ -829,8 +860,8 @@ window.__ModuleLoader__.load({
|
|
|
829
860
|
}, failure.id)),
|
|
830
861
|
(0, react_jsx_runtime.jsx)("div", {
|
|
831
862
|
className: clsx(ModelSelect_module_css_default.groups, "scrollable"),
|
|
832
|
-
children:
|
|
833
|
-
const headingId = `${id}-${
|
|
863
|
+
children: sections.map((section) => {
|
|
864
|
+
const headingId = `${id}-${section.id}`;
|
|
834
865
|
return (0, react_jsx_runtime.jsxs)("section", {
|
|
835
866
|
role: "group",
|
|
836
867
|
"aria-labelledby": headingId,
|
|
@@ -838,8 +869,8 @@ window.__ModuleLoader__.load({
|
|
|
838
869
|
children: [(0, react_jsx_runtime.jsx)("div", {
|
|
839
870
|
className: ModelSelect_module_css_default.groupTitle,
|
|
840
871
|
id: headingId,
|
|
841
|
-
children:
|
|
842
|
-
}),
|
|
872
|
+
children: section.name
|
|
873
|
+
}), section.choices.map(({ group, model }) => {
|
|
843
874
|
const selected = state.current?.provider === group.id && state.current.model === model.id;
|
|
844
875
|
return (0, react_jsx_runtime.jsxs)("button", {
|
|
845
876
|
ref: itemRef(),
|
|
@@ -857,17 +888,32 @@ window.__ModuleLoader__.load({
|
|
|
857
888
|
},
|
|
858
889
|
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
859
890
|
className: ModelSelect_module_css_default.optionCopy,
|
|
860
|
-
children: (0, react_jsx_runtime.
|
|
861
|
-
className: ModelSelect_module_css_default.
|
|
862
|
-
children:
|
|
891
|
+
children: (0, react_jsx_runtime.jsxs)("span", {
|
|
892
|
+
className: ModelSelect_module_css_default.modelHeading,
|
|
893
|
+
children: [
|
|
894
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
895
|
+
className: ModelSelect_module_css_default.modelName,
|
|
896
|
+
children: displayModelName(model)
|
|
897
|
+
}),
|
|
898
|
+
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tag, {
|
|
899
|
+
tone: "neutral",
|
|
900
|
+
className: ModelSelect_module_css_default.capabilityTag,
|
|
901
|
+
children: t("option.text")
|
|
902
|
+
}),
|
|
903
|
+
model.inputModalities?.includes("image") === true && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tag, {
|
|
904
|
+
tone: "info",
|
|
905
|
+
className: ModelSelect_module_css_default.capabilityTag,
|
|
906
|
+
children: t("option.image")
|
|
907
|
+
})
|
|
908
|
+
]
|
|
863
909
|
})
|
|
864
910
|
}), (0, react_jsx_runtime.jsx)("span", {
|
|
865
911
|
className: ModelSelect_module_css_default.check,
|
|
866
912
|
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
913
|
})]
|
|
868
|
-
}, model.id);
|
|
914
|
+
}, `${group.id}/${model.id}`);
|
|
869
915
|
})]
|
|
870
|
-
},
|
|
916
|
+
}, section.id);
|
|
871
917
|
})
|
|
872
918
|
}),
|
|
873
919
|
state.status === "ready" && choices.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -933,10 +979,13 @@ window.__ModuleLoader__.load({
|
|
|
933
979
|
*/
|
|
934
980
|
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
935
981
|
const zh = {
|
|
982
|
+
"provider.custom": "自定义模型",
|
|
936
983
|
"provider.account": "DeepSeek 账号",
|
|
937
984
|
"command.label": "模型",
|
|
938
985
|
"command.description": "选择本会话使用的模型",
|
|
939
986
|
"option.loadError": "目录加载失败:{message}",
|
|
987
|
+
"option.text": "文本",
|
|
988
|
+
"option.image": "识图",
|
|
940
989
|
"option.deepseekV4Flash.description": "快速、高效且经济;适合目标明确、常规或并行任务。",
|
|
941
990
|
"option.deepseekV4Pro.description": "更强的自主编码、知识与复杂推理能力;适合复杂或质量优先的任务,但成本更高。",
|
|
942
991
|
"trigger.fallback": "请选择模型",
|
|
@@ -958,10 +1007,13 @@ window.__ModuleLoader__.load({
|
|
|
958
1007
|
};
|
|
959
1008
|
/** English dictionary, checked complete against the zh key set. */
|
|
960
1009
|
const en = {
|
|
1010
|
+
"provider.custom": "Custom models",
|
|
961
1011
|
"provider.account": "DeepSeek Account",
|
|
962
1012
|
"command.label": "Model",
|
|
963
1013
|
"command.description": "Select the model for this conversation",
|
|
964
1014
|
"option.loadError": "Catalog failed to load: {message}",
|
|
1015
|
+
"option.text": "Text",
|
|
1016
|
+
"option.image": "Vision",
|
|
965
1017
|
"option.deepseekV4Flash.description": "Fast, efficient, and economical; suited to focused, routine, or parallel tasks.",
|
|
966
1018
|
"option.deepseekV4Pro.description": "Stronger agentic coding, knowledge, and difficult reasoning; suited to complex or quality-critical tasks at higher cost.",
|
|
967
1019
|
"trigger.fallback": "Select model",
|
|
@@ -1001,7 +1053,7 @@ window.__ModuleLoader__.load({
|
|
|
1001
1053
|
function optionsOf(directory, t) {
|
|
1002
1054
|
const rows = [];
|
|
1003
1055
|
for (const group of directory.groups) {
|
|
1004
|
-
const name = group.id === "deepseek-account" ? t("provider.account") : group.name;
|
|
1056
|
+
const name = group.custom === true ? t("provider.custom") : group.id === "deepseek-account" ? t("provider.account") : group.name;
|
|
1005
1057
|
for (const model of group.models) {
|
|
1006
1058
|
const description = descriptionOf(group.id, model, t);
|
|
1007
1059
|
rows.push({
|