@deepseek-ai/dsh-client-ui-sidebar-files 0.1.7-alpha.2 → 0.1.7-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 CHANGED
@@ -1,6 +1,34 @@
1
- # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
2
- # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
- # after editing either side, bring the other along and re-record with:
1
+ # Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
2
+ # section, a hash of its English and Chinese blocks outside code blocks and generated regions.
3
+ # After editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/client/ui-sidebar-files/README.md
5
- README.md: 0340991f16a61b80cd616982c6a6bea6ff60beac
6
- README.zh.md: 016c74d801a3582785cb600f493eaeb92f7567b9
5
+ /:
6
+ en: d6514e0d092a210b
7
+ zh: 9980cb0f4fc6f903
8
+ /deepseek-ai-dsh-client-ui-sidebar-files:
9
+ en: ae5625c23b3a864f
10
+ zh: 20cf48a229e806bf
11
+ /deepseek-ai-dsh-client-ui-sidebar-files/summary:
12
+ en: 1605ae92aee5c231
13
+ zh: ad519ddb9e338892
14
+ /deepseek-ai-dsh-client-ui-sidebar-files/table-of-contents:
15
+ en: 9411fb4809692e09
16
+ zh: dd13990d39c5be7f
17
+ /deepseek-ai-dsh-client-ui-sidebar-files/what-it-registers:
18
+ en: a13aadd9b0294870
19
+ zh: d30dc67f177f6c2d
20
+ /deepseek-ai-dsh-client-ui-sidebar-files/the-tree:
21
+ en: a0ae0b1f223b3df1
22
+ zh: 8ddc325519bd75b2
23
+ /deepseek-ai-dsh-client-ui-sidebar-files/model-experience:
24
+ en: a18a43f6842f1371
25
+ zh: 69f2a2b35f06dfc7
26
+ /deepseek-ai-dsh-client-ui-sidebar-files/model-experience/kv-cache-effect:
27
+ en: 5a6febb45089991a
28
+ zh: b17ed755fd098b83
29
+ /deepseek-ai-dsh-client-ui-sidebar-files/known-limitations-and-deferred-work:
30
+ en: c0e1831d8975186c
31
+ zh: 332aac8738458bb0
32
+ /deepseek-ai-dsh-client-ui-sidebar-files/known-limitations-and-deferred-work/dev-note:
33
+ en: 3e8f2f242d43973b
34
+ zh: fb919fb393d51b20
package/README.md CHANGED
@@ -24,7 +24,9 @@ Browse a Session's workspace tree and open files in Sidebar previews. The root a
24
24
  <a id="what-it-registers"></a>
25
25
  ## What it registers
26
26
 
27
- - **The type** — `ctx.sidebarRightTabs.register(...)` with kind `files`, id `@deepseek-ai/dsh-client-ui-sidebar-files`, band `builtin`, no patterns, and one guide entry (order 10, its title and description from the `sidebarFiles` namespace, its glyph the shared folder icon) that opens the type.
27
+ The `workspace.files` command opens or focuses the file page in the focused pane; from the conversation it uses the current Session's active dock pane. A guide gives way to the file page, and repeated opens retain one file page per pane. Desktop defaults to Mod+P. The guide entry displays the effective shortcut; Windows and macOS Web use the [shortcut service’s platform defaults](../shortcuts/README.md); Linux Web leaves this command unbound by default.
28
+
29
+ - **The type** — `ctx.sidebarRightTabs.register(...)` with kind `files`, id `@deepseek-ai/dsh-client-ui-sidebar-files`, band `builtin`, no patterns, and one guide entry (order 10, its title and description from the `sidebarFiles` namespace, its glyph a yellow folder) that opens the type.
28
30
  - **The body** — the keyed `sidebar.right.pane.tab` seat under that id: a header row under the strip, then the tree. The shared [`PathLabel`](../ui-primitives/README.md#component-catalog) displays the root path with subdued directories and a primary final segment. A clipped path retains its trailing characters with a left-edge fade; hovering reveals the full path. The reload control stays at its right.
29
31
  - **The chip title** — the keyed `sidebar.right.pane.tab.title` seat under that id: a shared `FileTypeIcon` folder glyph at 16px before the type's label. The tree's own rows never draw this sheet.
30
32
 
@@ -70,6 +72,8 @@ None; directory listings travel over the Remote and assemble no model request.
70
72
 
71
73
  None.
72
74
 
75
+ The page refresh shortcut refreshes the focused file tree through its ordinary directory reader. The reload control displays the effective binding on hover and keyboard focus.
76
+
73
77
  </details>
74
78
 
75
79
  **Runtime invariant:** No companion is published. The tab-owned face keeps directory reads and watches private, and writes displayed state through its Slot store; tab cancellation releases both. The package exposes no independent observation for a runtime comparison.
package/README.zh.md CHANGED
@@ -24,7 +24,9 @@ kind: "package-reference"
24
24
  <a id="what-it-registers"></a>
25
25
  ## 注册了什么
26
26
 
27
- - **类型**:`ctx.sidebarRightTabs.register(...)`,kind 为 `files`,id 为 `@deepseek-ai/dsh-client-ui-sidebar-files`,档位 `builtin`,没有 patterns,另有一个打开该类型的引导页入口(order 10,标题与描述取自 `sidebarFiles` 命名空间,图标是共享的文件夹图标)。
27
+ 命令 `workspace.files` 在焦点分栏内打开或聚焦文件页;从聊天区触发时使用当前会话的活动停靠分栏。文件页替换开始页,同一分栏内重复打开仍保留一个文件页。桌面默认键为 Mod+P。开始页入口显示有效快捷键;Windows 和 macOS Web 使用[快捷键服务的平台默认值](../shortcuts/README.zh.md);Linux Web 默认不绑定此命令。
28
+
29
+ - **类型**:`ctx.sidebarRightTabs.register(...)`,kind 为 `files`,id 为 `@deepseek-ai/dsh-client-ui-sidebar-files`,档位 `builtin`,没有 patterns,另有一个打开该类型的引导页入口(order 10,标题与描述取自 `sidebarFiles` 命名空间,图标为黄色文件夹)。
28
30
  - **正文**:以该 id 为键的 `sidebar.right.pane.tab` slot:strip 下的一行标题行,然后是树。共享的 [`PathLabel`](../ui-primitives/README.zh.md#component-catalog) 显示根路径,目录使用弱化颜色,最后一段使用主色。路径过长时保留尾部字符并在左侧渐隐;悬停显示完整路径。重新读取控件位于右端。
29
31
  - **标签页标题**:以该 id 为键的 `sidebar.right.pane.tab.title` slot:类型标签前的一枚 16px 共享 `FileTypeIcon` 文件夹图标。树本身的行不画这枚图标。
30
32
 
@@ -70,6 +72,8 @@ kind: "package-reference"
70
72
 
71
73
  无。
72
74
 
75
+ 页面刷新快捷键通过常规目录读取器刷新聚焦的文件树。重新读取控件在悬停和键盘聚焦时显示有效绑定。
76
+
73
77
  </details>
74
78
 
75
79
  **运行时不变量:** 不发布 companion。tab 持有的 face 内部管理目录读取与监听,并通过 Slot store 写入显示状态;tab 取消时释放二者。本包未暴露可用于运行时比对的独立观测源。
package/lib/client.js CHANGED
@@ -4,9 +4,9 @@ window.__ModuleLoader__.load({
4
4
  var module = { exports: {} };
5
5
  var exports = module.exports;
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
7
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
9
8
  require("@deepseek-ai/cordis");
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
10
  let react = require("react");
11
11
  let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
12
12
  //#region lib/types/client/definition.js
@@ -14,14 +14,6 @@ window.__ModuleLoader__.load({
14
14
  const FILES_KIND = "files";
15
15
  /** This implementation's identity in the tab system, and the key its body registers under. */
16
16
  const FILES_ID = "@deepseek-ai/dsh-client-ui-sidebar-files";
17
- /** The type's coloured folder sheet at the guide capsule's glyph size, as the chip title draws it. */
18
- function FolderSheetGlyph({ size, className }) {
19
- return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.FileTypeIcon, {
20
- kind: "folder",
21
- size,
22
- className
23
- });
24
- }
25
17
  /**
26
18
  * The files type's registry definition.
27
19
  * @param t - namespace-bound translate, read fresh on every label call.
@@ -35,10 +27,11 @@ window.__ModuleLoader__.load({
35
27
  title: () => t("type.label"),
36
28
  guide: [{
37
29
  id: "workspace",
30
+ commandId: "workspace.files",
38
31
  order: 10,
39
32
  title: () => t("guide.title"),
40
33
  description: () => t("guide.description"),
41
- icon: FolderSheetGlyph
34
+ icon: _deepseek_ai_dsh_client_ui_primitives.GuideArtworkFiles
42
35
  }]
43
36
  };
44
37
  }
@@ -424,7 +417,7 @@ window.__ModuleLoader__.load({
424
417
  }
425
418
  //#endregion
426
419
  //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-sidebar-files/src/client/FilesBody.module.css.mjs
427
- const css = ".k-1LKG_root{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-size:var(--dsh-content-font-size-secondary,13px);flex-direction:column;flex:auto;line-height:1.5;display:flex}.k-1LKG_header{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l3);flex:none;align-items:center;gap:4px;height:38px;padding:0 6px 0 16px;display:flex}.k-1LKG_path{margin-right:12px}.k-1LKG_body{scrollbar-gutter:stable;flex:auto;min-height:0;margin-right:2px;padding:8px 0 8px 8px;overflow:auto}.k-1LKG_body::-webkit-scrollbar-track{margin:2px}.k-1LKG_level{margin:0;padding:0;list-style:none}.k-1LKG_level .k-1LKG_level{padding-left:18px}.k-1LKG_item{margin:0;padding:0}.k-1LKG_row{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;display:flex}.k-1LKG_row:hover{background:var(--dsw-alias-interactive-bg-hover)}.k-1LKG_icon{color:var(--dsw-alias-label-tertiary);flex:none}.k-1LKG_fileIcon{flex:none}.k-1LKG_name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.k-1LKG_other{color:var(--dsw-alias-label-tertiary);cursor:default}.k-1LKG_other:hover{background:0 0}.k-1LKG_note{color:var(--dsw-alias-label-tertiary);margin:0;padding:3px 10px;font-size:12px}.k-1LKG_status{flex-direction:column;padding:12px 10px;display:flex}.k-1LKG_statusLine{color:var(--dsw-alias-label-secondary);font-size:var(--dsh-content-font-size-secondary,13px);margin:0;line-height:1.6}.k-1LKG_tool{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:28px;flex:none;justify-content:center;align-items:center;padding:6px;line-height:1;display:inline-flex}.k-1LKG_tool svg{width:15px;height:15px}.k-1LKG_tool:hover,.k-1LKG_tool[aria-pressed=true]{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.k-1LKG_titleIcon{flex:none}";
420
+ const css = ".k-1LKG_root{height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-size:var(--dsh-content-font-size-secondary,13px);flex-direction:column;flex:auto;line-height:1.5;display:flex}.k-1LKG_header{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l3);flex:none;align-items:center;gap:4px;height:38px;padding:0 6px 0 16px;display:flex}.k-1LKG_path{margin-right:12px}.k-1LKG_body{scrollbar-gutter:stable;flex:auto;min-height:0;margin-right:2px;padding:8px 0 8px 8px;overflow:auto}.k-1LKG_body::-webkit-scrollbar-track{margin:2px}.k-1LKG_level{margin:0;padding:0;list-style:none}.k-1LKG_level .k-1LKG_level{padding-left:18px}.k-1LKG_item{margin:0;padding:0}.k-1LKG_row{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;border-radius:var(--dsw-radius-md);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:5px 10px;display:flex}.k-1LKG_row:hover{background:var(--dsw-alias-interactive-bg-hover)}.k-1LKG_icon{color:var(--dsw-alias-label-tertiary);flex:none}.k-1LKG_fileIcon{flex:none}.k-1LKG_name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.k-1LKG_other{color:var(--dsw-alias-label-tertiary);cursor:default}.k-1LKG_other:hover{background:0 0}.k-1LKG_note{color:var(--dsw-alias-label-tertiary);margin:0;padding:3px 10px;font-size:12px}.k-1LKG_status{flex-direction:column;padding:12px 10px;display:flex}.k-1LKG_statusLine{color:var(--dsw-alias-label-secondary);font-size:var(--dsh-content-font-size-secondary,13px);margin:0;line-height:1.6}.k-1LKG_tool{width:28px;height:28px;color:var(--dsw-alias-label-secondary);border-radius:var(--dsw-radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:6px;line-height:1;display:inline-flex}.k-1LKG_tool svg{width:15px;height:15px}.k-1LKG_tool:hover,.k-1LKG_tool[aria-pressed=true]{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.k-1LKG_titleIcon{flex:none}";
428
421
  const tagId = "@deepseek-ai/dsh-client-ui-sidebar-files/FilesBody.module.css";
429
422
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
430
423
  const tag = document.createElement("style");
@@ -601,6 +594,13 @@ window.__ModuleLoader__.load({
601
594
  /** The file tree's body: the workspace root and whatever the reader has opened under it. */
602
595
  function FilesBody({ useTabInfo, sessionId, useSessions, useStore, actions, start, refresh, setAutoRefresh, toggle, t }) {
603
596
  const { tab } = useTabInfo();
597
+ (0, react.useEffect)(() => tab.actions.bindCommands({ refresh: () => {
598
+ refresh(tab.id);
599
+ } }), [
600
+ tab.actions,
601
+ tab.id,
602
+ refresh
603
+ ]);
604
604
  const { signal, actions: tabActions } = tab;
605
605
  const cwd = useSessions((sessions) => sessions.byId[sessionId]?.cwd);
606
606
  const state = useStore((store) => store.byTab[tab.id]);
@@ -681,14 +681,20 @@ window.__ModuleLoader__.load({
681
681
  children: state.autoRefresh ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPauseOutlineRegular, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlayOutlineRegular, {})
682
682
  })
683
683
  }),
684
- (0, react_jsx_runtime.jsx)("button", {
685
- type: "button",
686
- className: FilesBody_module_css_default.tool,
687
- "aria-label": t("reload"),
688
- title: t("reload"),
689
- "data-files-reload": true,
690
- onClick: reload,
691
- children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, {})
684
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
685
+ label: t("reload"),
686
+ shortcutKeys: tab.refreshShortcut?.keys,
687
+ side: "bottom",
688
+ delayMs: 500,
689
+ children: (0, react_jsx_runtime.jsx)("button", {
690
+ type: "button",
691
+ className: FilesBody_module_css_default.tool,
692
+ "aria-label": t("reload"),
693
+ "aria-keyshortcuts": tab.refreshShortcut?.aria,
694
+ "data-files-reload": true,
695
+ onClick: reload,
696
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, {})
697
+ })
692
698
  })
693
699
  ]
694
700
  }), (0, react_jsx_runtime.jsx)("div", {
@@ -727,6 +733,7 @@ window.__ModuleLoader__.load({
727
733
  //#region lib/types/client/locales.js
728
734
  /** Simplified Chinese dictionary and key-set source of truth. */
729
735
  const zh = {
736
+ "shortcut.noSession": "请先选择会话",
730
737
  "type.label": "文件",
731
738
  "guide.title": "工作区文件",
732
739
  "guide.description": "浏览会话工作区的文件",
@@ -746,6 +753,7 @@ window.__ModuleLoader__.load({
746
753
  };
747
754
  /** English dictionary, checked against the Chinese key set. */
748
755
  const en = {
756
+ "shortcut.noSession": "Select a session first",
749
757
  "type.label": "Files",
750
758
  "guide.title": "Workspace files",
751
759
  "guide.description": "Browse files in this session's workspace",
@@ -926,6 +934,7 @@ window.__ModuleLoader__.load({
926
934
  "slots",
927
935
  "locale",
928
936
  "sidebarRightTabs",
937
+ "sidebarRight",
929
938
  "remote",
930
939
  "remote.workspaceFiles"
931
940
  ];
@@ -935,6 +944,54 @@ window.__ModuleLoader__.load({
935
944
  */
936
945
  function apply(ctx) {
937
946
  const t = ctx.locale.bind(NS);
947
+ ctx.inject(["shortcuts"], (ctx) => {
948
+ ctx.effect(() => ctx.shortcuts.register({
949
+ id: "workspace.files",
950
+ label: () => t("guide.title"),
951
+ aliases: ["workspace files", "files"],
952
+ defaults: {
953
+ "desktop:macos": {
954
+ code: "KeyP",
955
+ modifiers: ["primary"]
956
+ },
957
+ "desktop:windows": {
958
+ code: "KeyP",
959
+ modifiers: ["primary"]
960
+ },
961
+ "desktop:linux": {
962
+ code: "KeyP",
963
+ modifiers: ["primary"]
964
+ },
965
+ "web:macos": {
966
+ code: "KeyP",
967
+ modifiers: ["primary", "alt"]
968
+ },
969
+ "web:windows": {
970
+ code: "KeyP",
971
+ modifiers: ["primary", "alt"]
972
+ }
973
+ },
974
+ regions: [
975
+ "page",
976
+ "editable",
977
+ "terminal"
978
+ ],
979
+ modals: [],
980
+ resolve: ({ target: element }) => {
981
+ const target = ctx.sidebarRight.commandTarget(element);
982
+ if (target === void 0) return {
983
+ status: "blocked",
984
+ reason: t("shortcut.noSession")
985
+ };
986
+ return {
987
+ status: "handled",
988
+ run: () => {
989
+ ctx.sidebarRight.openTabFromTarget("files", target);
990
+ }
991
+ };
992
+ }
993
+ }), "ui-sidebar-files: shortcut");
994
+ });
938
995
  ctx.effect(() => ctx.sidebarRightTabs.register(filesDefinition(t)), "ui-sidebar-files: files type");
939
996
  ctx.effect(() => ctx.locale.register(NS, {
940
997
  zh,
@@ -1,10 +1,3 @@
1
- /**
2
- * Stage one of this package's registration: what the `files` tab type IS.
3
- *
4
- * The type is a page, not a viewer: it claims no address. The guide page offers
5
- * it as an entry box, and the tree opens files through `tabActions.openResource`
6
- * for the `dsh-resource://file` viewers to claim.
7
- */
8
1
  import type { SidebarRightTabDefinition } from '@deepseek-ai/dsh-client-ui-sidebar-right/client';
9
2
  import type { TranslateNS } from '@deepseek-ai/dsh-client-locale/client';
10
3
  /** The tab kind this package owns. */
@@ -1,15 +1,3 @@
1
- /**
2
- * Browser half: register `files` as a right-Sidebar tab type.
3
- *
4
- * The public two-stage path, unmodified: the type into `ctx.sidebarRightTabs`,
5
- * the body into the keyed `sidebar.right.pane.tab` seat and the chip title into
6
- * the keyed `sidebar.right.pane.tab.title` seat, both under the type's `id`.
7
- *
8
- * The file split is this package's layering: what the type IS
9
- * (`definition.tsx`), what it keeps (`store.ts`), how it lists (`face.ts`), what
10
- * it draws (`FilesBody.tsx`, `FilesTitle.tsx`), what it says (`locales.ts`),
11
- * and this module, which only wires them together.
12
- */
13
1
  import type { Context as ClientContext } from '@deepseek-ai/cordis';
14
2
  export type { SidebarFilesKey } from './locales.ts';
15
3
  export type { DirLevel, FilesState, FilesTabState, LevelState } from './store.ts';
@@ -6,6 +6,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
6
6
  }
7
7
  /** Simplified Chinese dictionary and key-set source of truth. */
8
8
  export declare const zh: {
9
+ 'shortcut.noSession': string;
9
10
  'type.label': string;
10
11
  'guide.title': string;
11
12
  'guide.description': string;
@@ -27,6 +28,7 @@ export declare const zh: {
27
28
  export type SidebarFilesKey = keyof typeof zh;
28
29
  /** English dictionary, checked against the Chinese key set. */
29
30
  export declare const en: {
31
+ 'shortcut.noSession': string;
30
32
  'type.label': string;
31
33
  'guide.title': string;
32
34
  'guide.description': string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-sidebar-files",
3
3
  "description": "Workspace file tree tab type for the right Sidebar: lazy directory listing over the workspaceFiles Remote namespace, opening files into the Sidebar",
4
- "version": "0.1.7-alpha.2",
4
+ "version": "0.1.7-rc.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -31,7 +31,8 @@
31
31
  "@deepseek-ai/dsh-api-workspace-files",
32
32
  "@deepseek-ai/dsh-client-ui-sidebar-right",
33
33
  "@deepseek-ai/dsh-client-ui-session",
34
- "@deepseek-ai/dsh-api-remotes"
34
+ "@deepseek-ai/dsh-api-remotes",
35
+ "@deepseek-ai/dsh-client-shortcuts"
35
36
  ],
36
37
  "platform": "web"
37
38
  }
@@ -47,21 +48,22 @@
47
48
  "react": "^18.2.0",
48
49
  "clsx": "^2.0.0",
49
50
  "react-dom": "^18.2.0",
51
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
52
+ "@deepseek-ai/dsh-api-workspace-files": "0.1.7-rc.2",
53
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
50
54
  "@deepseek-ai/cordis": "~4.0.4",
51
- "@deepseek-ai/dsh-api-workspace-files": "0.1.7-alpha.2",
52
- "@deepseek-ai/dsh-client-locale": "0.1.7-alpha.2",
53
- "@deepseek-ai/dsh-client-store": "0.1.7-alpha.2",
54
- "@deepseek-ai/dsh-client-test-runtime": "0.1.7-alpha.2",
55
- "@deepseek-ai/dsh-client-ui-dockkit": "0.1.7-alpha.2",
56
- "@deepseek-ai/dsh-api-remotes": "0.1.7-alpha.2",
57
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-alpha.2",
58
- "@deepseek-ai/dsh-client-ui-session": "0.1.7-alpha.2",
59
- "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-alpha.2",
60
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-alpha.2",
61
- "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
62
- "@deepseek-ai/dsh-typert-protocol": "0.1.7-alpha.2",
63
- "@deepseek-ai/dsh-util-workspace-path": "0.1.7-alpha.2",
64
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-alpha.2"
55
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
56
+ "@deepseek-ai/dsh-client-test-runtime": "0.1.7-rc.2",
57
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
58
+ "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2",
59
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
60
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
61
+ "@deepseek-ai/dsh-client-ui-dockkit": "0.1.7-rc.2",
62
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
63
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
64
+ "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2",
65
+ "@deepseek-ai/dsh-client-shortcuts": "0.1.7-rc.2",
66
+ "@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.2"
65
67
  },
66
68
  "files": [
67
69
  "lib/index.js",