@michengai/dsh-codex-ui 1.1.23 → 1.1.25
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/CHANGELOG.md +45 -0
- package/CHANGELOG.zh-CN.md +45 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/lib/index.mjs +98 -4
- package/package.json +36 -36
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,51 @@
|
|
|
4
4
|
|
|
5
5
|
This changelog records recent releases of DSH Codex UI and its one-click installer. Earlier changes remain available in the [Git history](https://github.com/MichengAI/dsh-codex-ui/commits/main).
|
|
6
6
|
|
|
7
|
+
## 1.1.25 - 2026-09-30
|
|
8
|
+
|
|
9
|
+
- Official Desktop no longer fails to start when an old `dsh-client-ui-settings-general` package remains above the profile. The plugin no longer imports that package by name.
|
|
10
|
+
|
|
11
|
+
## suite-installer-v1.0.31 - 2026-09-30
|
|
12
|
+
|
|
13
|
+
Install or maintain 11 first-party plugins in one step. Included plugins and versions:
|
|
14
|
+
|
|
15
|
+
- `@michengai/dsh-archive-manager@1.0.8`
|
|
16
|
+
- `@michengai/dsh-codex-ui@1.1.23`
|
|
17
|
+
- `@michengai/dsh-skills-manager@1.1.6`
|
|
18
|
+
- `@michengai/dsh-agency-agents@1.0.7`
|
|
19
|
+
- `@michengai/dsh-im-connect@0.1.58`
|
|
20
|
+
- `@michengai/dsh-automation@0.1.53`
|
|
21
|
+
- `@michengai/dsh-btw@0.1.15`
|
|
22
|
+
- `@michengai/dsh-simplify@0.1.12`
|
|
23
|
+
- `@michengai/dsh-pua@0.3.20`
|
|
24
|
+
- `@michengai/dsh-code-review@0.1.9`
|
|
25
|
+
- `@michengai/dsh-codex-pet@0.1.12`
|
|
26
|
+
|
|
27
|
+
The installer uses these exact versions for reproducible installation.
|
|
28
|
+
|
|
29
|
+
## 1.1.24 - 2026-09-30
|
|
30
|
+
|
|
31
|
+
- About-page installs on official Desktop now use the host's bundled pnpm instead of launching the dsh command inside the app archive.
|
|
32
|
+
- Host support includes DSH `0.2.0-rc.2`. The sidebar, layout, and slot contracts match `0.2.0-rc.1`; without this declaration the new Desktop disables the plugin. Development dependencies are pinned to `0.2.0-rc.2`.
|
|
33
|
+
|
|
34
|
+
## suite-installer-v1.0.30 - 2026-09-29
|
|
35
|
+
|
|
36
|
+
Install or maintain 11 first-party plugins in one step. Included plugins and versions:
|
|
37
|
+
|
|
38
|
+
- `@michengai/dsh-archive-manager@1.0.7`
|
|
39
|
+
- `@michengai/dsh-codex-ui@1.1.22`
|
|
40
|
+
- `@michengai/dsh-skills-manager@1.1.5`
|
|
41
|
+
- `@michengai/dsh-agency-agents@1.0.6`
|
|
42
|
+
- `@michengai/dsh-im-connect@0.1.57`
|
|
43
|
+
- `@michengai/dsh-automation@0.1.52`
|
|
44
|
+
- `@michengai/dsh-btw@0.1.14`
|
|
45
|
+
- `@michengai/dsh-simplify@0.1.11`
|
|
46
|
+
- `@michengai/dsh-pua@0.3.19`
|
|
47
|
+
- `@michengai/dsh-code-review@0.1.8`
|
|
48
|
+
- `@michengai/dsh-codex-pet@0.1.11`
|
|
49
|
+
|
|
50
|
+
The installer uses these exact versions for reproducible installation.
|
|
51
|
+
|
|
7
52
|
## 1.1.23 - 2026-09-29
|
|
8
53
|
|
|
9
54
|
- Installing or updating other plugins from the About page in official DeepSeek Harness Desktop no longer crashes the desktop host.
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -4,6 +4,51 @@
|
|
|
4
4
|
|
|
5
5
|
本日志记录 DSH Codex UI 及其一键安装器的最近发布;更早的变更可查看 [Git 提交历史](https://github.com/MichengAI/dsh-codex-ui/commits/main)。
|
|
6
6
|
|
|
7
|
+
## 1.1.25 - 2026-09-30
|
|
8
|
+
|
|
9
|
+
- 官方桌面端不再因为 profile 上级残留旧版 `dsh-client-ui-settings-general` 而启动失败。插件不再按包名导入该模块。
|
|
10
|
+
|
|
11
|
+
## suite-installer-v1.0.31 - 2026-09-30
|
|
12
|
+
|
|
13
|
+
一键维护安装 11 个自研插件。包含以下插件及版本:
|
|
14
|
+
|
|
15
|
+
- `@michengai/dsh-archive-manager@1.0.8`
|
|
16
|
+
- `@michengai/dsh-codex-ui@1.1.23`
|
|
17
|
+
- `@michengai/dsh-skills-manager@1.1.6`
|
|
18
|
+
- `@michengai/dsh-agency-agents@1.0.7`
|
|
19
|
+
- `@michengai/dsh-im-connect@0.1.58`
|
|
20
|
+
- `@michengai/dsh-automation@0.1.53`
|
|
21
|
+
- `@michengai/dsh-btw@0.1.15`
|
|
22
|
+
- `@michengai/dsh-simplify@0.1.12`
|
|
23
|
+
- `@michengai/dsh-pua@0.3.20`
|
|
24
|
+
- `@michengai/dsh-code-review@0.1.9`
|
|
25
|
+
- `@michengai/dsh-codex-pet@0.1.12`
|
|
26
|
+
|
|
27
|
+
安装器使用这些精确版本执行安装,确保可复现。
|
|
28
|
+
|
|
29
|
+
## 1.1.24 - 2026-09-30
|
|
30
|
+
|
|
31
|
+
- 官方桌面端关于页安装其他插件时,改用宿主自带的 pnpm,不再去启动 asar 里的 dsh 命令。
|
|
32
|
+
- 宿主兼容范围加入 DSH `0.2.0-rc.2`。侧栏、布局和插槽合约与 `0.2.0-rc.1` 相同;不声明这个版本时,新桌面端会因兼容检查停用本插件。开发依赖钉到 `0.2.0-rc.2`。
|
|
33
|
+
|
|
34
|
+
## suite-installer-v1.0.30 - 2026-09-29
|
|
35
|
+
|
|
36
|
+
一键维护安装 11 个自研插件。包含以下插件及版本:
|
|
37
|
+
|
|
38
|
+
- `@michengai/dsh-archive-manager@1.0.7`
|
|
39
|
+
- `@michengai/dsh-codex-ui@1.1.22`
|
|
40
|
+
- `@michengai/dsh-skills-manager@1.1.5`
|
|
41
|
+
- `@michengai/dsh-agency-agents@1.0.6`
|
|
42
|
+
- `@michengai/dsh-im-connect@0.1.57`
|
|
43
|
+
- `@michengai/dsh-automation@0.1.52`
|
|
44
|
+
- `@michengai/dsh-btw@0.1.14`
|
|
45
|
+
- `@michengai/dsh-simplify@0.1.11`
|
|
46
|
+
- `@michengai/dsh-pua@0.3.19`
|
|
47
|
+
- `@michengai/dsh-code-review@0.1.8`
|
|
48
|
+
- `@michengai/dsh-codex-pet@0.1.11`
|
|
49
|
+
|
|
50
|
+
安装器使用这些精确版本执行安装,确保可复现。
|
|
51
|
+
|
|
7
52
|
## 1.1.23 - 2026-09-29
|
|
8
53
|
|
|
9
54
|
- 在官方 DeepSeek Harness 桌面端的关于页安装或更新其他插件时,不再把桌面宿主打崩。
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ Working across several projects and conversations in DSH Web? DSH Codex UI helps
|
|
|
24
24
|
|
|
25
25
|
## Host compatibility
|
|
26
26
|
|
|
27
|
-
This working tree explicitly declares DSH `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, and `0.2.0-rc.
|
|
27
|
+
This working tree explicitly declares DSH `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, `0.2.0-rc.1`, and `0.2.0-rc.2`. Development dependencies are pinned to `0.2.0-rc.2`. No code references `@deepseek-ai/dsh-client-runtime`: it is not a peer, not a client inject, and no longer a development dependency now that the settings-lifecycle spec mounts the production `SlotRegistry` from the official `@deepseek-ai/dsh-client-ui-renderer/client` bundle. Isolated host checks cover `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, `0.2.0-rc.1`, and `0.2.0-rc.2`.
|
|
28
28
|
|
|
29
29
|
## What you can do
|
|
30
30
|
|
package/README.zh-CN.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
## 宿主兼容性
|
|
26
26
|
|
|
27
|
-
当前工作区已显式声明支持 DSH `0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3`、`0.1.7-rc.1`、`0.1.7-rc.2` 或 `0.2.0-rc.
|
|
27
|
+
当前工作区已显式声明支持 DSH `0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3`、`0.1.7-rc.1`、`0.1.7-rc.2`、`0.2.0-rc.1` 或 `0.2.0-rc.2`。开发依赖钉在 `0.2.0-rc.2`。代码已不再引用 `@deepseek-ai/dsh-client-runtime`:它既不是 peer、也不写入客户端 inject;设置生命周期用例改用官方 `@deepseek-ai/dsh-client-ui-renderer/client` 装配包里的生产 `SlotRegistry` 后,这条开发依赖也已移除。隔离宿主检查覆盖 `0.1.2-rc.1`、`0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3`、`0.1.7-rc.1`、`0.1.7-rc.2`、`0.2.0-rc.1` 或 `0.2.0-rc.2`。
|
|
28
28
|
|
|
29
29
|
## 你可以用它做什么
|
|
30
30
|
|
package/lib/index.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { apply as apply$1 } from "@deepseek-ai/dsh-client-ui-settings-general";
|
|
2
1
|
import { spawn } from "node:child_process";
|
|
3
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
3
|
import { lstat, mkdir, open, readFile, readdir, realpath, rename, rm, unlink, writeFile } from "node:fs/promises";
|
|
5
4
|
import { homedir } from "node:os";
|
|
6
|
-
import { basename, dirname, isAbsolute, join, relative, resolve, sep, win32 } from "node:path";
|
|
5
|
+
import { basename, delimiter, dirname, isAbsolute, join, relative, resolve, sep, win32 } from "node:path";
|
|
7
6
|
import { fileURLToPath } from "node:url";
|
|
8
7
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
9
8
|
//#region src/business-api.ts
|
|
@@ -221,13 +220,41 @@ function resolveDependencyRuntime(ctx, options = {}) {
|
|
|
221
220
|
cliRuntimeRoot
|
|
222
221
|
].filter((root) => root !== void 0 && root !== "");
|
|
223
222
|
const pluginEnv = stringEnvironment(launched?.packageManager?.env);
|
|
223
|
+
const packageManager = profilePackageManager(launched?.packageManager) ?? desktopPackageManagerFromArgv(argv);
|
|
224
224
|
return {
|
|
225
225
|
environmentKind: "cli",
|
|
226
226
|
profileName,
|
|
227
227
|
profileDir,
|
|
228
228
|
runtimeRoots,
|
|
229
229
|
...cliEntry === void 0 ? {} : { cliEntry },
|
|
230
|
-
...pluginEnv === void 0 ? {} : { pluginEnv }
|
|
230
|
+
...pluginEnv === void 0 ? {} : { pluginEnv },
|
|
231
|
+
...packageManager === void 0 ? {} : { packageManager }
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
function profilePackageManager(value) {
|
|
235
|
+
if (typeof value?.command !== "string" || value.command === "") return void 0;
|
|
236
|
+
if (!Array.isArray(value.args) || !value.args.every((item) => typeof item === "string")) return void 0;
|
|
237
|
+
const env = stringEnvironment(value.env);
|
|
238
|
+
return {
|
|
239
|
+
command: value.command,
|
|
240
|
+
args: value.args,
|
|
241
|
+
...env === void 0 ? {} : { env }
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/** 官方 Desktop Host 把 pnpm 入口放在 argv[5],bin 放在 argv[6],不提供 desktopPnpm。 */
|
|
245
|
+
function desktopPackageManagerFromArgv(argv, command = process.execPath) {
|
|
246
|
+
if (!isOfficialDesktopHostEntry(argv[1])) return void 0;
|
|
247
|
+
const pnpm = argv[5];
|
|
248
|
+
if (typeof pnpm !== "string" || !isAbsolute(pnpm) || !existsSync(pnpm)) return void 0;
|
|
249
|
+
const bin = argv[6];
|
|
250
|
+
const path = typeof bin === "string" && bin !== "" ? `${bin}${delimiter}${process.env.PATH ?? ""}` : process.env.PATH;
|
|
251
|
+
return {
|
|
252
|
+
command,
|
|
253
|
+
args: ["--expose-internals", pnpm],
|
|
254
|
+
env: {
|
|
255
|
+
ELECTRON_RUN_AS_NODE: "1",
|
|
256
|
+
...typeof path === "string" && path !== "" ? { PATH: path } : {}
|
|
257
|
+
}
|
|
231
258
|
};
|
|
232
259
|
}
|
|
233
260
|
function stringEnvironment(value) {
|
|
@@ -559,6 +586,28 @@ async function removePendingUpdate(packageName, runtime) {
|
|
|
559
586
|
if (error.code !== "ENOENT") throw error;
|
|
560
587
|
}
|
|
561
588
|
}
|
|
589
|
+
/** pnpm add 不会写 bundles。官方 Desktop 直接调宿主 pnpm 时,要自己把插件挂进 profile。 */
|
|
590
|
+
async function declareProfileBundle(packageName, runtime) {
|
|
591
|
+
if (isOfficialRuntimePackage(packageName)) return;
|
|
592
|
+
const manifestPath = resolve(profileDirectory(runtime), "package.json");
|
|
593
|
+
let manifest;
|
|
594
|
+
try {
|
|
595
|
+
manifest = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
596
|
+
} catch (error) {
|
|
597
|
+
if (error.code !== "ENOENT") throw error;
|
|
598
|
+
manifest = {};
|
|
599
|
+
}
|
|
600
|
+
const bundles = manifest.dsh?.profile?.bundles ?? [];
|
|
601
|
+
if (bundles.includes(packageName)) return;
|
|
602
|
+
manifest.dsh = {
|
|
603
|
+
...manifest.dsh,
|
|
604
|
+
profile: {
|
|
605
|
+
...manifest.dsh?.profile,
|
|
606
|
+
bundles: [...bundles, packageName]
|
|
607
|
+
}
|
|
608
|
+
};
|
|
609
|
+
await writeFile(manifestPath, `${JSON.stringify(manifest, void 0, 2)}\n`, "utf8");
|
|
610
|
+
}
|
|
562
611
|
async function recordDeclaredVersion(packageName, version, runtime) {
|
|
563
612
|
const manifestPath = resolve(profileDirectory(runtime), "package.json");
|
|
564
613
|
let manifest;
|
|
@@ -846,6 +895,21 @@ function monitorDesktopPlugin(handle, timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS) {
|
|
|
846
895
|
function runDshPlugin(args, runtime = resolveDependencyRuntime(), timeoutMs = PLUGIN_INSTALL_TIMEOUT_MS) {
|
|
847
896
|
const desktopPnpm = runtime.desktopPnpm;
|
|
848
897
|
if (desktopPnpm !== void 0) return monitorDesktopPlugin(withPnpmEntry(() => desktopPnpm.runPlugin(args, runtime.profileDir)), timeoutMs);
|
|
898
|
+
const packageManager = runtime.packageManager;
|
|
899
|
+
if (packageManager !== void 0) return monitorPluginChild(spawn(packageManager.command, [...packageManager.args, ...args], {
|
|
900
|
+
cwd: runtime.profileDir,
|
|
901
|
+
env: {
|
|
902
|
+
...pluginSpawnEnv(),
|
|
903
|
+
...runtime.pluginEnv,
|
|
904
|
+
...packageManager.env
|
|
905
|
+
},
|
|
906
|
+
windowsHide: true,
|
|
907
|
+
stdio: [
|
|
908
|
+
"ignore",
|
|
909
|
+
"pipe",
|
|
910
|
+
"pipe"
|
|
911
|
+
]
|
|
912
|
+
}), timeoutMs, "desktop");
|
|
849
913
|
const entry = runtime.cliEntry ?? resolveDshCliEntry();
|
|
850
914
|
if (isOfficialDesktopHostEntry(entry)) throw new Error("无法定位 DSH CLI。请从 DSH 命令启动 Web 服务后重试。");
|
|
851
915
|
return monitorPluginChild(spawn(process.execPath, [
|
|
@@ -961,6 +1025,7 @@ async function installDependenciesLocked(ids, requestHotUpdate, runtime) {
|
|
|
961
1025
|
"--registry=https://registry.npmjs.org/"
|
|
962
1026
|
], runtime);
|
|
963
1027
|
for (const target of batch) {
|
|
1028
|
+
if (runtime.packageManager !== void 0) await declareProfileBundle(target.packageName, runtime);
|
|
964
1029
|
await waitUntilPluginMounted(target.packageName, target.version, runtime);
|
|
965
1030
|
if (!isOfficialRuntimePackage(target.packageName)) await recordDeclaredVersion(target.packageName, target.version, runtime);
|
|
966
1031
|
await removePendingUpdate(target.packageName, runtime);
|
|
@@ -1829,6 +1894,35 @@ async function moveSessionToWorkspace(services, sessionId, targetWorkspaceId, op
|
|
|
1829
1894
|
movingSessions.delete(sessionId);
|
|
1830
1895
|
}
|
|
1831
1896
|
}
|
|
1897
|
+
//#endregion
|
|
1898
|
+
//#region src/onboarding-settings.ts
|
|
1899
|
+
/** 0.1.5 及更早的设置服务用这个命名空间保存欢迎提示版本。 */
|
|
1900
|
+
const ONBOARDING_SETTINGS_NAMESPACE = "ui-onboarding";
|
|
1901
|
+
/**
|
|
1902
|
+
* 停用官方设置壳后,仍登记引导设置。
|
|
1903
|
+
* 不能 import `@deepseek-ai/dsh-client-ui-settings-general`:裸模块名会向上解析到
|
|
1904
|
+
* `~/.dsh/profiles/node_modules` 里的 0.1.2 残留,其 `settings.register` 在新宿主上不存在,
|
|
1905
|
+
* 会让整个渲染进程启动失败。
|
|
1906
|
+
*/
|
|
1907
|
+
function registerOnboardingSettings(ctx) {
|
|
1908
|
+
ctx.inject(["settings"], (settingsCtx) => {
|
|
1909
|
+
const bound = settingsCtx;
|
|
1910
|
+
const settings = bound.settings;
|
|
1911
|
+
try {
|
|
1912
|
+
if (typeof settings?.configure === "function") return bound.effect(() => {
|
|
1913
|
+
const dispose = settings.configure({ auto: false }, ctx.fiber);
|
|
1914
|
+
return typeof dispose === "function" ? dispose : () => {};
|
|
1915
|
+
});
|
|
1916
|
+
if (typeof settings?.register === "function") {
|
|
1917
|
+
settings.register(ONBOARDING_SETTINGS_NAMESPACE, { welcomeNoticeVersion: { type: "string" } });
|
|
1918
|
+
return;
|
|
1919
|
+
}
|
|
1920
|
+
ctx.logger.warn("[michengai-codex-ui] 当前宿主没有设置 schema 接口,跳过引导设置注册。");
|
|
1921
|
+
} catch (error) {
|
|
1922
|
+
ctx.logger.warn("[michengai-codex-ui] 引导设置注册已跳过:%s", error);
|
|
1923
|
+
}
|
|
1924
|
+
});
|
|
1925
|
+
}
|
|
1832
1926
|
/** 校验结构和归属;存储兼容模式保留旧 locale 下合法的大小写变体名称。 */
|
|
1833
1927
|
function parseGroups(value, preserveCaseVariants) {
|
|
1834
1928
|
if (!Array.isArray(value) || value.length > 100) return void 0;
|
|
@@ -2046,7 +2140,7 @@ function sessionMoveAuthenticationError(status, error) {
|
|
|
2046
2140
|
}
|
|
2047
2141
|
/** 提供不泄露地址、命令和凭证的连接器目录。 */
|
|
2048
2142
|
function apply(ctx) {
|
|
2049
|
-
|
|
2143
|
+
registerOnboardingSettings(ctx);
|
|
2050
2144
|
const host = hostServices(ctx);
|
|
2051
2145
|
ctx.effect(() => {
|
|
2052
2146
|
const foregroundExplorer = new ForegroundExplorer();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@michengai/dsh-codex-ui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.25",
|
|
4
4
|
"description": "DSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH Web",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -74,47 +74,47 @@
|
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"@deepseek-ai/cordis": ">=4.0.2 <5.0.0",
|
|
77
|
-
"@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
78
|
-
"@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
79
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
80
|
-
"@deepseek-ai/dsh-client-ui-input-trigger": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
81
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
82
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
83
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
84
|
-
"@deepseek-ai/dsh-client-ui-settings-general": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
85
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
86
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
87
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1",
|
|
77
|
+
"@deepseek-ai/dsh-client-connection": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-client-locale": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-client-ui-settings-general": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.5-rc.3 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2",
|
|
88
88
|
"react": "^18.2.0",
|
|
89
89
|
"react-dom": "^18.2.0"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
92
|
"@deepseek-ai/cordis": "4.0.4",
|
|
93
|
-
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.
|
|
94
|
-
"@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.
|
|
95
|
-
"@deepseek-ai/dsh-attachment": "0.2.0-rc.
|
|
96
|
-
"@deepseek-ai/dsh-client-connection": "0.2.0-rc.
|
|
97
|
-
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.
|
|
98
|
-
"@deepseek-ai/dsh-client-store": "0.2.0-rc.
|
|
93
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-attachment": "0.2.0-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-client-connection": "0.2.0-rc.2",
|
|
97
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.2",
|
|
98
|
+
"@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
|
|
99
99
|
"@deepseek-ai/dsh-client-test-runtime": "0.2.0-rc.1",
|
|
100
|
-
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.
|
|
101
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.
|
|
102
|
-
"@deepseek-ai/dsh-client-ui-input-trigger": "0.2.0-rc.
|
|
103
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.
|
|
104
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.
|
|
105
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.
|
|
106
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.
|
|
107
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.
|
|
108
|
-
"@deepseek-ai/dsh-client-ui-settings-general": "0.2.0-rc.
|
|
109
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.0-rc.
|
|
110
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.
|
|
111
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.
|
|
112
|
-
"@deepseek-ai/dsh-session": "0.2.0-rc.
|
|
113
|
-
"@deepseek-ai/dsh-scope": "0.2.0-rc.
|
|
114
|
-
"@deepseek-ai/dsh-subagent": "0.2.0-rc.
|
|
115
|
-
"@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.
|
|
116
|
-
"@deepseek-ai/dsh-util-workspace-path": "0.2.0-rc.
|
|
117
|
-
"@deepseek-ai/dsh-workspace": "0.2.0-rc.
|
|
100
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "0.2.0-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-settings-general": "0.2.0-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.0-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-scope": "0.2.0-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-util-workspace-path": "0.2.0-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-workspace": "0.2.0-rc.2",
|
|
118
118
|
"diff": "^9.0.0",
|
|
119
119
|
"shiki": "^4.3.1",
|
|
120
120
|
"simple-icons": "16.31.0",
|