@deepseek-ai/dsh 0.2.0-rc.1 → 0.2.0-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 +4 -4
- package/README.md +3 -1
- package/README.zh.md +3 -1
- package/lib/bin.js +12 -8
- package/lib/{plugin-DkYIj96-.js → plugin-BGnVfe_D.js} +26 -8
- package/lib/types/args.d.ts +2 -1
- package/lib/types/bin.d.ts +8 -1
- package/lib/types/plugin.d.ts +4 -2
- package/package.json +117 -117
package/README.i18n.yaml
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
en: ebdc75fa0da18801
|
|
7
7
|
zh: 5c6cd2554b8f8a98
|
|
8
8
|
/deepseek-ai-dsh/entry-modes:
|
|
9
|
-
en:
|
|
10
|
-
zh:
|
|
9
|
+
en: c4811e2012a5e919
|
|
10
|
+
zh: e6d20ec8238c2638
|
|
11
11
|
/deepseek-ai-dsh/app-arguments:
|
|
12
12
|
en: cc03e6b75206661b
|
|
13
13
|
zh: 99e41f4143198352
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
en: 3a40ddc44e55f79c
|
|
19
19
|
zh: 8d3949132e1ef93c
|
|
20
20
|
/deepseek-ai-dsh/development:
|
|
21
|
-
en:
|
|
22
|
-
zh:
|
|
21
|
+
en: 0a289c1235869927
|
|
22
|
+
zh: a1f473f70036ad37
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ The `dsh` command is the sole supported Node application launcher: profiles are
|
|
|
17
17
|
| `dsh web` | Boot the Web profile. |
|
|
18
18
|
| `dsh plugin --profile <name> <pnpm args>` | Manage a profile's plugins by forwarding to pnpm in the profile directory. |
|
|
19
19
|
|
|
20
|
-
The invoking directory is the default workspace root. The `web`, `headless`, `sdk`, `sdk-minimal`, and `acp` profiles auto-initialize on first use from shipped templates. Create another profile at an unused, non-shipped name with `--from-default-profile`, or initialize a base-backed profile through `dsh plugin`. The `desktop` name is reserved for the Electron-owned profile, so the CLI rejects boot
|
|
20
|
+
The invoking directory is the default workspace root. The `web`, `headless`, `sdk`, `sdk-minimal`, and `acp` profiles auto-initialize on first use from shipped templates. Create another profile at an unused, non-shipped name with `--from-default-profile`, or initialize a base-backed profile through `dsh plugin`. The `desktop` name is reserved for the Electron-owned profile, so the CLI rejects boot and config-dump requests for it. The npm CLI also rejects its plugin-management requests; the [Desktop-installed command](../desktop/README.md#bundled-command-runtime) can manage the initialized Desktop profile using that installation’s runtime.
|
|
21
21
|
|
|
22
22
|
## App arguments
|
|
23
23
|
|
|
@@ -59,4 +59,6 @@ Production runs require built package and frontend artifacts. From the repositor
|
|
|
59
59
|
|
|
60
60
|
The `@deepseek-ai/dsh/profile-boot` export provides the shared profile lifecycle to the Desktop host. A resolved application profile supplies its own installation anchor for runtime package resolution while retaining the Harness home patch, proxy environment, telemetry switch, patch reload, and bounded shutdown.
|
|
61
61
|
|
|
62
|
+
Packaged installations call the same `runCli()` entry with their package-manager executable. The Desktop carrier also enables plugin operations for its initialized profile; npm launches omit these options. Installation-owned package environments apply only to plugin package operations; the invoking directory, ordinary profile selection, and agent-shell PATH retain their CLI meanings.
|
|
63
|
+
|
|
62
64
|
The [Web failure matrix](tests/profiles/web/tests/web-failure-matrix.expected.e2e.ts) runs the built CLI through startup failures and native configuration HMR with `awaitWriteFinish` enabled in `test:expected`. It verifies authenticated HTTP responses, diagnostics, recovery, process exits, and disposal without model API calls; the [startup acceptance](tests/profiles/web/tests/web-best-effort-startup.expected.e2e.ts) also covers the shipped required Web dependencies and port conflicts.
|
package/README.zh.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
| `dsh web` | 启动 Web profile。 |
|
|
18
18
|
| `dsh plugin --profile <name> <pnpm args>` | 通过在 profile 目录中转发给 pnpm 来管理该 profile 的插件。 |
|
|
19
19
|
|
|
20
|
-
运行命令时所在的目录将作为默认 workspace 根目录。`web`、`headless`、`sdk`、`sdk-minimal` 和 `acp` profile 在首次使用时会从随附模板自动初始化。使用 `--from-default-profile` 可以基于这些模板之一,在尚未使用的非内置名称处创建其他 profile;通过 `dsh plugin` 则可以初始化一个以 base 为基础的 profile。`desktop` 名称保留给 Electron 持有的 profile,因此 CLI
|
|
20
|
+
运行命令时所在的目录将作为默认 workspace 根目录。`web`、`headless`、`sdk`、`sdk-minimal` 和 `acp` profile 在首次使用时会从随附模板自动初始化。使用 `--from-default-profile` 可以基于这些模板之一,在尚未使用的非内置名称处创建其他 profile;通过 `dsh plugin` 则可以初始化一个以 base 为基础的 profile。`desktop` 名称保留给 Electron 持有的 profile,因此 CLI(命令行界面)会拒绝针对它的启动和配置 dump 请求。npm CLI 也会拒绝其插件管理请求;[Desktop 内置命令](../desktop/README.zh.md#bundled-command-runtime)可以使用该安装的运行时管理已初始化的 Desktop profile。
|
|
21
21
|
|
|
22
22
|
## 应用参数
|
|
23
23
|
|
|
@@ -59,4 +59,6 @@ profile 目录包含一个 `package.json`,其中记录树外插件依赖,以
|
|
|
59
59
|
|
|
60
60
|
`@deepseek-ai/dsh/profile-boot` 导出向 Desktop Host 提供共享 profile 生命周期。已解析的应用 profile 为运行时包解析指定自己的安装锚点,同时沿用 Harness home patch、代理环境、遥测开关、patch 热重载和有界关闭。
|
|
61
61
|
|
|
62
|
+
打包安装通过同一个 `runCli()` 入口传入包管理器可执行文件。Desktop 载体还会启用其已初始化 profile 的插件操作;npm 启动不传入这些选项。安装包提供的包管理环境仅用于插件包操作;调用目录、普通 profile 选择与 agent shell 的 PATH 保留 CLI 语义。
|
|
63
|
+
|
|
62
64
|
[Web 失败矩阵](tests/profiles/web/tests/web-failure-matrix.expected.e2e.ts)在 `test:expected` 中通过构建后的 CLI 验证启动失败与启用 `awaitWriteFinish` 的原生配置 HMR。它不调用模型 API,而是检查经过认证的 HTTP 响应、诊断、恢复、进程退出与 dispose;[启动验收测试](tests/profiles/web/tests/web-best-effort-startup.expected.e2e.ts)还覆盖随附 Web 的必需依赖与端口冲突。
|
package/lib/bin.js
CHANGED
|
@@ -95,9 +95,10 @@ function resolveBoot(program, profile, options, args) {
|
|
|
95
95
|
* error.
|
|
96
96
|
* @param argv - arguments after the Node binary and script.
|
|
97
97
|
* @param version - version string printed by `--version`.
|
|
98
|
+
* @param manageDesktopProfile - permit Desktop's installed carrier to manage its reserved profile's plugins.
|
|
98
99
|
* @returns the resolved invocation.
|
|
99
100
|
*/
|
|
100
|
-
function parseDshArgs(argv, version) {
|
|
101
|
+
function parseDshArgs(argv, version, manageDesktopProfile = false) {
|
|
101
102
|
const first = argv[0];
|
|
102
103
|
let resolved;
|
|
103
104
|
const program = new Command();
|
|
@@ -115,11 +116,11 @@ function parseDshArgs(argv, version) {
|
|
|
115
116
|
const plugin = program.command("plugin").description("manage a profile's plugins by forwarding the remaining arguments to pnpm in the profile directory");
|
|
116
117
|
plugin.requiredOption("--profile <name>", "the profile whose plugins to manage (initialized on first use)", selectProfile).allowUnknownOption().argument("[args...]", "pnpm arguments, forwarded verbatim (add <pkg>, remove <pkg>, why <pkg>, ...)").action((args, options) => {
|
|
117
118
|
if (options.profile === "") program.error("error: --profile needs a name");
|
|
118
|
-
rejectElectronProfile(plugin, options.profile);
|
|
119
|
+
if (!manageDesktopProfile) rejectElectronProfile(plugin, options.profile);
|
|
119
120
|
if (args.length === 0) program.error("error: plugin needs pnpm arguments to forward (e.g. add <package>)");
|
|
120
121
|
resolved = {
|
|
121
122
|
mode: "plugin",
|
|
122
|
-
profile: options.profile,
|
|
123
|
+
profile: options.profile.toLowerCase() === "desktop" ? "desktop" : options.profile,
|
|
123
124
|
args
|
|
124
125
|
};
|
|
125
126
|
});
|
|
@@ -200,11 +201,13 @@ async function reportStartupFailure(error, context, write = writeStderr) {
|
|
|
200
201
|
/* v8 ignore file -- built-bin acceptance exercises this self-executing dispatch. */
|
|
201
202
|
/**
|
|
202
203
|
* Run the public dsh command-line interface.
|
|
204
|
+
* @param options - Package runtime and Desktop profile access supplied by the installation.
|
|
203
205
|
* @returns a promise that settles when the selected command mode finishes.
|
|
204
206
|
*/
|
|
205
|
-
async function runCli() {
|
|
207
|
+
async function runCli(options = {}) {
|
|
206
208
|
const version = getDshRuntimeVersion();
|
|
207
|
-
const
|
|
209
|
+
const { manageDesktopProfile, ...profileOptions } = options;
|
|
210
|
+
const invocation = parseDshArgs(process.argv.slice(2), version, manageDesktopProfile);
|
|
208
211
|
switch (invocation.mode) {
|
|
209
212
|
case "profile": {
|
|
210
213
|
const { runProfile } = await import("./profile-boot.js");
|
|
@@ -214,7 +217,8 @@ async function runCli() {
|
|
|
214
217
|
profile: invocation.profile,
|
|
215
218
|
fromDefaultProfile: invocation.fromDefaultProfile,
|
|
216
219
|
patchFiles: invocation.patches,
|
|
217
|
-
args: invocation.args
|
|
220
|
+
args: invocation.args,
|
|
221
|
+
...profileOptions
|
|
218
222
|
});
|
|
219
223
|
} catch (error) {
|
|
220
224
|
if (!(error instanceof StartupError)) throw error;
|
|
@@ -228,8 +232,8 @@ async function runCli() {
|
|
|
228
232
|
break;
|
|
229
233
|
}
|
|
230
234
|
case "plugin": {
|
|
231
|
-
const { runPlugin } = await import("./plugin-
|
|
232
|
-
process.exit(await runPlugin(invocation.profile, invocation.args));
|
|
235
|
+
const { runPlugin } = await import("./plugin-BGnVfe_D.js");
|
|
236
|
+
process.exit(await runPlugin(invocation.profile, invocation.args, options.packageManager));
|
|
233
237
|
break;
|
|
234
238
|
}
|
|
235
239
|
case "dump-config": {
|
|
@@ -3,10 +3,13 @@ import { DEFAULT_PROFILE_BUNDLES, PROFILE_TEMPLATES, initProfile, readProfileCom
|
|
|
3
3
|
import { mkdir } from "node:fs/promises";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
|
-
import { runPluginCommand, setProfileVersionExemption } from "@deepseek-ai/dsh-plugin-manager/operations";
|
|
6
|
+
import { runPluginCommand, runProfilePnpm, setProfileVersionExemption } from "@deepseek-ai/dsh-plugin-manager/operations";
|
|
7
7
|
import { withFileLock } from "@deepseek-ai/dsh-atomic-write";
|
|
8
8
|
//#region lib/types/plugin.js
|
|
9
9
|
/** Profile package management and explicit, exact-version compatibility approvals. */
|
|
10
|
+
function requireDesktopProfile(dir) {
|
|
11
|
+
if (!existsSync(join(dir, "package.json"))) throw new Error("Open DeepSeek Harness Desktop once to initialize its profile, then fully quit it before running dsh plugin --profile desktop.");
|
|
12
|
+
}
|
|
10
13
|
/** Parse only DSH-owned commands; all other arguments remain pnpm's responsibility. */
|
|
11
14
|
async function versionCommand(profile, args) {
|
|
12
15
|
const [command, ...rest] = args;
|
|
@@ -32,9 +35,10 @@ async function versionCommand(profile, args) {
|
|
|
32
35
|
}
|
|
33
36
|
if (command === "allow-version") process.stderr.write("dsh: warning: allowing incompatible plugin versions can break the application or corrupt data. Approval applies only to the exact package and DSH versions.\n");
|
|
34
37
|
const dir = resolveProfileDir(profile);
|
|
35
|
-
await mkdir(dir, { recursive: true });
|
|
38
|
+
if (profile !== "desktop") await mkdir(dir, { recursive: true });
|
|
36
39
|
await withFileLock(join(dir, "package.json"), async () => {
|
|
37
|
-
if (
|
|
40
|
+
if (profile === "desktop") requireDesktopProfile(dir);
|
|
41
|
+
else if (!existsSync(join(dir, "package.json"))) initProfile(dir, PROFILE_TEMPLATES[profile]?.bundles ?? DEFAULT_PROFILE_BUNDLES);
|
|
38
42
|
if (request === void 0) {
|
|
39
43
|
const { exemptions, warnings } = readProfileCompatibility(dir);
|
|
40
44
|
for (const warning of warnings) process.stderr.write(`dsh: warning: ${warning}\n`);
|
|
@@ -51,20 +55,30 @@ async function versionCommand(profile, args) {
|
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
/** Run package management for a profile.
|
|
54
|
-
* @param profile Profile name.
|
|
58
|
+
* @param profile Profile name; Desktop's reserved profile must already be initialized by the application.
|
|
55
59
|
* @param args DSH exemption command or pnpm arguments relative to the invoking directory.
|
|
60
|
+
* @param packageManager Installation-owned executable and environment for pnpm operations.
|
|
56
61
|
* @returns Zero on success; nonzero on invalid approval or package-manager failure.
|
|
57
62
|
*/
|
|
58
|
-
async function runPlugin(profile, args) {
|
|
63
|
+
async function runPlugin(profile, args, packageManager) {
|
|
64
|
+
if (profile === "desktop") try {
|
|
65
|
+
requireDesktopProfile(resolveProfileDir(profile));
|
|
66
|
+
} catch (error) {
|
|
67
|
+
process.stderr.write(`dsh: ${String(error)}\n`);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
59
70
|
const versionResult = await versionCommand(profile, args);
|
|
60
71
|
if (versionResult !== void 0) return versionResult;
|
|
61
72
|
const dir = resolveProfileDir(profile);
|
|
62
73
|
if (existsSync(join(dir, "package.json"))) for (const warning of readProfileCompatibility(dir).warnings) process.stderr.write(`dsh: warning: ${warning}\n`);
|
|
63
|
-
const
|
|
74
|
+
const context = {
|
|
64
75
|
profile,
|
|
76
|
+
dir,
|
|
65
77
|
installAnchor: INSTALL_ANCHOR,
|
|
66
78
|
cwd: process.cwd()
|
|
67
|
-
}
|
|
79
|
+
};
|
|
80
|
+
const options = {
|
|
81
|
+
...packageManager,
|
|
68
82
|
execution: "cli",
|
|
69
83
|
outputBytes: 16384,
|
|
70
84
|
lockWaitMs: 12e4,
|
|
@@ -72,7 +86,11 @@ async function runPlugin(profile, args) {
|
|
|
72
86
|
onOutput: (text, stream) => {
|
|
73
87
|
process[stream].write(text);
|
|
74
88
|
}
|
|
75
|
-
}
|
|
89
|
+
};
|
|
90
|
+
const result = profile === "desktop" ? await withFileLock(join(dir, "package.json"), async () => {
|
|
91
|
+
requireDesktopProfile(dir);
|
|
92
|
+
return runProfilePnpm(context, args, options);
|
|
93
|
+
}, { waitMs: 12e4 }) : await runPluginCommand(context, args, options);
|
|
76
94
|
if (result.exitCode === 127) process.stderr.write("dsh: pnpm was not found; install pnpm and make it available on PATH.\n");
|
|
77
95
|
for (const { name, version, runtimeVersion } of result.incompatible ?? []) process.stderr.write(`dsh: to accept the risk, run: dsh plugin --profile ${profile} allow-version ${name}@${version} --dsh-version ${runtimeVersion} --accept-risk\n`);
|
|
78
96
|
if (result.exitCode !== 0) process.stderr.write(`dsh: plugin command failed; diagnostics: ${result.logPath}\n`);
|
package/lib/types/args.d.ts
CHANGED
|
@@ -57,8 +57,9 @@ export type DshInvocation = ProfileInvocation | DumpConfigInvocation | DumpConfi
|
|
|
57
57
|
* error.
|
|
58
58
|
* @param argv - arguments after the Node binary and script.
|
|
59
59
|
* @param version - version string printed by `--version`.
|
|
60
|
+
* @param manageDesktopProfile - permit Desktop's installed carrier to manage its reserved profile's plugins.
|
|
60
61
|
* @returns the resolved invocation.
|
|
61
62
|
*/
|
|
62
|
-
export declare function parseDshArgs(argv: readonly string[], version: string): DshInvocation;
|
|
63
|
+
export declare function parseDshArgs(argv: readonly string[], version: string, manageDesktopProfile?: boolean): DshInvocation;
|
|
63
64
|
export {};
|
|
64
65
|
//# sourceMappingURL=args.d.ts.map
|
package/lib/types/bin.d.ts
CHANGED
|
@@ -3,9 +3,16 @@
|
|
|
3
3
|
* Command-line entry for dsh.
|
|
4
4
|
* @module @deepseek-ai/dsh/bin
|
|
5
5
|
*/
|
|
6
|
+
import type { RunProfileOptions } from './profile-boot.ts';
|
|
7
|
+
/** Installation-owned dependencies supplied by a packaged CLI launcher. */
|
|
8
|
+
export type RunCliOptions = Pick<RunProfileOptions, 'packageManager'> & {
|
|
9
|
+
/** Permit plugin commands for Desktop's existing profile; reserved for its installed carrier. */
|
|
10
|
+
manageDesktopProfile?: boolean;
|
|
11
|
+
};
|
|
6
12
|
/**
|
|
7
13
|
* Run the public dsh command-line interface.
|
|
14
|
+
* @param options - Package runtime and Desktop profile access supplied by the installation.
|
|
8
15
|
* @returns a promise that settles when the selected command mode finishes.
|
|
9
16
|
*/
|
|
10
|
-
export declare function runCli(): Promise<void>;
|
|
17
|
+
export declare function runCli(options?: RunCliOptions): Promise<void>;
|
|
11
18
|
//# sourceMappingURL=bin.d.ts.map
|
package/lib/types/plugin.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type ProfileContext } from '@deepseek-ai/dsh-app-boot';
|
|
1
2
|
/** Run package management for a profile.
|
|
2
|
-
* @param profile Profile name.
|
|
3
|
+
* @param profile Profile name; Desktop's reserved profile must already be initialized by the application.
|
|
3
4
|
* @param args DSH exemption command or pnpm arguments relative to the invoking directory.
|
|
5
|
+
* @param packageManager Installation-owned executable and environment for pnpm operations.
|
|
4
6
|
* @returns Zero on success; nonzero on invalid approval or package-manager failure.
|
|
5
7
|
*/
|
|
6
|
-
export declare function runPlugin(profile: string, args: readonly string[]): Promise<number>;
|
|
8
|
+
export declare function runPlugin(profile: string, args: readonly string[], packageManager?: ProfileContext['packageManager']): Promise<number>;
|
|
7
9
|
//# sourceMappingURL=plugin.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh",
|
|
3
3
|
"description": "dsh CLI: profile launch, plugin management, and configuration inspection",
|
|
4
|
-
"version": "0.2.0-rc.
|
|
4
|
+
"version": "0.2.0-rc.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -23,85 +23,85 @@
|
|
|
23
23
|
"commander": "^15.0.0",
|
|
24
24
|
"js-yaml": "^4.2.0",
|
|
25
25
|
"node-addon-require-builtin": "^0.1.6",
|
|
26
|
-
"@deepseek-ai/
|
|
27
|
-
"@deepseek-ai/dsh-hmr": "0.2.0-rc.1",
|
|
26
|
+
"@deepseek-ai/dsh-hmr": "0.2.0-rc.2",
|
|
28
27
|
"@deepseek-ai/cordis-plugin-include": "~1.0.9",
|
|
29
28
|
"@deepseek-ai/cordis-plugin-loader": "~1.0.5",
|
|
30
29
|
"@deepseek-ai/cordis-plugin-timer": "~1.1.6",
|
|
31
|
-
"@deepseek-ai/dsh-acp-app": "0.2.0-rc.
|
|
32
|
-
"@deepseek-ai/
|
|
33
|
-
"@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.
|
|
34
|
-
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.
|
|
35
|
-
"@deepseek-ai/dsh-base": "0.2.0-rc.
|
|
36
|
-
"@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.
|
|
37
|
-
"@deepseek-ai/dsh-
|
|
38
|
-
"@deepseek-ai/dsh-
|
|
39
|
-
"@deepseek-ai/dsh-command-compact": "0.2.0-rc.
|
|
40
|
-
"@deepseek-ai/dsh-command-goal": "0.2.0-rc.
|
|
41
|
-
"@deepseek-ai/dsh-
|
|
42
|
-
"@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.
|
|
43
|
-
"@deepseek-ai/dsh-
|
|
44
|
-
"@deepseek-ai/dsh-experimental-
|
|
45
|
-
"@deepseek-ai/dsh-
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
47
|
-
"@deepseek-ai/dsh-
|
|
48
|
-
"@deepseek-ai/dsh-
|
|
49
|
-
"@deepseek-ai/dsh-
|
|
50
|
-
"@deepseek-ai/dsh-
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-hooks-
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
55
|
-
"@deepseek-ai/dsh-
|
|
56
|
-
"@deepseek-ai/dsh-
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-pwsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
60
|
-
"@deepseek-ai/dsh-
|
|
61
|
-
"@deepseek-ai/dsh-sdk-
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-session-
|
|
64
|
-
"@deepseek-ai/dsh-
|
|
65
|
-
"@deepseek-ai/dsh-skill
|
|
66
|
-
"@deepseek-ai/dsh-
|
|
67
|
-
"@deepseek-ai/dsh-
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
71
|
-
"@deepseek-ai/dsh-
|
|
72
|
-
"@deepseek-ai/dsh-
|
|
73
|
-
"@deepseek-ai/dsh-
|
|
74
|
-
"@deepseek-ai/dsh-
|
|
75
|
-
"@deepseek-ai/dsh-tool-
|
|
76
|
-
"@deepseek-ai/dsh-tool-
|
|
77
|
-
"@deepseek-ai/dsh-
|
|
78
|
-
"@deepseek-ai/dsh-tool-
|
|
79
|
-
"@deepseek-ai/dsh-tool-
|
|
80
|
-
"@deepseek-ai/dsh-tool-
|
|
81
|
-
"@deepseek-ai/dsh-tool-
|
|
82
|
-
"@deepseek-ai/dsh-tool-
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
84
|
-
"@deepseek-ai/dsh-tool-
|
|
85
|
-
"@deepseek-ai/dsh-tool-
|
|
86
|
-
"@deepseek-ai/dsh-tool-skill": "0.2.0-rc.
|
|
87
|
-
"@deepseek-ai/dsh-tool-
|
|
88
|
-
"@deepseek-ai/dsh-tool-
|
|
89
|
-
"@deepseek-ai/dsh-tool-
|
|
90
|
-
"@deepseek-ai/dsh-tool-
|
|
91
|
-
"@deepseek-ai/dsh-tool-
|
|
92
|
-
"@deepseek-ai/dsh-
|
|
93
|
-
"@deepseek-ai/dsh-
|
|
94
|
-
"@deepseek-ai/dsh-webhook
|
|
95
|
-
"@deepseek-ai/dsh-
|
|
96
|
-
"@deepseek-ai/dsh-tool-
|
|
30
|
+
"@deepseek-ai/dsh-acp-app": "0.2.0-rc.2",
|
|
31
|
+
"@deepseek-ai/cordis": "~4.0.4",
|
|
32
|
+
"@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.2",
|
|
33
|
+
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.2",
|
|
34
|
+
"@deepseek-ai/dsh-base": "0.2.0-rc.2",
|
|
35
|
+
"@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.2",
|
|
36
|
+
"@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.2",
|
|
37
|
+
"@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.2",
|
|
38
|
+
"@deepseek-ai/dsh-command-compact": "0.2.0-rc.2",
|
|
39
|
+
"@deepseek-ai/dsh-command-goal": "0.2.0-rc.2",
|
|
40
|
+
"@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.2",
|
|
41
|
+
"@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.2",
|
|
42
|
+
"@deepseek-ai/dsh-cordis-client-runner": "0.2.0-rc.2",
|
|
43
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.0-rc.2",
|
|
44
|
+
"@deepseek-ai/dsh-cmdline": "0.2.0-rc.2",
|
|
45
|
+
"@deepseek-ai/dsh-experimental-schedule-bundle": "0.2.0-rc.2",
|
|
46
|
+
"@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
|
|
47
|
+
"@deepseek-ai/dsh-goal": "0.2.0-rc.2",
|
|
48
|
+
"@deepseek-ai/dsh-headless": "0.2.0-rc.2",
|
|
49
|
+
"@deepseek-ai/dsh-home-paths": "0.2.0-rc.2",
|
|
50
|
+
"@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.2",
|
|
51
|
+
"@deepseek-ai/dsh-hooks-claude-code": "0.2.0-rc.2",
|
|
52
|
+
"@deepseek-ai/dsh-jobs-local": "0.2.0-rc.2",
|
|
53
|
+
"@deepseek-ai/dsh-launch-environment": "0.2.0-rc.2",
|
|
54
|
+
"@deepseek-ai/dsh-mcp-client": "0.2.0-rc.2",
|
|
55
|
+
"@deepseek-ai/dsh-persona": "0.2.0-rc.2",
|
|
56
|
+
"@deepseek-ai/dsh-plan-mode": "0.2.0-rc.2",
|
|
57
|
+
"@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.2",
|
|
58
|
+
"@deepseek-ai/dsh-hooks-codex": "0.2.0-rc.2",
|
|
59
|
+
"@deepseek-ai/dsh-schedule": "0.2.0-rc.2",
|
|
60
|
+
"@deepseek-ai/dsh-sdk-app": "0.2.0-rc.2",
|
|
61
|
+
"@deepseek-ai/dsh-sdk-minimal": "0.2.0-rc.2",
|
|
62
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
|
|
63
|
+
"@deepseek-ai/dsh-session-reference": "0.2.0-rc.2",
|
|
64
|
+
"@deepseek-ai/dsh-skill": "0.2.0-rc.2",
|
|
65
|
+
"@deepseek-ai/dsh-pwsh-sandbox": "0.2.0-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-tool-workspace-dependencies": "0.2.0-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-terminal": "0.2.0-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-time-context": "0.2.0-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-tmux-context": "0.2.0-rc.2",
|
|
72
|
+
"@deepseek-ai/dsh-token-meter": "0.2.0-rc.2",
|
|
73
|
+
"@deepseek-ai/dsh-skill-office": "0.2.0-rc.2",
|
|
74
|
+
"@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.2",
|
|
75
|
+
"@deepseek-ai/dsh-tool-bash": "0.2.0-rc.2",
|
|
76
|
+
"@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-tool-present": "0.2.0-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-tool-goal": "0.2.0-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-tool-fs": "0.2.0-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-tool-skill": "0.2.0-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-tool-str-replace-editor": "0.2.0-rc.2",
|
|
88
|
+
"@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.2",
|
|
89
|
+
"@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-tool-todo": "0.2.0-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-web-app": "0.2.0-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-webhook": "0.2.0-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-webhook-github": "0.2.0-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-tool-web": "0.2.0-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.2",
|
|
97
97
|
"@deepseek-ai/schemastery": "~3.18.4",
|
|
98
|
-
"@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.
|
|
99
|
-
"@deepseek-ai/dsh-http-proxy": "0.2.0-rc.
|
|
100
|
-
"@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.
|
|
101
|
-
"@deepseek-ai/dsh-
|
|
102
|
-
"@deepseek-ai/dsh-
|
|
103
|
-
"@deepseek-ai/dsh-experimental-voice-input-bundle": "0.2.0-rc.
|
|
104
|
-
"@deepseek-ai/dsh-experimental-auto-review": "0.2.0-rc.
|
|
98
|
+
"@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.2",
|
|
99
|
+
"@deepseek-ai/dsh-http-proxy": "0.2.0-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-agent-preset": "0.2.0-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-atomic-write": "0.2.0-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-experimental-voice-input-bundle": "0.2.0-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-experimental-auto-review": "0.2.0-rc.2"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@agentclientprotocol/sdk": "1.4.0",
|
|
@@ -110,47 +110,47 @@
|
|
|
110
110
|
"ajv": "^8.20.0",
|
|
111
111
|
"execa": "^10.0.0",
|
|
112
112
|
"ws": "8.21.0",
|
|
113
|
-
"@deepseek-ai/dsh-
|
|
114
|
-
"@deepseek-ai/dsh-
|
|
115
|
-
"@deepseek-ai/dsh-
|
|
116
|
-
"@deepseek-ai/dsh-
|
|
117
|
-
"@deepseek-ai/dsh-
|
|
118
|
-
"@deepseek-ai/dsh-
|
|
119
|
-
"@deepseek-ai/dsh-
|
|
120
|
-
"@deepseek-ai/dsh-
|
|
121
|
-
"@deepseek-ai/dsh-experimental-
|
|
122
|
-
"@deepseek-ai/dsh-
|
|
123
|
-
"@deepseek-ai/dsh-
|
|
124
|
-
"@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.
|
|
125
|
-
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.
|
|
126
|
-
"@deepseek-ai/dsh-llm": "0.2.0-rc.
|
|
127
|
-
"@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.
|
|
128
|
-
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.
|
|
129
|
-
"@deepseek-ai/dsh-
|
|
130
|
-
"@deepseek-ai/dsh-
|
|
131
|
-
"@deepseek-ai/dsh-
|
|
132
|
-
"@deepseek-ai/dsh-llm-mock-server": "0.2.0-rc.
|
|
133
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.
|
|
134
|
-
"@deepseek-ai/dsh-llm-replay": "0.2.0-rc.
|
|
135
|
-
"@deepseek-ai/dsh-loader-smoke": "0.2.0-rc.
|
|
136
|
-
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.
|
|
137
|
-
"@deepseek-ai/dsh-sandbox-
|
|
138
|
-
"@deepseek-ai/dsh-
|
|
139
|
-
"@deepseek-ai/dsh-
|
|
140
|
-
"@deepseek-ai/dsh-session
|
|
141
|
-
"@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.
|
|
142
|
-
"@deepseek-ai/dsh-
|
|
143
|
-
"@deepseek-ai/dsh-session-
|
|
144
|
-
"@deepseek-ai/dsh-
|
|
145
|
-
"@deepseek-ai/dsh-
|
|
146
|
-
"@deepseek-ai/dsh-subagent": "0.2.0-rc.
|
|
147
|
-
"@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.
|
|
148
|
-
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.
|
|
149
|
-
"@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.
|
|
150
|
-
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.
|
|
151
|
-
"@deepseek-ai/dsh-
|
|
152
|
-
"@deepseek-ai/dsh-
|
|
153
|
-
"@deepseek-ai/dsh-
|
|
113
|
+
"@deepseek-ai/dsh-acp": "0.2.0-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-attachment-local": "0.2.0-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-bash-local": "0.2.0-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-credentials-local": "0.2.0-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.0-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.2.0-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.0-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.2.0-rc.2",
|
|
124
|
+
"@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.2",
|
|
125
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
|
|
126
|
+
"@deepseek-ai/dsh-llm": "0.2.0-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.2",
|
|
128
|
+
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-llm-deepseek-account": "0.2.0-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.2.0-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.2.0-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-llm-mock-server": "0.2.0-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-llm-replay": "0.2.0-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-loader-smoke": "0.2.0-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-sdk-client": "0.2.0-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.2",
|
|
142
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.2",
|
|
143
|
+
"@deepseek-ai/dsh-session-query": "0.2.0-rc.2",
|
|
144
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.2.0-rc.2",
|
|
145
|
+
"@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
|
|
146
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
|
|
147
|
+
"@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.2",
|
|
148
|
+
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.2",
|
|
149
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
|
|
150
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
|
|
151
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
152
|
+
"@deepseek-ai/dsh-settings": "0.2.0-rc.2",
|
|
153
|
+
"@deepseek-ai/dsh-user-approval": "0.2.0-rc.2"
|
|
154
154
|
},
|
|
155
155
|
"exports": {
|
|
156
156
|
"./profile-boot": {
|