@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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
3
|
+
/** Host operations shared with the TUI; no history is opened to list archived Sessions. */
|
|
4
|
+
export interface ArchivedSessionsInjected {
|
|
5
|
+
requestDelete: (id: SessionId) => Promise<void>;
|
|
6
|
+
restore: (id: SessionId) => Promise<void>;
|
|
7
|
+
failureText: (error: unknown) => string;
|
|
8
|
+
}
|
|
9
|
+
type Props = PropsRuntime<'settings.section'> & PropsLocale<'workspace'> & InjectFace<ArchivedSessionsInjected>;
|
|
10
|
+
/** Archived roots, including archived empty Sessions, with one global search and bounded DOM. */
|
|
11
|
+
export declare function ArchivedSessions({ useSessions, useWorkspaces, requestDelete, restore, failureText, t }: Props): import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ArchivedSessions.d.ts.map
|
|
@@ -281,6 +281,10 @@ export type SessionMenuItemProps<Injected extends object = object> = PropsRuntim
|
|
|
281
281
|
export type SessionRowActionProps<Injected extends object = object> = PropsRuntime<'sidebar.workspaces.session.row.action'> & PropsLocale<'workspace'> & InjectFace<Injected>;
|
|
282
282
|
/** One transient Workspace notice rendered by the overlay toast entry. */
|
|
283
283
|
export type RowToast = {
|
|
284
|
+
kind: 'sessionOperation';
|
|
285
|
+
message: string;
|
|
286
|
+
success: boolean;
|
|
287
|
+
} | {
|
|
284
288
|
kind: 'archived';
|
|
285
289
|
sessionId: SessionId;
|
|
286
290
|
} | {
|
package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts
CHANGED
|
@@ -5,6 +5,25 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
7
7
|
export declare const zh: {
|
|
8
|
+
'archive.manager.title': string;
|
|
9
|
+
'archive.manager.description': string;
|
|
10
|
+
'archive.manager.search': string;
|
|
11
|
+
'archive.manager.restoreAria': string;
|
|
12
|
+
'archive.manager.deleteAria': string;
|
|
13
|
+
'archive.manager.restore': string;
|
|
14
|
+
'archive.manager.delete': string;
|
|
15
|
+
'archive.manager.previous': string;
|
|
16
|
+
'archive.manager.next': string;
|
|
17
|
+
'archive.manager.page': string;
|
|
18
|
+
'archive.manager.confirmTitle': string;
|
|
19
|
+
'archive.manager.confirmDescription': string;
|
|
20
|
+
'archive.manager.deleting': string;
|
|
21
|
+
'archive.manager.busy': string;
|
|
22
|
+
'archive.manager.notArchived': string;
|
|
23
|
+
'archive.manager.scopeChanged': string;
|
|
24
|
+
'archive.manager.deleted': string;
|
|
25
|
+
'archive.manager.restored': string;
|
|
26
|
+
'archive.manager.failed': string;
|
|
8
27
|
'defaultWorkspace.failed': string;
|
|
9
28
|
'group.ungrouped': string;
|
|
10
29
|
'session.new': string;
|
|
@@ -15,6 +34,7 @@ export declare const zh: {
|
|
|
15
34
|
'shortcut.forkFailed': string;
|
|
16
35
|
'section.workspaces': string;
|
|
17
36
|
'section.sessions': string;
|
|
37
|
+
'section.recent': string;
|
|
18
38
|
'viewOptions.label': string;
|
|
19
39
|
'groupBy.label': string;
|
|
20
40
|
'groupBy.workspace': string;
|
|
@@ -43,6 +63,7 @@ export declare const zh: {
|
|
|
43
63
|
'search.hasMore': string;
|
|
44
64
|
'menu.addWorkspace': string;
|
|
45
65
|
'picker.loading': string;
|
|
66
|
+
'picker.failed': string;
|
|
46
67
|
'conflict.named': string;
|
|
47
68
|
'folderError.title': string;
|
|
48
69
|
'folderError.retry': string;
|
|
@@ -121,6 +142,25 @@ export declare const zh: {
|
|
|
121
142
|
export type WorkspaceKey = keyof typeof zh;
|
|
122
143
|
/** English dictionary, checked complete against the zh key set. */
|
|
123
144
|
export declare const en: {
|
|
145
|
+
'archive.manager.title': string;
|
|
146
|
+
'archive.manager.description': string;
|
|
147
|
+
'archive.manager.search': string;
|
|
148
|
+
'archive.manager.restoreAria': string;
|
|
149
|
+
'archive.manager.deleteAria': string;
|
|
150
|
+
'archive.manager.restore': string;
|
|
151
|
+
'archive.manager.delete': string;
|
|
152
|
+
'archive.manager.previous': string;
|
|
153
|
+
'archive.manager.next': string;
|
|
154
|
+
'archive.manager.page': string;
|
|
155
|
+
'archive.manager.confirmTitle': string;
|
|
156
|
+
'archive.manager.confirmDescription': string;
|
|
157
|
+
'archive.manager.deleting': string;
|
|
158
|
+
'archive.manager.busy': string;
|
|
159
|
+
'archive.manager.notArchived': string;
|
|
160
|
+
'archive.manager.scopeChanged': string;
|
|
161
|
+
'archive.manager.deleted': string;
|
|
162
|
+
'archive.manager.restored': string;
|
|
163
|
+
'archive.manager.failed': string;
|
|
124
164
|
'defaultWorkspace.failed': string;
|
|
125
165
|
'group.ungrouped': string;
|
|
126
166
|
'session.new': string;
|
|
@@ -131,6 +171,7 @@ export declare const en: {
|
|
|
131
171
|
'shortcut.forkFailed': string;
|
|
132
172
|
'section.workspaces': string;
|
|
133
173
|
'section.sessions': string;
|
|
174
|
+
'section.recent': string;
|
|
134
175
|
'viewOptions.label': string;
|
|
135
176
|
'groupBy.label': string;
|
|
136
177
|
'groupBy.workspace': string;
|
|
@@ -159,6 +200,7 @@ export declare const en: {
|
|
|
159
200
|
'search.hasMore': string;
|
|
160
201
|
'menu.addWorkspace': string;
|
|
161
202
|
'picker.loading': string;
|
|
203
|
+
'picker.failed': string;
|
|
162
204
|
'conflict.named': string;
|
|
163
205
|
'folderError.title': string;
|
|
164
206
|
'folderError.retry': string;
|
package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/recent.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Metadata-only recency projection, independent of Workspace and pin order. */
|
|
2
|
+
import type { SessionListState } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
3
|
+
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
4
|
+
import { type SessionRowState } from './tree.ts';
|
|
5
|
+
/**
|
|
6
|
+
* Cache chronological membership across status, title, selection, and projection updates.
|
|
7
|
+
* @param rowState - archive visibility for this selector's lifetime.
|
|
8
|
+
* @returns a selector that sorts only when membership or activity timestamps change.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createRecentSessionSelector(rowState: Pick<SessionRowState, 'archivedSessionIds' | 'archivedFilter'>): (list: SessionListState) => readonly SessionId[];
|
|
11
|
+
//# sourceMappingURL=recent.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SessionListState } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
2
|
+
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
3
|
+
import type { WorkspaceBrowserProps } from '../contract/slots.ts';
|
|
4
|
+
import { type SessionRowState } from '../tree.ts';
|
|
5
|
+
type RecentListProps = Pick<WorkspaceBrowserProps, 'usePanelInfo' | 'useSessionStatus' | 'open' | 'requestSessionRename' | 'renderSlot' | 't'> & {
|
|
6
|
+
list: SessionListState;
|
|
7
|
+
rowState: SessionRowState;
|
|
8
|
+
revealSessionId: SessionId | undefined;
|
|
9
|
+
onSessionRevealed: (id: SessionId) => void;
|
|
10
|
+
onLeaveArchivedOnly: () => void;
|
|
11
|
+
};
|
|
12
|
+
/** Project status and mount row extensions only for the viewport and a small overscan. */
|
|
13
|
+
export declare function RecentList({ list, rowState, useSessionStatus, usePanelInfo, open, requestSessionRename, renderSlot, t, revealSessionId, onSessionRevealed, onLeaveArchivedOnly, }: RecentListProps): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=RecentList.d.ts.map
|
package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/rows/Rows.d.ts
CHANGED
|
@@ -95,7 +95,7 @@ export declare function SearchResultItem({ result, currentId, onOpen, onUnarchiv
|
|
|
95
95
|
* @param props.t - the browser root's locale seat.
|
|
96
96
|
* @returns the session row.
|
|
97
97
|
*/
|
|
98
|
-
export declare function SessionNodeItem({ node, currentId, now, onOpen, onRenameRequest, renderSlot, onReveal, drag, t, }: {
|
|
98
|
+
export declare function SessionNodeItem({ node, currentId, now, onOpen, onRenameRequest, renderSlot, onReveal, drag, position, t, }: {
|
|
99
99
|
node: SessionNode;
|
|
100
100
|
currentId: string | undefined;
|
|
101
101
|
now: number;
|
|
@@ -106,6 +106,11 @@ export declare function SessionNodeItem({ node, currentId, now, onOpen, onRename
|
|
|
106
106
|
onReveal?: (() => void) | undefined;
|
|
107
107
|
/** Present on reorderable-list rows so every row can remain a drop target. */
|
|
108
108
|
drag?: RowDragProps | undefined;
|
|
109
|
+
/** Logical position within a virtualized tree, independent of mounted rows. */
|
|
110
|
+
position?: {
|
|
111
|
+
index: number;
|
|
112
|
+
total: number;
|
|
113
|
+
} | undefined;
|
|
109
114
|
t: RowTranslate;
|
|
110
115
|
} & PropsRenderSlots<'sidebar.workspaces.session.menu.item' | 'sidebar.workspaces.session.row.action' | 'sidebar.session.row.leading' | 'sidebar.session.row.hover'>): import("react").JSX.Element;
|
|
111
116
|
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HostObservable, InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
3
|
+
import type { ArchiveSessionInjected, SessionMenuItemProps } from '../contract/slots.ts';
|
|
4
|
+
export interface DeleteRequest {
|
|
5
|
+
id: SessionId;
|
|
6
|
+
title: string;
|
|
7
|
+
scope: readonly SessionId[];
|
|
8
|
+
}
|
|
9
|
+
export interface DeleteSessionInjected {
|
|
10
|
+
hooks: {
|
|
11
|
+
request: HostObservable<DeleteRequest | null>;
|
|
12
|
+
};
|
|
13
|
+
dismiss: () => void;
|
|
14
|
+
remove: (id: SessionId, scope: readonly SessionId[]) => Promise<void>;
|
|
15
|
+
failureText: (error: unknown) => string;
|
|
16
|
+
}
|
|
17
|
+
export type DeleteMenuInjected = Pick<ArchiveSessionInjected, 'hooks'> & {
|
|
18
|
+
requestDelete: (id: SessionId) => void;
|
|
19
|
+
};
|
|
20
|
+
/** Permanent deletion is offered only for archived rows. */
|
|
21
|
+
export declare function DeleteSessionMenuItem({ sessionId, useArchived, useMenuOpenState, requestDelete, t, }: SessionMenuItemProps<DeleteMenuInjected>): import("react").JSX.Element | null;
|
|
22
|
+
/** The dialog outlives the menu or settings page that raised it. */
|
|
23
|
+
export declare function SessionDeleteDialog(props: PropsRuntime<'shell.overlay'> & PropsLocale<'workspace'> & InjectFace<DeleteSessionInjected>): import("react").JSX.Element | null;
|
|
24
|
+
//# sourceMappingURL=DeleteSession.d.ts.map
|
package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/stores.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
|
11
11
|
import { type ArchivedFilter, type SessionRowState } from './tree.ts';
|
|
12
12
|
/** Browser-local order account for the hierarchy-free flat Session list. */
|
|
13
13
|
export declare const FLAT_SESSION_ORDER_KEY = "__flat_session_order__";
|
|
14
|
-
/** Session-list
|
|
15
|
-
export type SessionGroupBy = 'workspace' | 'workspace-tree' | 'flat';
|
|
14
|
+
/** Session-list view: Workspace sections, a Workspace tree, a reorderable list, or a recent timeline. */
|
|
15
|
+
export type SessionGroupBy = 'workspace' | 'workspace-tree' | 'flat' | 'recent';
|
|
16
16
|
/** Session order: saved manual positions or current recency. */
|
|
17
17
|
export type SessionOrderBy = 'manual' | 'updated';
|
|
18
18
|
/** Workspace browser viewing state persisted across surface remounts and reloads. */
|
package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/tree.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Derives the workspace browser tree from caller-projected Workspace and
|
|
3
|
-
* Session order. Unassigned Sessions trail under Ungrouped;
|
|
4
|
-
*
|
|
3
|
+
* Session order. Unassigned Sessions trail under Ungrouped; sessions without
|
|
4
|
+
* user input remain hidden, including the selected provisional Session.
|
|
5
5
|
*/
|
|
6
6
|
import { type SessionListState, type SessionSearchResultItem } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
7
7
|
import type { WorkspaceId, WorkspaceView } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
@@ -110,13 +110,6 @@ export declare function orderByRecency(sessionIds: readonly SessionId[], summari
|
|
|
110
110
|
* @returns saved relative positions plus missing members ordered by pin, fork source, recency, and archive status.
|
|
111
111
|
*/
|
|
112
112
|
export declare function reconcileManualOrder(memberIds: readonly SessionId[], savedOrder: readonly string[] | undefined, summaries: SessionListState['byId'], rowState?: Pick<SessionRowState, 'pinnedSessionIds' | 'archivedSessionIds'>): SessionId[];
|
|
113
|
-
/**
|
|
114
|
-
* Keep the selected provisional New Session ahead of either base order.
|
|
115
|
-
* @param order - recency or reconciled manual order.
|
|
116
|
-
* @param currentBlank - selected blank Session in this account, when present.
|
|
117
|
-
* @returns a copy with the selected blank first and no duplicate slot.
|
|
118
|
-
*/
|
|
119
|
-
export declare function pinCurrentBlank(order: readonly SessionId[], currentBlank: SessionId | undefined): SessionId[];
|
|
120
113
|
/**
|
|
121
114
|
* Archived-row visibility choice: the default hides archived rows, `show`
|
|
122
115
|
* mixes them into their kept slots, and `only` restricts the view (and
|
|
@@ -137,8 +130,8 @@ export interface SessionRowState {
|
|
|
137
130
|
*
|
|
138
131
|
* Every group shows, except that the archived-only filter drops groups
|
|
139
132
|
* without visible members; sessions populate under expanded groups with
|
|
140
|
-
* pinned rows leading in the selected local order.
|
|
141
|
-
* excluded
|
|
133
|
+
* pinned rows leading in the selected local order. Sessions without user
|
|
134
|
+
* input are excluded, including the selected empty Session; archived
|
|
142
135
|
* sessions keep their slots and appear per the archived filter. Content
|
|
143
136
|
* search lives outside this derivation (see {@link deriveSearchResults}).
|
|
144
137
|
* @param list - sessions list snapshot (`mainView` retention feeds containsCurrent).
|
|
@@ -152,7 +145,7 @@ export declare function deriveGroups(list: SessionListState, workspaces: readonl
|
|
|
152
145
|
/**
|
|
153
146
|
* Select complete flat-list membership, independently of archive visibility.
|
|
154
147
|
* @param list - sessions list snapshot.
|
|
155
|
-
* @returns known ordinary
|
|
148
|
+
* @returns known ordinary conversations, including archives but excluding empty Sessions.
|
|
156
149
|
*/
|
|
157
150
|
export declare function sessionMemberIds(list: SessionListState): SessionId[];
|
|
158
151
|
/**
|
|
@@ -160,7 +153,7 @@ export declare function sessionMemberIds(list: SessionListState): SessionId[];
|
|
|
160
153
|
* @param list - sessions list snapshot.
|
|
161
154
|
* @param archivedSessionIds - registry-global archive set.
|
|
162
155
|
* @param archivedFilter - archived-row visibility choice.
|
|
163
|
-
* @returns
|
|
156
|
+
* @returns visible conversation ids in list order, including ordinary forks.
|
|
164
157
|
*/
|
|
165
158
|
export declare function visibleSessionIds(list: SessionListState, archivedSessionIds: readonly SessionId[], archivedFilter: ArchivedFilter): SessionId[];
|
|
166
159
|
/**
|
|
@@ -173,6 +166,15 @@ export declare function visibleSessionIds(list: SessionListState, archivedSessio
|
|
|
173
166
|
* @returns flat rows in sectioned order with current status indicators.
|
|
174
167
|
*/
|
|
175
168
|
export declare function deriveFlat(list: SessionListState, sessionIds: readonly SessionId[], rowState: SessionRowState, statuses: SessionStatuses): SessionNode[];
|
|
169
|
+
/**
|
|
170
|
+
* Project only mounted recent rows, preserving the supplied chronological order.
|
|
171
|
+
* @param list - metadata snapshot; no Session history is opened.
|
|
172
|
+
* @param sessionIds - the visible window of the recency projection.
|
|
173
|
+
* @param rowState - pin decoration and archive visibility.
|
|
174
|
+
* @param statuses - unified UI status by Session.
|
|
175
|
+
* @returns rows without moving pinned or archived members ahead of newer Sessions.
|
|
176
|
+
*/
|
|
177
|
+
export declare function deriveRecentRows(list: SessionListState, sessionIds: readonly SessionId[], rowState: SessionRowState, statuses: SessionStatuses): SessionNode[];
|
|
176
178
|
/**
|
|
177
179
|
* Merge immediate title/Workspace substring matches with ranked Host content
|
|
178
180
|
* matches. Local rows lead newest-first, content-only rows retain backend
|
|
@@ -75,10 +75,12 @@
|
|
|
75
75
|
"@deepseek-ai/dsh-typert-protocol": "workspace:*",
|
|
76
76
|
"@deepseek-ai/dsh-util-values": "workspace:*",
|
|
77
77
|
"@deepseek-ai/dsh-util-workspace-path": "workspace:*",
|
|
78
|
+
"@tanstack/react-virtual": "^3.14.9",
|
|
78
79
|
"@types/react": "~18.3.1",
|
|
79
80
|
"clsx": "^2.0.0",
|
|
80
81
|
"react": "^18.2.0",
|
|
81
|
-
"@deepseek-ai/dsh-client-shortcuts": "workspace:*"
|
|
82
|
+
"@deepseek-ai/dsh-client-shortcuts": "workspace:*",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-settings": "workspace:*"
|
|
82
84
|
},
|
|
83
85
|
"files": [
|
|
84
86
|
"lib/index.js",
|
|
@@ -157,8 +157,24 @@ function normalizeDefinition(definition) {
|
|
|
157
157
|
if (typeof rawInput !== "object" || rawInput === null || !("hint" in rawInput) || typeof rawInput.hint !== "string") throw new TypeError(`command "${definition.name}" input hint must be a string`);
|
|
158
158
|
if (rawInput.hint.trim().length === 0) throw new TypeError(`command "${definition.name}" input hint must not be empty`);
|
|
159
159
|
if ("attachments" in rawInput && rawInput.attachments !== void 0 && typeof rawInput.attachments !== "boolean") throw new TypeError(`command "${definition.name}" input attachments flag must be a boolean`);
|
|
160
|
+
let suggestions;
|
|
161
|
+
if ("suggestions" in rawInput && rawInput.suggestions !== void 0) {
|
|
162
|
+
if (!Array.isArray(rawInput.suggestions)) throw new TypeError(`command "${definition.name}" input suggestions must be an array`);
|
|
163
|
+
const seen = /* @__PURE__ */ new Set();
|
|
164
|
+
suggestions = Object.freeze(rawInput.suggestions.map((entry) => {
|
|
165
|
+
if (typeof entry !== "object" || entry === null || !("value" in entry) || typeof entry.value !== "string" || !/^[a-z0-9_.:\/-]+$/iu.test(entry.value) || !("description" in entry) || typeof entry.description !== "string" || !entry.description.trim()) throw new TypeError(`command "${definition.name}" input suggestions require a token value and description`);
|
|
166
|
+
const key = entry.value.toLowerCase();
|
|
167
|
+
if (seen.has(key)) throw new TypeError(`command "${definition.name}" input suggestions repeat "${entry.value}"`);
|
|
168
|
+
seen.add(key);
|
|
169
|
+
return Object.freeze({
|
|
170
|
+
value: entry.value,
|
|
171
|
+
description: entry.description
|
|
172
|
+
});
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
160
175
|
input = Object.freeze({
|
|
161
176
|
hint: rawInput.hint,
|
|
177
|
+
...suggestions === void 0 ? {} : { suggestions },
|
|
162
178
|
..."attachments" in rawInput && rawInput.attachments === true ? { attachments: true } : {}
|
|
163
179
|
});
|
|
164
180
|
}
|
|
@@ -37,6 +37,10 @@ const _deepseek_ai_dsh_commands_commands_list_result$schema = () => (_deepseek_a
|
|
|
37
37
|
'description': z.string().readonly(),
|
|
38
38
|
'input': z.object({
|
|
39
39
|
'hint': z.string().readonly(),
|
|
40
|
+
'suggestions': z.array(z.object({
|
|
41
|
+
'value': z.string().readonly(),
|
|
42
|
+
'description': z.string().readonly(),
|
|
43
|
+
})).readonly().optional(),
|
|
40
44
|
'attachments': z.boolean().readonly().optional(),
|
|
41
45
|
}).readonly().optional(),
|
|
42
46
|
})))
|
|
@@ -96,7 +100,7 @@ export const TYPERT = {
|
|
|
96
100
|
typeSymbol: '@deepseek-ai/dsh-commands#commands/execute:result',
|
|
97
101
|
create: _deepseek_ai_dsh_commands_commands_execute_result$schema,
|
|
98
102
|
},
|
|
99
|
-
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":
|
|
103
|
+
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":380,"column":9},
|
|
100
104
|
},
|
|
101
105
|
{
|
|
102
106
|
id: '@deepseek-ai/dsh-commands#commands/list',
|
|
@@ -126,7 +130,7 @@ export const TYPERT = {
|
|
|
126
130
|
typeSymbol: '@deepseek-ai/dsh-commands#commands/list:result',
|
|
127
131
|
create: _deepseek_ai_dsh_commands_commands_list_result$schema,
|
|
128
132
|
},
|
|
129
|
-
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":
|
|
133
|
+
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":334,"column":3},
|
|
130
134
|
},
|
|
131
135
|
],
|
|
132
136
|
model: {
|
|
@@ -270,7 +274,7 @@ export const TYPERT = {
|
|
|
270
274
|
},
|
|
271
275
|
{
|
|
272
276
|
"name": "CommandInputDescriptor",
|
|
273
|
-
"declaration": "export interface CommandInputDescriptor {\n readonly hint: string;\n readonly attachments?: boolean;\n}"
|
|
277
|
+
"declaration": "export interface CommandInputDescriptor {\n readonly hint: string;\n readonly suggestions?: readonly { readonly value: string; readonly description: string; }[];\n readonly attachments?: boolean;\n}"
|
|
274
278
|
},
|
|
275
279
|
{
|
|
276
280
|
"name": "CommandInvocation",
|
|
@@ -37,6 +37,10 @@ const _deepseek_ai_dsh_commands_commands_list_result$schema = () => (_deepseek_a
|
|
|
37
37
|
'description': z.string().readonly(),
|
|
38
38
|
'input': z.object({
|
|
39
39
|
'hint': z.string().readonly(),
|
|
40
|
+
'suggestions': z.array(z.object({
|
|
41
|
+
'value': z.string().readonly(),
|
|
42
|
+
'description': z.string().readonly(),
|
|
43
|
+
})).readonly().optional(),
|
|
40
44
|
'attachments': z.boolean().readonly().optional(),
|
|
41
45
|
}).readonly().optional(),
|
|
42
46
|
})))
|
|
@@ -93,7 +97,7 @@ export const TYPERT_REMOTE = {
|
|
|
93
97
|
typeSymbol: '@deepseek-ai/dsh-commands#commands/execute:result',
|
|
94
98
|
create: _deepseek_ai_dsh_commands_commands_execute_result$schema,
|
|
95
99
|
},
|
|
96
|
-
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":
|
|
100
|
+
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":380,"column":9},
|
|
97
101
|
},
|
|
98
102
|
{
|
|
99
103
|
id: '@deepseek-ai/dsh-commands#commands/list',
|
|
@@ -123,7 +127,7 @@ export const TYPERT_REMOTE = {
|
|
|
123
127
|
typeSymbol: '@deepseek-ai/dsh-commands#commands/list:result',
|
|
124
128
|
create: _deepseek_ai_dsh_commands_commands_list_result$schema,
|
|
125
129
|
},
|
|
126
|
-
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":
|
|
130
|
+
sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":334,"column":3},
|
|
127
131
|
},
|
|
128
132
|
],
|
|
129
133
|
}
|
|
@@ -147,8 +147,28 @@ function normalizeDefinition(definition) {
|
|
|
147
147
|
if ('attachments' in rawInput && rawInput.attachments !== undefined && typeof rawInput.attachments !== 'boolean') {
|
|
148
148
|
throw new TypeError(`command "${definition.name}" input attachments flag must be a boolean`);
|
|
149
149
|
}
|
|
150
|
+
let suggestions;
|
|
151
|
+
if ('suggestions' in rawInput && rawInput.suggestions !== undefined) {
|
|
152
|
+
if (!Array.isArray(rawInput.suggestions)) {
|
|
153
|
+
throw new TypeError(`command "${definition.name}" input suggestions must be an array`);
|
|
154
|
+
}
|
|
155
|
+
const seen = new Set();
|
|
156
|
+
suggestions = Object.freeze(rawInput.suggestions.map((entry) => {
|
|
157
|
+
if (typeof entry !== 'object' || entry === null
|
|
158
|
+
|| !('value' in entry) || typeof entry.value !== 'string' || !/^[a-z0-9_.:\/-]+$/iu.test(entry.value)
|
|
159
|
+
|| !('description' in entry) || typeof entry.description !== 'string' || !entry.description.trim()) {
|
|
160
|
+
throw new TypeError(`command "${definition.name}" input suggestions require a token value and description`);
|
|
161
|
+
}
|
|
162
|
+
const key = entry.value.toLowerCase();
|
|
163
|
+
if (seen.has(key))
|
|
164
|
+
throw new TypeError(`command "${definition.name}" input suggestions repeat "${entry.value}"`);
|
|
165
|
+
seen.add(key);
|
|
166
|
+
return Object.freeze({ value: entry.value, description: entry.description });
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
150
169
|
input = Object.freeze({
|
|
151
170
|
hint: rawInput.hint,
|
|
171
|
+
...suggestions === undefined ? {} : { suggestions },
|
|
152
172
|
...('attachments' in rawInput && rawInput.attachments === true) ? { attachments: true } : {},
|
|
153
173
|
});
|
|
154
174
|
}
|
|
@@ -20,6 +20,11 @@ export type CommandSubmitAttachment = ({
|
|
|
20
20
|
export interface CommandInputDescriptor {
|
|
21
21
|
/** Placeholder shown before the user supplies free-form input. */
|
|
22
22
|
readonly hint: string;
|
|
23
|
+
/** Advisory first-argument completions; handlers still own the full input grammar. */
|
|
24
|
+
readonly suggestions?: readonly {
|
|
25
|
+
readonly value: string;
|
|
26
|
+
readonly description: string;
|
|
27
|
+
}[];
|
|
23
28
|
/**
|
|
24
29
|
* Whether composer attachments may accompany an invocation. Absent or
|
|
25
30
|
* false = the executor rejects an invocation carrying attachments and capable
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Service } from "@deepseek-ai/cordis";
|
|
2
|
+
//#region lib/types/index.js
|
|
3
|
+
/**
|
|
4
|
+
* Exclusive named registration for the computer-use capability.
|
|
5
|
+
* @module @deepseek-ai/dsh-computer-use
|
|
6
|
+
*/
|
|
7
|
+
/** Owns one optional provider registration in the shared computer-use service. */
|
|
8
|
+
var ComputerUseRegistry = class extends Service {
|
|
9
|
+
registration;
|
|
10
|
+
constructor(ctx) {
|
|
11
|
+
super(ctx, "computerUse");
|
|
12
|
+
}
|
|
13
|
+
/** Name of the registered provider, including while its resources are closing. */
|
|
14
|
+
get providerName() {
|
|
15
|
+
return this.registration;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reserve the sole provider slot until the contribution is disposed.
|
|
19
|
+
* A second registration fails even when it repeats the current name. Providers
|
|
20
|
+
* must stop their tools and await owned work before releasing this registration.
|
|
21
|
+
* @param name - provider-owned name used in registration diagnostics.
|
|
22
|
+
* @returns the effect disposer for this exact registration.
|
|
23
|
+
*/
|
|
24
|
+
register(name) {
|
|
25
|
+
if (this.registration !== void 0) throw new Error(`computer use provider "${this.registration}" is already registered`);
|
|
26
|
+
return this.ctx.effect(() => {
|
|
27
|
+
this.registration = name;
|
|
28
|
+
return () => {
|
|
29
|
+
this.registration = void 0;
|
|
30
|
+
};
|
|
31
|
+
}, "computerUse.register()");
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { ComputerUseRegistry, ComputerUseRegistry as default };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Computer-use provider identities. @module @deepseek-ai/dsh-computer-use/brand */
|
|
2
|
+
import type { Branded } from '@deepseek-ai/dsh-brand';
|
|
3
|
+
/** Provider-owned name identifying a computer-use registration. */
|
|
4
|
+
export type ComputerUseProviderName = Branded<'ComputerUseProviderName'>;
|
|
5
|
+
/**
|
|
6
|
+
* Brand a provider-owned name without changing or validating it.
|
|
7
|
+
* @param name - name chosen by the provider implementation.
|
|
8
|
+
* @returns the same name with its computer-use provider brand.
|
|
9
|
+
*/
|
|
10
|
+
export declare function ComputerUseProviderName(name: string): ComputerUseProviderName;
|
|
11
|
+
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Computer-use provider identities. @module @deepseek-ai/dsh-computer-use/brand */
|
|
2
|
+
/**
|
|
3
|
+
* Brand a provider-owned name without changing or validating it.
|
|
4
|
+
* @param name - name chosen by the provider implementation.
|
|
5
|
+
* @returns the same name with its computer-use provider brand.
|
|
6
|
+
*/
|
|
7
|
+
export function ComputerUseProviderName(name) {
|
|
8
|
+
return name;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=brand.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exclusive named registration for the computer-use capability.
|
|
3
|
+
* @module @deepseek-ai/dsh-computer-use
|
|
4
|
+
*/
|
|
5
|
+
import { Context, Service } from '@deepseek-ai/cordis';
|
|
6
|
+
import type { ComputerUseProviderName } from './brand.ts';
|
|
7
|
+
declare module '@deepseek-ai/cordis' {
|
|
8
|
+
interface Context {
|
|
9
|
+
computerUse: ComputerUseRegistry;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/** Owns one optional provider registration in the shared computer-use service. */
|
|
13
|
+
export declare class ComputerUseRegistry extends Service {
|
|
14
|
+
private registration;
|
|
15
|
+
constructor(ctx: Context);
|
|
16
|
+
/** Name of the registered provider, including while its resources are closing. */
|
|
17
|
+
get providerName(): ComputerUseProviderName | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Reserve the sole provider slot until the contribution is disposed.
|
|
20
|
+
* A second registration fails even when it repeats the current name. Providers
|
|
21
|
+
* must stop their tools and await owned work before releasing this registration.
|
|
22
|
+
* @param name - provider-owned name used in registration diagnostics.
|
|
23
|
+
* @returns the effect disposer for this exact registration.
|
|
24
|
+
*/
|
|
25
|
+
register(name: ComputerUseProviderName): () => Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export default ComputerUseRegistry;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exclusive named registration for the computer-use capability.
|
|
3
|
+
* @module @deepseek-ai/dsh-computer-use
|
|
4
|
+
*/
|
|
5
|
+
import { Service } from '@deepseek-ai/cordis';
|
|
6
|
+
/** Owns one optional provider registration in the shared computer-use service. */
|
|
7
|
+
export class ComputerUseRegistry extends Service {
|
|
8
|
+
registration;
|
|
9
|
+
constructor(ctx) {
|
|
10
|
+
super(ctx, 'computerUse');
|
|
11
|
+
}
|
|
12
|
+
/** Name of the registered provider, including while its resources are closing. */
|
|
13
|
+
get providerName() {
|
|
14
|
+
return this.registration;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Reserve the sole provider slot until the contribution is disposed.
|
|
18
|
+
* A second registration fails even when it repeats the current name. Providers
|
|
19
|
+
* must stop their tools and await owned work before releasing this registration.
|
|
20
|
+
* @param name - provider-owned name used in registration diagnostics.
|
|
21
|
+
* @returns the effect disposer for this exact registration.
|
|
22
|
+
*/
|
|
23
|
+
register(name) {
|
|
24
|
+
if (this.registration !== undefined) {
|
|
25
|
+
throw new Error(`computer use provider "${this.registration}" is already registered`);
|
|
26
|
+
}
|
|
27
|
+
return this.ctx.effect(() => {
|
|
28
|
+
this.registration = name;
|
|
29
|
+
return () => {
|
|
30
|
+
this.registration = undefined;
|
|
31
|
+
};
|
|
32
|
+
}, 'computerUse.register()');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export default ComputerUseRegistry;
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@deepseek-ai/dsh-computer-use",
|
|
3
|
+
"description": "Exclusive named computer-use provider registration",
|
|
4
|
+
"version": "0.1.7-rc.2",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
11
|
+
"directory": "packages/computer-use/computer-use"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "lib/index.js",
|
|
15
|
+
"types": "lib/types/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./lib/types/index.d.ts",
|
|
19
|
+
"default": "./lib/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./src/*": "./src/*",
|
|
22
|
+
"./package.json": "./package.json",
|
|
23
|
+
"./brand": {
|
|
24
|
+
"types": "./lib/types/brand.d.ts",
|
|
25
|
+
"default": "./lib/types/brand.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"lib/index.js",
|
|
30
|
+
"lib/types/**/*.js",
|
|
31
|
+
"lib/types/**/*.d.ts"
|
|
32
|
+
],
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@deepseek-ai/cordis": "workspace:~",
|
|
36
|
+
"@deepseek-ai/dsh-brand": "workspace:*"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@deepseek-ai/cordis": "workspace:~",
|
|
40
|
+
"@deepseek-ai/dsh-brand": "workspace:*"
|
|
41
|
+
}
|
|
42
|
+
}
|