@deepseek-ai/dsh 0.1.5-rc.2 → 0.1.6-alpha.1

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
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write apps/cli/README.md
5
- README.md: 2e74ef68cf0b8487083a2e2af0f5175c78ec5212
6
- README.zh.md: 85a75f4c025e1bfe1461b9ffdaca533d308318ba
5
+ README.md: cfab7a4983c31a21b68157c9cefb38c1654571ff
6
+ README.zh.md: 67d07fba1fc27bca9c2a696daddde88aac3aa39c
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
- The `dsh` command is the sole supported Node application launcher: profiles are ordered stacks of plugin-bundle patch layers under the user's own overrides. SDK and ACP are profiles, not separate public bins. The Python runtime wheel packages this same command; the SDK defaults to `sdk`, and the minimal example selects `sdk-minimal`. [`src/args.ts`](src/args.ts) owns the command grammar, and [`src/bin.ts`](src/bin.ts) loads only the selected runner. Invalid commands, options from another mode, configuration errors, and boot failures exit nonzero.
5
+ The `dsh` command is the sole supported Node application launcher: profiles are ordered stacks of plugin-bundle patch layers under the user's own overrides. SDK and ACP are profiles, not separate public bins. The Python runtime wheel packages this same command; the SDK defaults to `sdk`, and the minimal example selects `sdk-minimal`. [`src/args.ts`](src/args.ts) owns the command grammar, and [`src/bin.ts`](src/bin.ts) loads only the selected runner. Invalid commands, options from another mode, and fatal configuration or boot failures exit nonzero.
6
6
 
7
7
  ## Entry modes
8
8
 
@@ -45,7 +45,7 @@ Bundles named in `dsh.profile.bundles` resolve from the dsh installation first (
45
45
 
46
46
  Use `--dump-default-config` and `--dump-config` to inspect the composed tree without booting it.
47
47
 
48
- The [CLI behavior reference](reference/README.md) owns exact layer precedence, flags, shutdown behavior, deployment defaults, and source execution.
48
+ The [CLI behavior reference](reference/README.md) owns exact layer precedence, flags, shutdown behavior, deployment defaults, and source execution. The [startup and reload failure table](../../packages/boot/app-boot/README.md#startup-and-reload-failures) compares optional and required plugin failures with configuration HMR.
49
49
 
50
50
  ## Optional overlays
51
51
 
@@ -54,3 +54,5 @@ The [CLI behavior reference](reference/README.md) owns exact layer precedence, f
54
54
  ## Development
55
55
 
56
56
  Production runs require built package and frontend artifacts. From the repository root, run `pnpm run build` separately, then use `pnpm dsh <args...>` to run the TypeScript entry and forward every argument; the [source-execution reference](reference/README.md#source-execution) owns the module-resolution contract.
57
+
58
+ 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
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
- `dsh` 是唯一受支持的 Node 应用启动器;profile 由多个插件组合包 patch 层按顺序叠加而成,其上再应用用户自己的覆盖配置。SDK 与 ACP 都是 profile,而不是独立的公开 bin。Python 运行时 wheel 会打包同一个命令;SDK 默认使用 `sdk`,极简示例选择 `sdk-minimal`。[`src/args.ts`](src/args.ts) 负责命令语法,[`src/bin.ts`](src/bin.ts) 只加载选中的运行器。无效命令、来自其他模式的选项、配置错误和启动失败都会以非零状态退出。
5
+ `dsh` 是唯一受支持的 Node 应用启动器;profile 由多个插件组合包 patch 层按顺序叠加而成,其上再应用用户自己的覆盖配置。SDK 与 ACP(Agent Client Protocol)都是 profile,而不是独立的公开可执行命令。Python 运行时 wheel 包中也包含同一个命令;SDK 默认使用 `sdk`,极简示例选择 `sdk-minimal`。[`src/args.ts`](src/args.ts) 负责命令语法,[`src/bin.ts`](src/bin.ts) 只加载选中的运行器。无效命令、来自其他模式的选项,以及致命的配置或启动错误都会以非零状态退出。
6
6
 
7
7
  ## 入口模式
8
8
 
@@ -10,14 +10,14 @@
10
10
  |---|---|
11
11
  | `dsh --profile <name>` | 启动位于 `$DSH_HOME/profiles/<name>` 的指定 profile。 |
12
12
  | `dsh --profile <name> --from-default-profile <template>` | 从随附模板创建新的自定义 profile,然后启动它。 |
13
- | `dsh --profile acp` | 通过 ACP stdio 为自动化 client 提供服务,直至断开连接。 |
13
+ | `dsh --profile acp` | 通过 ACP stdio 为自动化客户端提供服务,直至断开连接。 |
14
14
  | `dsh --profile headless "job"` | 运行一个全新的持久化会话,打印最终答案并退出。 |
15
- | `dsh --profile sdk` | 通过 JSON-RPC stdio 为 SDK client 提供服务,直至关闭或断开连接。 |
16
- | `dsh --profile sdk-minimal` | 以独立极简 agent 配置树为 SDK client 提供服务。 |
15
+ | `dsh --profile sdk` | 通过 JSON-RPC stdio 为 SDK 客户端提供服务,直至关闭或断开连接。 |
16
+ | `dsh --profile sdk-minimal` | 以独立极简 agent(智能体)配置树为 SDK 客户端提供服务。 |
17
17
  | `dsh web` | `--profile web` 的别名。 |
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 会拒绝针对它的启动、配置 dump 和插件管理请求。
20
+ 运行命令时所在的目录将作为默认 workspace 根目录。`web`、`headless`、`sdk`、`sdk-minimal` 和 `acp` profile 在首次使用时会从随附模板自动初始化。使用 `--from-default-profile` 可以基于这些模板之一,在尚未使用的非内置名称处创建其他 profile;通过 `dsh plugin` 则可以初始化一个以 base 为基础的 profile。`desktop` 名称保留给 Electron 持有的 profile,因此 CLI(命令行界面)会拒绝针对它的启动、配置 dump 和插件管理请求。
21
21
 
22
22
  ## 应用参数
23
23
 
@@ -45,12 +45,14 @@ profile 目录包含一个 `package.json`,其中记录树外插件依赖,以
45
45
 
46
46
  使用 `--dump-default-config` 和 `--dump-config` 可在不启动的情况下检查组合后的配置树。
47
47
 
48
- 层的确切优先级、flag、关闭行为、部署默认值和源码执行方式,以 [CLI(命令行界面)行为参考](reference/README.zh.md)为准。
48
+ 层的确切优先级、flag、关闭行为、部署默认值和源码执行方式,以 [CLI 行为参考](reference/README.zh.md)为准。[启动与重载失败表](../../packages/boot/app-boot/README.zh.md#startup-and-reload-failures)对比 optional、required 插件启动失败与配置 HMR 的行为。
49
49
 
50
- ## 可选 Overlay
50
+ ## 可选覆盖层
51
51
 
52
- `config/examples/` 交付 GitHub 评审 webhook、会话内 Schedule、记忆 MCP 服务与运行时 Cordis 工具的可选 overlay。它们绝不属于默认 profile;安装与安全说明由[用户指南](../../docs/user/guide/index.zh.md)和[开发实战指南](../../docs/user/develop/practice/index.zh.md)负责。
52
+ `config/examples/` 交付 GitHub 评审 webhook、会话内 Schedule、记忆 MCP 服务器与运行时 Cordis 工具的可选覆盖层。它们绝不属于默认 profile;设置与安全说明由[用户指南](../../docs/user/guide/index.zh.md)和[开发实战指南](../../docs/user/develop/practice/index.zh.md)负责。
53
53
 
54
54
  ## 开发
55
55
 
56
56
  生产运行需要已构建的包与前端产物。请在仓库根目录单独运行 `pnpm run build`,然后使用 `pnpm dsh <args...>` 运行 TypeScript 入口并转发所有参数;模块解析约定以[源码执行参考](reference/README.zh.md#source-execution)为准。
57
+
58
+ [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
@@ -142,7 +142,7 @@ async function runCli() {
142
142
  const invocation = parseDshArgs(process.argv.slice(2), readVersion());
143
143
  switch (invocation.mode) {
144
144
  case "profile": {
145
- const { runProfile } = await import("./profile-boot-BP_C0vpU.js");
145
+ const { runProfile } = await import("./profile-boot-DB8eVKBx.js");
146
146
  await runProfile({
147
147
  environment: loadLayeredEnv("dsh"),
148
148
  profile: invocation.profile,
@@ -153,12 +153,12 @@ async function runCli() {
153
153
  break;
154
154
  }
155
155
  case "plugin": {
156
- const { runPlugin } = await import("./plugin-Ddi42qoW.js");
156
+ const { runPlugin } = await import("./plugin-Bk_PbPwP.js");
157
157
  process.exit(runPlugin(invocation.profile, invocation.args));
158
158
  break;
159
159
  }
160
160
  case "dump-config": {
161
- const { runDumpConfig } = await import("./dump-config-lFgMwK8i.js");
161
+ const { runDumpConfig } = await import("./dump-config-CpQgpJa2.js");
162
162
  runDumpConfig(invocation.profile, invocation.defaultOnly, invocation.patches, invocation.fromDefaultProfile);
163
163
  break;
164
164
  }
@@ -1,4 +1,4 @@
1
- import { a as prepareProfile, n as PROFILE_ROOT_FILENAME, r as homePatchPath } from "./profile-boot-Dk-7KqJc.js";
1
+ import { a as prepareProfile, n as PROFILE_ROOT_FILENAME, r as homePatchPath } from "./profile-boot-CuwbWsnH.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { loadOptionalPatches, loadOverlayPatches, renderConfigDump } from "@deepseek-ai/dsh-app-boot";
4
4
  import { join, resolve } from "node:path";
@@ -1,4 +1,4 @@
1
- import { t as INSTALL_ANCHOR } from "./profile-boot-Dk-7KqJc.js";
1
+ import { t as INSTALL_ANCHOR } from "./profile-boot-CuwbWsnH.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { DEFAULT_PROFILE_BUNDLES, PROFILE_TEMPLATES, initProfile, readProfileManifest, resolveBundleDir, resolveProfileDir, writeProfileManifest } from "@deepseek-ai/dsh-app-boot";
4
4
  import { join, resolve } from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { fileURLToPath } from "node:url";
3
- import { PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, boot, composeEntries, healProfilesModuleFallback, initProfile, installFailLoud, loadOptionalPatches, loadOverlayPatches, loadProfile, resolveProfileDir, watchUserPatches } from "@deepseek-ai/dsh-app-boot";
3
+ import { PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, boot, composeEntries, createProfileResolutionGeneration, healProfilesModuleFallback, initProfile, installFailLoud, loadOptionalPatches, loadOverlayPatches, loadProfile, resolveProfileDir, watchUserPatches } from "@deepseek-ai/dsh-app-boot";
4
4
  import { dirname, join, resolve } from "node:path";
5
5
  import { resolveDshHome } from "@deepseek-ai/dsh-home-paths";
6
6
  import { installProxyFromEnvironment } from "@deepseek-ai/dsh-http-proxy";
@@ -229,12 +229,13 @@ function allPatches(composed) {
229
229
  * @param patchFiles - `--patch` overlay paths, in argv order.
230
230
  * @returns the profile and its patch layers.
231
231
  */
232
- async function composeProfile(name, patchFiles, fromDefaultProfile) {
232
+ async function composeProfile(name, patchFiles, resolutionMode, fromDefaultProfile) {
233
233
  const profile = prepareProfile(name, true, fromDefaultProfile);
234
- await healProfilesModuleFallback({
234
+ const resolutionOptions = {
235
235
  installAnchor: INSTALL_ANCHOR,
236
236
  profile
237
- });
237
+ };
238
+ const resolution = resolutionMode === "runtime" ? await createProfileResolutionGeneration(resolutionOptions) : await healProfilesModuleFallback(resolutionOptions);
238
239
  const homePatches = loadOptionalPatches(NAME, homePatchPath()) ?? [];
239
240
  const overlays = patchFiles.flatMap((file) => loadOverlayPatches(NAME, resolve(file)));
240
241
  const bundlePatches = profile.layers.flatMap((layer) => layer.patches);
@@ -250,6 +251,7 @@ async function composeProfile(name, patchFiles, fromDefaultProfile) {
250
251
  if (telemetryPatch !== void 0) composedOverlays.push(telemetryPatch);
251
252
  return {
252
253
  profile,
254
+ resolution,
253
255
  bundlePatches,
254
256
  homePatches,
255
257
  overlays: composedOverlays
@@ -280,7 +282,8 @@ async function runProfile(options) {
280
282
  const disposeProxy = await installProxyFromEnvironment(options.environment, (message) => {
281
283
  process.stderr.write(`${NAME}: ${message}\n`);
282
284
  });
283
- const composed = await composeProfile(options.profile, options.patchFiles, options.fromDefaultProfile);
285
+ const resolutionMode = process.pkg !== void 0 ? "runtime" : options.resolutionMode ?? "link";
286
+ const composed = await composeProfile(options.profile, options.patchFiles, resolutionMode, options.fromDefaultProfile);
284
287
  const app = {};
285
288
  const appReady = createAppReady();
286
289
  const shutdown = createProcessShutdown(async () => {
@@ -308,9 +311,13 @@ async function runProfile(options) {
308
311
  ...loadOptionalPatches(NAME, homePatchPath()) ?? [],
309
312
  ...composed.overlays
310
313
  ]);
311
- const ctx = await boot(NAME, rootConfig, structuredClone(allPatches(composed)), (hostCtx) => {
314
+ const ctx = await boot(NAME, rootConfig, structuredClone(allPatches(composed)), async (hostCtx) => {
312
315
  app.current = hostCtx;
313
316
  hostCtx.provide(DSH_LAUNCH_ENVIRONMENT_KEY, options.environment);
317
+ await hostCtx.plugin(PluginPackages, resolutionMode === "link" ? {} : {
318
+ generation: composed.resolution,
319
+ behavior: resolutionMode === "dual" ? "verify" : "enforce"
320
+ });
314
321
  provideCmdline(hostCtx, {
315
322
  args: options.args,
316
323
  exit: (code) => void shutdown.shutdown(code),
@@ -325,6 +332,7 @@ async function runProfile(options) {
325
332
  name: "@deepseek-ai/cordis-plugin-hmr",
326
333
  config: { root: [] }
327
334
  });
335
+ await ctx.loader.await();
328
336
  }
329
337
  await watchUserPatches(ctx, {
330
338
  binName: NAME,
@@ -0,0 +1,2 @@
1
+ import { s as runProfile } from "./profile-boot-CuwbWsnH.js";
2
+ export { runProfile };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh",
3
3
  "description": "dsh CLI: profile boot, plugin management, and the browser UI alias",
4
- "version": "0.1.5-rc.2",
4
+ "version": "0.1.6-alpha.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -30,76 +30,77 @@
30
30
  "dependencies": {
31
31
  "commander": "^15.0.0",
32
32
  "js-yaml": "^4.2.0",
33
- "node-addon-require-builtin": "^0.1.4",
33
+ "node-addon-require-builtin": "^0.1.6",
34
34
  "@deepseek-ai/cordis": "^4.0.2",
35
35
  "@deepseek-ai/cordis-plugin-hmr": "^1.0.17",
36
36
  "@deepseek-ai/cordis-plugin-include": "^1.0.7",
37
- "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
38
37
  "@deepseek-ai/cordis-plugin-timer": "^1.1.4",
39
- "@deepseek-ai/dsh-acp-app": "^0.1.5-rc.2",
40
- "@deepseek-ai/dsh-agent-instructions": "^0.1.5-rc.2",
41
- "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.5-rc.2",
42
- "@deepseek-ai/dsh-app-boot": "^0.1.5-rc.2",
43
- "@deepseek-ai/dsh-base": "^0.1.5-rc.2",
44
- "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.5-rc.2",
45
- "@deepseek-ai/dsh-client-ui-cordis": "^0.1.5-rc.2",
46
- "@deepseek-ai/dsh-command-compact": "^0.1.5-rc.2",
47
- "@deepseek-ai/dsh-command-goal": "^0.1.5-rc.2",
48
- "@deepseek-ai/dsh-compaction-basic": "^0.1.5-rc.2",
49
- "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.5-rc.2",
50
- "@deepseek-ai/dsh-fs-local": "^0.1.5-rc.2",
51
- "@deepseek-ai/dsh-cmdline": "^0.1.5-rc.2",
52
- "@deepseek-ai/dsh-goal-round-driver": "^0.1.5-rc.2",
53
- "@deepseek-ai/dsh-headless": "^0.1.5-rc.2",
54
- "@deepseek-ai/dsh-home-paths": "^0.1.5-rc.2",
55
- "@deepseek-ai/dsh-hooks-claude-code": "^0.1.5-rc.2",
56
- "@deepseek-ai/dsh-hooks-codex": "^0.1.5-rc.2",
57
- "@deepseek-ai/dsh-launch-environment": "^0.1.5-rc.2",
58
- "@deepseek-ai/dsh-mcp-client": "^0.1.5-rc.2",
59
- "@deepseek-ai/dsh-jobs-local": "^0.1.5-rc.2",
60
- "@deepseek-ai/dsh-plan-mode": "^0.1.5-rc.2",
61
- "@deepseek-ai/dsh-pwsh-local": "^0.1.5-rc.2",
62
- "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.5-rc.2",
63
- "@deepseek-ai/dsh-schedule": "^0.1.5-rc.2",
64
- "@deepseek-ai/dsh-persona": "^0.1.5-rc.2",
65
- "@deepseek-ai/dsh-goal": "^0.1.5-rc.2",
66
- "@deepseek-ai/dsh-session-reference": "^0.1.5-rc.2",
67
- "@deepseek-ai/dsh-skill": "^0.1.5-rc.2",
68
- "@deepseek-ai/dsh-skill-filesystem": "^0.1.5-rc.2",
69
- "@deepseek-ai/dsh-sdk-minimal": "^0.1.5-rc.2",
70
- "@deepseek-ai/dsh-terminal": "^0.1.5-rc.2",
71
- "@deepseek-ai/dsh-terminal-bash": "^0.1.5-rc.2",
72
- "@deepseek-ai/dsh-time-context": "^0.1.5-rc.2",
73
- "@deepseek-ai/dsh-tmux-context": "^0.1.5-rc.2",
74
- "@deepseek-ai/dsh-token-meter": "^0.1.5-rc.2",
75
- "@deepseek-ai/dsh-tool-bash": "^0.1.5-rc.2",
76
- "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.5-rc.2",
77
- "@deepseek-ai/dsh-tool-cordis": "^0.1.5-rc.2",
78
- "@deepseek-ai/dsh-tool-ask-user": "^0.1.5-rc.2",
79
- "@deepseek-ai/dsh-tool-present": "^0.1.5-rc.2",
80
- "@deepseek-ai/dsh-tool-fs": "^0.1.5-rc.2",
81
- "@deepseek-ai/dsh-tool-fs-search": "^0.1.5-rc.2",
82
- "@deepseek-ai/dsh-tool-goal": "^0.1.5-rc.2",
83
- "@deepseek-ai/dsh-session-projection": "^0.1.5-rc.2",
84
- "@deepseek-ai/dsh-sdk-app": "^0.1.5-rc.2",
85
- "@deepseek-ai/dsh-tool-pwsh": "^0.1.5-rc.2",
86
- "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.5-rc.2",
87
- "@deepseek-ai/dsh-tool-ralph": "^0.1.5-rc.2",
88
- "@deepseek-ai/dsh-tool-jobs": "^0.1.5-rc.2",
89
- "@deepseek-ai/dsh-tool-skill": "^0.1.5-rc.2",
90
- "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.5-rc.2",
91
- "@deepseek-ai/dsh-tool-subagent": "^0.1.5-rc.2",
92
- "@deepseek-ai/dsh-tool-todo": "^0.1.5-rc.2",
93
- "@deepseek-ai/dsh-tool-web": "^0.1.5-rc.2",
94
- "@deepseek-ai/dsh-tool-workflow": "^0.1.5-rc.2",
95
- "@deepseek-ai/dsh-web-app": "^0.1.5-rc.2",
96
- "@deepseek-ai/dsh-cordis-client-runner": "^0.1.5-rc.2",
97
- "@deepseek-ai/dsh-tool-subagent-control": "^0.1.5-rc.2",
98
- "@deepseek-ai/dsh-webhook-github": "^0.1.5-rc.2",
99
- "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.5-rc.2",
100
- "@deepseek-ai/dsh-webhook": "^0.1.5-rc.2",
101
- "@deepseek-ai/dsh-http-proxy": "^0.1.5-rc.2",
102
- "@deepseek-ai/schemastery": "^3.18.2"
38
+ "@deepseek-ai/dsh-acp-app": "^0.1.6-alpha.1",
39
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
40
+ "@deepseek-ai/dsh-agent-instructions": "^0.1.6-alpha.1",
41
+ "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.6-alpha.1",
42
+ "@deepseek-ai/dsh-app-boot": "^0.1.6-alpha.1",
43
+ "@deepseek-ai/dsh-base": "^0.1.6-alpha.1",
44
+ "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.6-alpha.1",
45
+ "@deepseek-ai/dsh-client-ui-cordis": "^0.1.6-alpha.1",
46
+ "@deepseek-ai/dsh-cmdline": "^0.1.6-alpha.1",
47
+ "@deepseek-ai/dsh-command-compact": "^0.1.6-alpha.1",
48
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.6-alpha.1",
49
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.6-alpha.1",
50
+ "@deepseek-ai/dsh-cordis-client-runner": "^0.1.6-alpha.1",
51
+ "@deepseek-ai/dsh-fs-local": "^0.1.6-alpha.1",
52
+ "@deepseek-ai/dsh-goal": "^0.1.6-alpha.1",
53
+ "@deepseek-ai/dsh-goal-round-driver": "^0.1.6-alpha.1",
54
+ "@deepseek-ai/dsh-headless": "^0.1.6-alpha.1",
55
+ "@deepseek-ai/dsh-home-paths": "^0.1.6-alpha.1",
56
+ "@deepseek-ai/dsh-hooks-claude-code": "^0.1.6-alpha.1",
57
+ "@deepseek-ai/dsh-command-goal": "^0.1.6-alpha.1",
58
+ "@deepseek-ai/dsh-hooks-codex": "^0.1.6-alpha.1",
59
+ "@deepseek-ai/dsh-jobs-local": "^0.1.6-alpha.1",
60
+ "@deepseek-ai/dsh-launch-environment": "^0.1.6-alpha.1",
61
+ "@deepseek-ai/dsh-mcp-client": "^0.1.6-alpha.1",
62
+ "@deepseek-ai/dsh-plan-mode": "^0.1.6-alpha.1",
63
+ "@deepseek-ai/dsh-pwsh-local": "^0.1.6-alpha.1",
64
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.6-alpha.1",
65
+ "@deepseek-ai/dsh-schedule": "^0.1.6-alpha.1",
66
+ "@deepseek-ai/dsh-persona": "^0.1.6-alpha.1",
67
+ "@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.1",
68
+ "@deepseek-ai/dsh-session-reference": "^0.1.6-alpha.1",
69
+ "@deepseek-ai/dsh-skill": "^0.1.6-alpha.1",
70
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.6-alpha.1",
71
+ "@deepseek-ai/dsh-terminal": "^0.1.6-alpha.1",
72
+ "@deepseek-ai/dsh-terminal-bash": "^0.1.6-alpha.1",
73
+ "@deepseek-ai/dsh-time-context": "^0.1.6-alpha.1",
74
+ "@deepseek-ai/dsh-sdk-app": "^0.1.6-alpha.1",
75
+ "@deepseek-ai/dsh-token-meter": "^0.1.6-alpha.1",
76
+ "@deepseek-ai/dsh-tool-ask-user": "^0.1.6-alpha.1",
77
+ "@deepseek-ai/dsh-tool-bash": "^0.1.6-alpha.1",
78
+ "@deepseek-ai/dsh-tool-cordis": "^0.1.6-alpha.1",
79
+ "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.6-alpha.1",
80
+ "@deepseek-ai/dsh-tool-fs": "^0.1.6-alpha.1",
81
+ "@deepseek-ai/dsh-tool-present": "^0.1.6-alpha.1",
82
+ "@deepseek-ai/dsh-tmux-context": "^0.1.6-alpha.1",
83
+ "@deepseek-ai/dsh-tool-goal": "^0.1.6-alpha.1",
84
+ "@deepseek-ai/dsh-tool-fs-search": "^0.1.6-alpha.1",
85
+ "@deepseek-ai/dsh-sdk-minimal": "^0.1.6-alpha.1",
86
+ "@deepseek-ai/dsh-tool-pwsh": "^0.1.6-alpha.1",
87
+ "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.6-alpha.1",
88
+ "@deepseek-ai/dsh-tool-ralph": "^0.1.6-alpha.1",
89
+ "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.6-alpha.1",
90
+ "@deepseek-ai/dsh-tool-subagent": "^0.1.6-alpha.1",
91
+ "@deepseek-ai/dsh-tool-todo": "^0.1.6-alpha.1",
92
+ "@deepseek-ai/dsh-tool-skill": "^0.1.6-alpha.1",
93
+ "@deepseek-ai/dsh-tool-subagent-control": "^0.1.6-alpha.1",
94
+ "@deepseek-ai/dsh-tool-web": "^0.1.6-alpha.1",
95
+ "@deepseek-ai/dsh-tool-jobs": "^0.1.6-alpha.1",
96
+ "@deepseek-ai/dsh-web-app": "^0.1.6-alpha.1",
97
+ "@deepseek-ai/dsh-webhook": "^0.1.6-alpha.1",
98
+ "@deepseek-ai/dsh-webhook-github": "^0.1.6-alpha.1",
99
+ "@deepseek-ai/dsh-workflow-ptc": "^0.1.6-alpha.1",
100
+ "@deepseek-ai/schemastery": "^3.18.2",
101
+ "@deepseek-ai/dsh-http-proxy": "^0.1.6-alpha.1",
102
+ "@deepseek-ai/dsh-mcp-resources": "^0.1.6-alpha.1",
103
+ "@deepseek-ai/dsh-tool-workflow": "^0.1.6-alpha.1"
103
104
  },
104
105
  "devDependencies": {
105
106
  "@agentclientprotocol/sdk": "1.4.0",
@@ -107,45 +108,45 @@
107
108
  "@types/ws": "8.18.1",
108
109
  "execa": "^10.0.0",
109
110
  "ws": "8.21.0",
110
- "@deepseek-ai/dsh-acp": "^0.1.5-rc.2",
111
- "@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
112
- "@deepseek-ai/dsh-agent-loop": "^0.1.5-rc.2",
113
- "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.5-rc.2",
114
- "@deepseek-ai/dsh-attachment-local": "^0.1.5-rc.2",
115
- "@deepseek-ai/dsh-bash-local": "^0.1.5-rc.2",
116
- "@deepseek-ai/dsh-credentials-local": "^0.1.5-rc.2",
117
- "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.5-rc.2",
118
- "@deepseek-ai/dsh-experimental-agent-team": "^0.1.5-rc.2",
119
- "@deepseek-ai/dsh-experimental-code-runtime-python": "^0.1.5-rc.2",
120
- "@deepseek-ai/dsh-experimental-tool-agent-team": "^0.1.5-rc.2",
121
- "@deepseek-ai/dsh-fs-observation-policy": "^0.1.5-rc.2",
122
- "@deepseek-ai/dsh-fs-sandbox": "^0.1.5-rc.2",
123
- "@deepseek-ai/dsh-host-frontend-static": "^0.1.5-rc.2",
124
- "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2",
125
- "@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
126
- "@deepseek-ai/dsh-llm-deepseek": "^0.1.5-rc.2",
127
- "@deepseek-ai/dsh-llm-mock-server": "^0.1.5-rc.2",
128
- "@deepseek-ai/dsh-llm-pi-ai": "^0.1.5-rc.2",
129
- "@deepseek-ai/dsh-llm-replay": "^0.1.5-rc.2",
130
- "@deepseek-ai/dsh-loader-smoke": "^0.1.5-rc.2",
131
- "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.5-rc.2",
132
- "@deepseek-ai/dsh-sandbox-local": "^0.1.5-rc.2",
133
- "@deepseek-ai/dsh-sandbox-policy": "^0.1.5-rc.2",
134
- "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
135
- "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.5-rc.2",
136
- "@deepseek-ai/dsh-session-log-deepseek": "^0.1.5-rc.2",
137
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.5-rc.2",
138
- "@deepseek-ai/dsh-session-query": "^0.1.5-rc.2",
139
- "@deepseek-ai/dsh-shell-env": "^0.1.5-rc.2",
140
- "@deepseek-ai/dsh-settings": "^0.1.5-rc.2",
141
- "@deepseek-ai/dsh-settings-file": "^0.1.5-rc.2",
142
- "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2",
143
- "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.5-rc.2",
144
- "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.5-rc.2",
145
- "@deepseek-ai/dsh-subprocess-local": "^0.1.5-rc.2",
146
- "@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
147
- "@deepseek-ai/dsh-experimental-agent-team-profile": "^0.1.5-rc.2",
148
- "@deepseek-ai/dsh-user-approval": "^0.1.5-rc.2",
149
- "@deepseek-ai/dsh-tools": "^0.1.5-rc.2"
111
+ "@deepseek-ai/dsh-acp": "^0.1.6-alpha.1",
112
+ "@deepseek-ai/dsh-agent": "^0.1.6-alpha.1",
113
+ "@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.1",
114
+ "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.6-alpha.1",
115
+ "@deepseek-ai/dsh-bash-local": "^0.1.6-alpha.1",
116
+ "@deepseek-ai/dsh-credentials-local": "^0.1.6-alpha.1",
117
+ "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.6-alpha.1",
118
+ "@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.1",
119
+ "@deepseek-ai/dsh-experimental-agent-team-profile": "^0.1.6-alpha.1",
120
+ "@deepseek-ai/dsh-experimental-ptc-runtime-python": "^0.1.6-alpha.1",
121
+ "@deepseek-ai/dsh-experimental-tool-agent-team": "^0.1.6-alpha.1",
122
+ "@deepseek-ai/dsh-fs-observation-policy": "^0.1.6-alpha.1",
123
+ "@deepseek-ai/dsh-fs-sandbox": "^0.1.6-alpha.1",
124
+ "@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.1",
125
+ "@deepseek-ai/dsh-llm": "^0.1.6-alpha.1",
126
+ "@deepseek-ai/dsh-host-frontend-static": "^0.1.6-alpha.1",
127
+ "@deepseek-ai/dsh-llm-deepseek": "^0.1.6-alpha.1",
128
+ "@deepseek-ai/dsh-attachment-local": "^0.1.6-alpha.1",
129
+ "@deepseek-ai/dsh-llm-pi-ai": "^0.1.6-alpha.1",
130
+ "@deepseek-ai/dsh-llm-replay": "^0.1.6-alpha.1",
131
+ "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.6-alpha.1",
132
+ "@deepseek-ai/dsh-sandbox-local": "^0.1.6-alpha.1",
133
+ "@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.1",
134
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
135
+ "@deepseek-ai/dsh-loader-smoke": "^0.1.6-alpha.1",
136
+ "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.6-alpha.1",
137
+ "@deepseek-ai/dsh-session-log-deepseek": "^0.1.6-alpha.1",
138
+ "@deepseek-ai/dsh-session-query": "^0.1.6-alpha.1",
139
+ "@deepseek-ai/dsh-shell-env": "^0.1.6-alpha.1",
140
+ "@deepseek-ai/dsh-settings": "^0.1.6-alpha.1",
141
+ "@deepseek-ai/dsh-settings-file": "^0.1.6-alpha.1",
142
+ "@deepseek-ai/dsh-subagent": "^0.1.6-alpha.1",
143
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.6-alpha.1",
144
+ "@deepseek-ai/dsh-llm-mock-server": "^0.1.6-alpha.1",
145
+ "@deepseek-ai/dsh-tools": "^0.1.6-alpha.1",
146
+ "@deepseek-ai/dsh-subprocess-local": "^0.1.6-alpha.1",
147
+ "@deepseek-ai/dsh-user-approval": "^0.1.6-alpha.1",
148
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.1",
149
+ "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.1",
150
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.6-alpha.1"
150
151
  }
151
152
  }
@@ -1,2 +0,0 @@
1
- import { s as runProfile } from "./profile-boot-Dk-7KqJc.js";
2
- export { runProfile };