@chatcode/chatcode-cli-test 3.0.1 → 3.0.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.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
- `chatcode-cli` is the formal launcher and `cco` is its short form; both commands share one parser and start the TUI/CLI profile when invoked without arguments. The hidden `dsh` bin remains a compatibility alias. 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 the same launcher; 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.
5
+ `chatcode-cli` is the formal launcher and `cco` is its short form; both commands share one parser and start the TUI/CLI profile when invoked without arguments. 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 the same launcher; 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
 
package/README.zh.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
- `chatcode-cli` 是正式启动命令,`cco` 是其简写;两者共用同一解析器,且无参数时都启动 TUI/CLI profile。隐藏的 `dsh` bin 仅作为兼容别名保留。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) 只加载选中的运行器。无效命令、来自其他模式的选项,以及致命的配置或启动错误都会以非零状态退出。
5
+ `chatcode-cli` 是正式启动命令,`cco` 是其简写;两者共用同一解析器,且无参数时都启动 TUI/CLI profileprofile 由多个插件组合包 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
 
package/lib/bin.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
+ import { i as synchronizeLegacyHomeEnvironment, r as resolveChatCodeCliHome } from "./chatcode-home-B93iESZd.js";
2
3
  import { readFileSync } from "node:fs";
3
4
  import { fileURLToPath } from "node:url";
4
5
  import { StartupError, loadLayeredEnv } from "@deepseek-ai/dsh-app-boot";
5
- import { resolveChatCodeCliHome } from "@deepseek-ai/dsh-home-paths";
6
6
  import { Command, CommanderError, InvalidArgumentError } from "commander";
7
+ import { join } from "node:path";
7
8
  import { randomUUID } from "node:crypto";
8
9
  import { mkdir, writeFile } from "node:fs/promises";
9
- import { join } from "node:path";
10
10
  import { inspect } from "node:util";
11
11
  //#region lib/types/args.js
12
12
  /**
@@ -217,7 +217,7 @@ async function reportStartupFailure(error, context, write = writeStderr) {
217
217
  //#endregion
218
218
  //#region lib/types/bin.js
219
219
  /**
220
- * Command-line entry for ChatCode CLI and its compatibility aliases.
220
+ * Command-line entry for ChatCode CLI.
221
221
  * @module @chatcode/chatcode-cli/bin
222
222
  */
223
223
  /* v8 ignore file -- built-bin acceptance exercises this self-executing dispatch. */
@@ -243,9 +243,10 @@ async function runCli() {
243
243
  case "profile": {
244
244
  const legacyHome = process.env.DSH_HOME?.trim();
245
245
  if (process.env.CHATCODE_CLI_HOME?.trim() || legacyHome === void 0 || legacyHome === "") {
246
- const { detectPendingHomeMigrations, resolveHomeMigrationRoots } = await import("./home-migration-BejD6LQn.js");
246
+ const { detectPendingHomeMigrations, resolveHomeMigrationRoots } = await import("./home-migration-DLaSvmfn.js");
247
247
  if ((await detectPendingHomeMigrations(resolveHomeMigrationRoots())).length > 0) process.stderr.write("ChatCode CLI detected legacy user data. Preview the non-destructive migration with \"chatcode-cli migrate --dry-run\"; nothing is migrated automatically.\n");
248
248
  }
249
+ synchronizeLegacyHomeEnvironment();
249
250
  const { runProfile } = await import("./profile-boot.js");
250
251
  try {
251
252
  await runProfile({
@@ -267,7 +268,7 @@ async function runCli() {
267
268
  break;
268
269
  }
269
270
  case "migrate": {
270
- const { applyHomeMigration, formatHomeMigrationPlan, planHomeMigration, resolveHomeMigrationRoots } = await import("./home-migration-BejD6LQn.js");
271
+ const { applyHomeMigration, formatHomeMigrationPlan, planHomeMigration, resolveHomeMigrationRoots } = await import("./home-migration-DLaSvmfn.js");
271
272
  const roots = resolveHomeMigrationRoots();
272
273
  const migrations = [[roots.source, roots.destination], [roots.tuiSource, roots.tuiDestination]];
273
274
  if (!invocation.apply) {
@@ -285,12 +286,12 @@ async function runCli() {
285
286
  break;
286
287
  }
287
288
  case "plugin": {
288
- const { runPlugin } = await import("./plugin-DrWxOiv2.js");
289
+ const { runPlugin } = await import("./plugin-CMMvQgyR.js");
289
290
  process.exit(await runPlugin(invocation.profile, invocation.args));
290
291
  break;
291
292
  }
292
293
  case "dump-config": {
293
- const { runDumpConfig } = await import("./dump-config-Bn-CzGIR.js");
294
+ const { runDumpConfig } = await import("./dump-config-WbxM4B3p.js");
294
295
  runDumpConfig(invocation.profile, invocation.defaultOnly, invocation.patches, invocation.fromDefaultProfile);
295
296
  break;
296
297
  }
@@ -0,0 +1,48 @@
1
+ import { homedir } from "node:os";
2
+ import { join, resolve } from "node:path";
3
+ //#region lib/types/chatcode-home.js
4
+ /**
5
+ * ChatCode CLI home resolution owned by the public launcher package.
6
+ * @module @chatcode/chatcode-cli/chatcode-home
7
+ */
8
+ /** Canonical ChatCode CLI home environment variable. */
9
+ const CHATCODE_CLI_HOME_ENV = "CHATCODE_CLI_HOME";
10
+ /** Legacy Harness home variable accepted as a compatibility input. */
11
+ const LEGACY_DSH_HOME_ENV = "DSH_HOME";
12
+ /** Resolve the default writable ChatCode CLI home. */
13
+ function defaultChatCodeCliHome() {
14
+ return join(homedir(), ".chatcode-cli");
15
+ }
16
+ /** Expand the supported current-user tilde forms in a configured path.
17
+ * @param path - path that may begin with `~`, `~/`, or `~\`.
18
+ * @returns the path with its current-user tilde expanded.
19
+ */
20
+ function expandHomePath(path) {
21
+ if (path === "~") return homedir();
22
+ if (path.startsWith("~/") || path.startsWith("~\\")) return join(homedir(), path.slice(2));
23
+ return path;
24
+ }
25
+ /** Resolve the writable ChatCode CLI home with canonical-before-legacy precedence.
26
+ * @param configured - explicit home override with highest precedence.
27
+ * @param env - environment used for canonical and legacy inputs.
28
+ * @returns the normalized absolute home path.
29
+ */
30
+ function resolveChatCodeCliHome(configured, env = process.env) {
31
+ const canonical = env[CHATCODE_CLI_HOME_ENV]?.trim();
32
+ const legacy = env[LEGACY_DSH_HOME_ENV]?.trim();
33
+ return resolve(expandHomePath(configured ?? (canonical === void 0 || canonical === "" ? legacy === void 0 || legacy === "" ? defaultChatCodeCliHome() : legacy : canonical)));
34
+ }
35
+ /**
36
+ * Point legacy ABI packages at the launcher-selected ChatCode CLI home.
37
+ * Published Harness packages still read `DSH_HOME`; this internal bridge keeps
38
+ * their storage under the canonical home without requiring republished ABI packages.
39
+ * @param env - mutable process environment supplied to legacy packages.
40
+ * @returns the resolved canonical home written to the legacy variable.
41
+ */
42
+ function synchronizeLegacyHomeEnvironment(env = process.env) {
43
+ const home = resolveChatCodeCliHome(void 0, env);
44
+ env[LEGACY_DSH_HOME_ENV] = home;
45
+ return home;
46
+ }
47
+ //#endregion
48
+ export { synchronizeLegacyHomeEnvironment as i, expandHomePath as n, resolveChatCodeCliHome as r, defaultChatCodeCliHome as t };
@@ -1,4 +1,4 @@
1
- import { a as prepareProfile, n as PROFILE_ROOT_FILENAME, r as homePatchPath } from "./profile-boot-DNB5by4u.js";
1
+ import { i as homePatchPath, o as prepareProfile, r as PROFILE_ROOT_FILENAME } from "./profile-boot-CCxnpvy7.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,9 +1,9 @@
1
+ import { n as expandHomePath, t as defaultChatCodeCliHome } from "./chatcode-home-B93iESZd.js";
1
2
  import { constants } from "node:fs";
2
- import { defaultChatCodeCliHome, expandHomePath } from "@deepseek-ai/dsh-home-paths";
3
+ import { homedir } from "node:os";
4
+ import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
3
5
  import { createHash, randomUUID } from "node:crypto";
4
6
  import { chmod, copyFile, link, lstat, mkdir, readFile, readdir, rm, stat, writeFile } from "node:fs/promises";
5
- import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
6
- import { homedir } from "node:os";
7
7
  const LEGACY_HOME_DIRECTORY = ".dsh";
8
8
  const LEGACY_TUI_HOME_DIRECTORY = ".dsh-tui";
9
9
  const MIGRATION_RECORD_DIRECTORY = "migration/chatcode-cli-home-v1";
@@ -1,4 +1,4 @@
1
- import { t as INSTALL_ANCHOR } from "./profile-boot-DNB5by4u.js";
1
+ import { n as INSTALL_ANCHOR } from "./profile-boot-CCxnpvy7.js";
2
2
  import { resolveProfileDir } from "@deepseek-ai/dsh-app-boot";
3
3
  import { join } from "node:path";
4
4
  import { runPluginCommand } from "@deepseek-ai/dsh-plugin-manager/operations";
@@ -1,7 +1,7 @@
1
+ import { i as synchronizeLegacyHomeEnvironment, r as resolveChatCodeCliHome } from "./chatcode-home-B93iESZd.js";
1
2
  import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
2
3
  import { fileURLToPath } from "node:url";
3
- import { PROFILE_PATCH_FILENAME, PROFILE_TEMPLATES, PluginPackages, boot, createProfileResolutionGeneration, healIsolatedProfileModuleFallback, healProfilesModuleFallback, initProfile, installFailLoud, loadOverlayPatches, loadProfile, readProfilePatches, resolveProfileDir } from "@deepseek-ai/dsh-app-boot";
4
- import { resolveChatCodeCliHome } from "@deepseek-ai/dsh-home-paths";
4
+ import { PROFILE_PATCH_FILENAME, PluginPackages, boot, createProfileResolutionGeneration, healIsolatedProfileModuleFallback, healProfilesModuleFallback, initProfile, installFailLoud, loadOverlayPatches, loadProfile, readProfilePatches, resolveProfileDir } from "@deepseek-ai/dsh-app-boot";
5
5
  import { dirname, join, resolve } from "node:path";
6
6
  import { installProxyFromEnvironment } from "@deepseek-ai/dsh-http-proxy";
7
7
  import { DSH_LAUNCH_ENVIRONMENT_KEY } from "@deepseek-ai/dsh-launch-environment";
@@ -83,6 +83,24 @@ function createProcessShutdown(dispose, forceExit = (code) => {
83
83
  * @module @chatcode/chatcode-cli/profile-boot
84
84
  */
85
85
  const NAME = "ChatCode CLI";
86
+ /** Profile templates shipped by ChatCode CLI, independent of the installed Harness ABI version. */
87
+ const CHATCODE_PROFILE_TEMPLATES = {
88
+ acp: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-acp-app"] },
89
+ web: { bundles: [
90
+ "@deepseek-ai/dsh-base",
91
+ "@deepseek-ai/dsh-web-app",
92
+ "dshmarket"
93
+ ] },
94
+ cli: { bundles: [
95
+ "@deepseek-ai/dsh-base",
96
+ "@deepseek-harness-tui/dsh-tui",
97
+ "dsh-llm-chatcode-config",
98
+ "dshmarket"
99
+ ] },
100
+ headless: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-headless"] },
101
+ sdk: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-sdk-app"] },
102
+ "sdk-minimal": { bundles: ["@deepseek-ai/dsh-sdk-minimal"] }
103
+ };
86
104
  /** Launcher-owned readiness signal committed only after boot and host setup succeed. */
87
105
  function createAppReady() {
88
106
  let ready = false;
@@ -138,12 +156,12 @@ const PROFILE_ROOT_FILENAME = "cordis.yml";
138
156
  */
139
157
  function initializeProfileFromDefault(name, fromDefaultProfile, home = resolveChatCodeCliHome()) {
140
158
  const dir = resolveProfileDir(name, home);
141
- const template = Object.hasOwn(PROFILE_TEMPLATES, fromDefaultProfile) ? PROFILE_TEMPLATES[fromDefaultProfile] : void 0;
159
+ const template = Object.hasOwn(CHATCODE_PROFILE_TEMPLATES, fromDefaultProfile) ? CHATCODE_PROFILE_TEMPLATES[fromDefaultProfile] : void 0;
142
160
  if (template === void 0) {
143
- const expected = Object.keys(PROFILE_TEMPLATES).sort().map((value) => JSON.stringify(value)).join(", ");
161
+ const expected = Object.keys(CHATCODE_PROFILE_TEMPLATES).sort().map((value) => JSON.stringify(value)).join(", ");
144
162
  throw new Error(`${NAME}: unknown default profile ${JSON.stringify(fromDefaultProfile)}; expected one of ${expected}`);
145
163
  }
146
- if (Object.hasOwn(PROFILE_TEMPLATES, name)) throw new Error(`${NAME}: profile ${JSON.stringify(name)} is shipped and cannot be a custom profile target; omit --from-default-profile to use it`);
164
+ if (Object.hasOwn(CHATCODE_PROFILE_TEMPLATES, name)) throw new Error(`${NAME}: profile ${JSON.stringify(name)} is shipped and cannot be a custom profile target; omit --from-default-profile to use it`);
147
165
  mkdirSync(dirname(dir), { recursive: true });
148
166
  try {
149
167
  mkdirSync(dir);
@@ -184,7 +202,11 @@ function initializeProfileFromDefault(name, fromDefaultProfile, home = resolveCh
184
202
  */
185
203
  function prepareProfile(name, userLayer = true, fromDefaultProfile) {
186
204
  if (fromDefaultProfile !== void 0) initializeProfileFromDefault(name, fromDefaultProfile);
187
- const profile = loadProfile(NAME, name, INSTALL_ANCHOR, void 0, {
205
+ const home = resolveChatCodeCliHome();
206
+ const dir = resolveProfileDir(name, home);
207
+ const template = Object.hasOwn(CHATCODE_PROFILE_TEMPLATES, name) ? CHATCODE_PROFILE_TEMPLATES[name] : void 0;
208
+ if (template !== void 0 && !existsSync(join(dir, "package.json"))) initProfile(dir, template.bundles);
209
+ const profile = loadProfile(NAME, name, INSTALL_ANCHOR, home, {
188
210
  pluginCommand: "chatcode-cli",
189
211
  userLayer
190
212
  });
@@ -210,7 +232,8 @@ async function composeProfile(name, patchFiles, resolutionMode, fromDefaultProfi
210
232
  if (resolvedProfile !== void 0) writeFileSync(join(profile.dir, PROFILE_ROOT_FILENAME), PROFILE_ROOT_CONFIG);
211
233
  const resolutionOptions = {
212
234
  installAnchor: resolvedProfile?.installAnchor ?? INSTALL_ANCHOR,
213
- profile
235
+ profile,
236
+ home: resolveChatCodeCliHome()
214
237
  };
215
238
  if (resolvedProfile !== void 0 && resolutionMode !== "runtime") healIsolatedProfileModuleFallback(resolvedProfile);
216
239
  return {
@@ -227,6 +250,7 @@ async function composeProfile(name, patchFiles, resolutionMode, fromDefaultProfi
227
250
  * @throws after disposing startup resources; cleanup failures retain the original error.
228
251
  */
229
252
  async function runProfile(options) {
253
+ synchronizeLegacyHomeEnvironment();
230
254
  const disposeProxy = await installProxyFromEnvironment(options.environment, (message) => {
231
255
  process.stderr.write(`${NAME}: ${message}\n`);
232
256
  });
@@ -304,4 +328,4 @@ async function runProfile(options) {
304
328
  }
305
329
  }
306
330
  //#endregion
307
- export { prepareProfile as a, initializeProfileFromDefault as i, PROFILE_ROOT_FILENAME as n, runProfile as o, homePatchPath as r, INSTALL_ANCHOR as t };
331
+ export { initializeProfileFromDefault as a, homePatchPath as i, INSTALL_ANCHOR as n, prepareProfile as o, PROFILE_ROOT_FILENAME as r, runProfile as s, CHATCODE_PROFILE_TEMPLATES as t };
@@ -1,2 +1,2 @@
1
- import { a as prepareProfile, i as initializeProfileFromDefault, n as PROFILE_ROOT_FILENAME, o as runProfile, r as homePatchPath, t as INSTALL_ANCHOR } from "./profile-boot-DNB5by4u.js";
2
- export { INSTALL_ANCHOR, PROFILE_ROOT_FILENAME, homePatchPath, initializeProfileFromDefault, prepareProfile, runProfile };
1
+ import { a as initializeProfileFromDefault, i as homePatchPath, n as INSTALL_ANCHOR, o as prepareProfile, r as PROFILE_ROOT_FILENAME, s as runProfile, t as CHATCODE_PROFILE_TEMPLATES } from "./profile-boot-CCxnpvy7.js";
2
+ export { CHATCODE_PROFILE_TEMPLATES, INSTALL_ANCHOR, PROFILE_ROOT_FILENAME, homePatchPath, initializeProfileFromDefault, prepareProfile, runProfile };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Command-line entry for ChatCode CLI and its compatibility aliases.
3
+ * Command-line entry for ChatCode CLI.
4
4
  * @module @chatcode/chatcode-cli/bin
5
5
  */
6
6
  /**
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ChatCode CLI home resolution owned by the public launcher package.
3
+ * @module @chatcode/chatcode-cli/chatcode-home
4
+ */
5
+ /** Canonical ChatCode CLI home environment variable. */
6
+ export declare const CHATCODE_CLI_HOME_ENV = "CHATCODE_CLI_HOME";
7
+ /** Legacy Harness home variable accepted as a compatibility input. */
8
+ export declare const LEGACY_DSH_HOME_ENV = "DSH_HOME";
9
+ /** Resolve the default writable ChatCode CLI home. */
10
+ export declare function defaultChatCodeCliHome(): string;
11
+ /** Expand the supported current-user tilde forms in a configured path.
12
+ * @param path - path that may begin with `~`, `~/`, or `~\`.
13
+ * @returns the path with its current-user tilde expanded.
14
+ */
15
+ export declare function expandHomePath(path: string): string;
16
+ /** Resolve the writable ChatCode CLI home with canonical-before-legacy precedence.
17
+ * @param configured - explicit home override with highest precedence.
18
+ * @param env - environment used for canonical and legacy inputs.
19
+ * @returns the normalized absolute home path.
20
+ */
21
+ export declare function resolveChatCodeCliHome(configured?: string, env?: Record<string, string | undefined>): string;
22
+ /**
23
+ * Point legacy ABI packages at the launcher-selected ChatCode CLI home.
24
+ * Published Harness packages still read `DSH_HOME`; this internal bridge keeps
25
+ * their storage under the canonical home without requiring republished ABI packages.
26
+ * @param env - mutable process environment supplied to legacy packages.
27
+ * @returns the resolved canonical home written to the legacy variable.
28
+ */
29
+ export declare function synchronizeLegacyHomeEnvironment(env?: Record<string, string | undefined>): string;
30
+ //# sourceMappingURL=chatcode-home.d.ts.map
@@ -10,9 +10,11 @@
10
10
  * @module @chatcode/chatcode-cli/profile-boot
11
11
  */
12
12
  import { type Context } from '@deepseek-ai/cordis';
13
- import { type ProfileContext, type Profile, type ProfileResolutionMode } from '@deepseek-ai/dsh-app-boot';
13
+ import { type ProfileContext, type Profile, type ProfileTemplate, type ProfileResolutionMode } from '@deepseek-ai/dsh-app-boot';
14
14
  import { type LaunchEnvironmentSnapshot } from '@deepseek-ai/dsh-launch-environment';
15
15
  import { type ProcessShutdown } from './process-shutdown.ts';
16
+ /** Profile templates shipped by ChatCode CLI, independent of the installed Harness ABI version. */
17
+ export declare const CHATCODE_PROFILE_TEMPLATES: Readonly<Record<string, ProfileTemplate>>;
16
18
  /**
17
19
  * The home-level user patch layer (`$CHATCODE_CLI_HOME/cordis.patch.yml`), applied
18
20
  * over every profile's own layer. Resolved per call, not at module load:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chatcode/chatcode-cli-test",
3
3
  "description": "ChatCode CLI: TUI-first coding agent, Web launcher, profiles, and legacy DSH-compatible plugins",
4
- "version": "3.0.1",
4
+ "version": "3.0.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -12,8 +12,7 @@
12
12
  "type": "module",
13
13
  "bin": {
14
14
  "chatcode-cli": "lib/bin.js",
15
- "cco": "lib/bin.js",
16
- "dsh": "lib/bin.js"
15
+ "cco": "lib/bin.js"
17
16
  },
18
17
  "files": [
19
18
  "lib/*.js",
@@ -30,97 +29,277 @@
30
29
  },
31
30
  "license": "MIT",
32
31
  "dependencies": {
33
- "@chatcode/cco-tui": "0.10.0-beta.5",
34
- "@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-beta.5",
35
- "commander": "^15.0.0",
36
- "js-yaml": "^4.2.0",
37
- "node-addon-require-builtin": "^0.1.6",
38
32
  "@chatcode/cco-better-sidebar": "0.18.0-alpha.1",
39
33
  "@chatcode/cco-builtin-browser": "0.1.21",
34
+ "@chatcode/cco-chat-import": "0.12.0",
40
35
  "@chatcode/cco-llm-chatcode-config": "0.1.1",
41
36
  "@chatcode/cco-market": "1.45.1",
37
+ "@chatcode/cco-tui": "0.10.0-beta.6",
38
+ "@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-beta.6",
39
+ "commander": "^15.0.0",
42
40
  "dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-alpha.1",
43
41
  "dsh-builtin-browser": "npm:@chatcode/cco-builtin-browser@0.1.21",
42
+ "dsh-chat-import": "npm:@chatcode/cco-chat-import@0.12.0",
44
43
  "dsh-llm-chatcode-config": "npm:@chatcode/cco-llm-chatcode-config@0.1.1",
45
44
  "dshmarket": "npm:@chatcode/cco-market@1.45.1",
46
- "dsh-chat-import": "npm:@chatcode/cco-chat-import@0.12.0",
47
- "@chatcode/cco-chat-import": "0.12.0",
48
- "@deepseek-ai/dsh-hmr": "^0.1.6-alpha.2",
49
- "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
45
+ "js-yaml": "^4.2.0",
46
+ "node-addon-require-builtin": "^0.1.6",
50
47
  "@deepseek-ai/cordis": "^4.0.2",
48
+ "@deepseek-ai/cordis-plugin-group": "^1.0.2",
51
49
  "@deepseek-ai/cordis-plugin-timer": "^1.1.4",
50
+ "@deepseek-ai/dsh-acp": "^0.1.6-alpha.2",
52
51
  "@deepseek-ai/cordis-plugin-include": "^1.0.7",
53
- "@deepseek-ai/dsh-agent-instructions": "^0.1.6-alpha.2",
52
+ "@deepseek-ai/dsh-agent": "^0.1.6-alpha.2",
53
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
54
54
  "@deepseek-ai/dsh-acp-app": "^0.1.6-alpha.2",
55
+ "@deepseek-ai/dsh-agent-default-model": "^0.1.6-alpha.2",
56
+ "@deepseek-ai/dsh-agent-presets": "^0.1.6-alpha.2",
57
+ "@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.2",
58
+ "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.6-alpha.2",
59
+ "@deepseek-ai/dsh-agent-instructions": "^0.1.6-alpha.2",
60
+ "@deepseek-ai/dsh-anonymous-user-id": "^0.1.6-alpha.2",
61
+ "@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.2",
62
+ "@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.2",
63
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.6-alpha.2",
64
+ "@deepseek-ai/dsh-api-settings-controller": "^0.1.6-alpha.2",
65
+ "@deepseek-ai/dsh-api-terminal-controller": "^0.1.6-alpha.2",
66
+ "@deepseek-ai/dsh-api-workspace-controller": "^0.1.6-alpha.2",
67
+ "@deepseek-ai/dsh-api-workspace-files": "^0.1.6-alpha.2",
55
68
  "@deepseek-ai/dsh-app-boot": "^0.1.6-alpha.2",
69
+ "@deepseek-ai/dsh-atomic-write": "^0.1.6-alpha.2",
70
+ "@deepseek-ai/dsh-attachment": "^0.1.6-alpha.2",
71
+ "@deepseek-ai/dsh-attachment-local": "^0.1.6-alpha.2",
72
+ "@deepseek-ai/dsh-base": "^0.1.6-alpha.2",
73
+ "@deepseek-ai/dsh-authorization": "^0.1.6-alpha.2",
74
+ "@deepseek-ai/dsh-bash-local": "^0.1.6-alpha.2",
75
+ "@deepseek-ai/dsh-bash-sandbox": "^0.1.6-alpha.2",
76
+ "@deepseek-ai/dsh-brand": "^0.1.6-alpha.2",
77
+ "@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.2",
78
+ "@deepseek-ai/dsh-chunked-list": "^0.1.6-alpha.2",
79
+ "@deepseek-ai/dsh-client-file-upload": "^0.1.6-alpha.2",
80
+ "@deepseek-ai/dsh-client-hmr": "^0.1.6-alpha.2",
81
+ "@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.2",
82
+ "@deepseek-ai/dsh-client-modules": "^0.1.6-alpha.2",
56
83
  "@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.6-alpha.2",
57
- "@deepseek-ai/dsh-cmdline": "^0.1.6-alpha.2",
58
- "@deepseek-ai/cordis-plugin-group": "^1.0.2",
59
- "@deepseek-ai/dsh-agent-tool-presentation": "^0.1.6-alpha.2",
84
+ "@deepseek-ai/dsh-client-resources": "^0.1.6-alpha.2",
85
+ "@deepseek-ai/dsh-client-ui-attachment": "^0.1.6-alpha.2",
86
+ "@deepseek-ai/dsh-client-ui-approval": "^0.1.6-alpha.2",
87
+ "@deepseek-ai/dsh-client-ui-brand-official": "^0.1.6-alpha.2",
88
+ "@deepseek-ai/dsh-client-ui-chat": "^0.1.6-alpha.2",
89
+ "@deepseek-ai/dsh-client-ui-commands": "^0.1.6-alpha.2",
60
90
  "@deepseek-ai/dsh-client-ui-cordis": "^0.1.6-alpha.2",
61
- "@deepseek-ai/dsh-base": "^0.1.6-alpha.2",
62
- "@deepseek-ai/dsh-compaction-basic": "^0.1.6-alpha.2",
63
- "@deepseek-ai/dsh-command-goal": "^0.1.6-alpha.2",
91
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.6-alpha.2",
92
+ "@deepseek-ai/dsh-client-ui-deliverables": "^0.1.6-alpha.2",
93
+ "@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.6-alpha.2",
94
+ "@deepseek-ai/dsh-client-ui-goal": "^0.1.6-alpha.2",
95
+ "@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.6-alpha.2",
96
+ "@deepseek-ai/dsh-client-ui-layout": "^0.1.6-alpha.2",
97
+ "@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.6-alpha.2",
98
+ "@deepseek-ai/dsh-client-ui-jobs": "^0.1.6-alpha.2",
99
+ "@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.6-alpha.2",
100
+ "@deepseek-ai/dsh-client-ui-model-selection": "^0.1.6-alpha.2",
101
+ "@deepseek-ai/dsh-client-ui-plugin-manager": "^0.1.6-alpha.2",
102
+ "@deepseek-ai/dsh-client-ui-plan": "^0.1.6-alpha.2",
103
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.2",
104
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.2",
105
+ "@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.6-alpha.2",
106
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.6-alpha.2",
107
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.6-alpha.2",
108
+ "@deepseek-ai/dsh-client-ui-open-in-app": "^0.1.6-alpha.2",
109
+ "@deepseek-ai/dsh-client-ui-schedule": "^0.1.6-alpha.2",
110
+ "@deepseek-ai/dsh-client-ui-reference": "^0.1.6-alpha.2",
111
+ "@deepseek-ai/dsh-client-ui-settings-general": "^0.1.6-alpha.2",
112
+ "@deepseek-ai/dsh-client-ui-settings-models": "^0.1.6-alpha.2",
113
+ "@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.6-alpha.2",
114
+ "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.6-alpha.2",
115
+ "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "^0.1.6-alpha.2",
116
+ "@deepseek-ai/dsh-client-ui-sidebar-files": "^0.1.6-alpha.2",
117
+ "@deepseek-ai/dsh-client-ui-sidebar-browser": "^0.1.6-alpha.2",
118
+ "@deepseek-ai/dsh-client-ui-sidebar-terminal": "^0.1.6-alpha.2",
119
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.6-alpha.2",
120
+ "@deepseek-ai/dsh-client-ui-skill": "^0.1.6-alpha.2",
121
+ "@deepseek-ai/dsh-client-ui-subagent": "^0.1.6-alpha.2",
122
+ "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.6-alpha.2",
123
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.6-alpha.2",
124
+ "@deepseek-ai/dsh-client-ui-settings-unarchive-sessions": "^0.1.6-alpha.2",
125
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
126
+ "@deepseek-ai/dsh-client-ui-tool": "^0.1.6-alpha.2",
127
+ "@deepseek-ai/dsh-client-ui-user-questions": "^0.1.6-alpha.2",
128
+ "@deepseek-ai/dsh-cmdline": "^0.1.6-alpha.2",
129
+ "@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.6-alpha.2",
130
+ "@deepseek-ai/dsh-client-ui-workspace": "^0.1.6-alpha.2",
131
+ "@deepseek-ai/dsh-client-ui-trajectory": "^0.1.6-alpha.2",
64
132
  "@deepseek-ai/dsh-command-compact": "^0.1.6-alpha.2",
65
- "@deepseek-ai/dsh-cordis-client-runner": "^0.1.6-alpha.2",
133
+ "@deepseek-ai/dsh-command-feedback": "^0.1.6-alpha.2",
134
+ "@deepseek-ai/dsh-command-goal": "^0.1.6-alpha.2",
135
+ "@deepseek-ai/dsh-compaction": "^0.1.6-alpha.2",
136
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.6-alpha.2",
66
137
  "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.6-alpha.2",
138
+ "@deepseek-ai/dsh-commands": "^0.1.6-alpha.2",
139
+ "@deepseek-ai/dsh-cordis-client-runner": "^0.1.6-alpha.2",
140
+ "@deepseek-ai/dsh-cordis-host-runner": "^0.1.6-alpha.2",
141
+ "@deepseek-ai/dsh-compaction-image-offload": "^0.1.6-alpha.2",
142
+ "@deepseek-ai/dsh-credentials-local": "^0.1.6-alpha.2",
143
+ "@deepseek-ai/dsh-credentials": "^0.1.6-alpha.2",
144
+ "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.6-alpha.2",
145
+ "@deepseek-ai/dsh-experimental-agent-team-profile": "^0.1.6-alpha.2",
146
+ "@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.2",
147
+ "@deepseek-ai/dsh-experimental-agent-team-web-profile": "^0.1.6-alpha.2",
148
+ "@deepseek-ai/dsh-deque": "^0.1.6-alpha.2",
149
+ "@deepseek-ai/dsh-experimental-ptc-runtime-python": "^0.1.6-alpha.2",
150
+ "@deepseek-ai/dsh-experimental-client-ui-agent-team": "^0.1.6-alpha.2",
151
+ "@deepseek-ai/dsh-file-reference-local": "^0.1.6-alpha.2",
152
+ "@deepseek-ai/dsh-experimental-tool-agent-team": "^0.1.6-alpha.2",
153
+ "@deepseek-ai/dsh-fs-observation-policy": "^0.1.6-alpha.2",
154
+ "@deepseek-ai/dsh-fs": "^0.1.6-alpha.2",
67
155
  "@deepseek-ai/dsh-goal": "^0.1.6-alpha.2",
68
- "@deepseek-ai/dsh-headless": "^0.1.6-alpha.2",
69
156
  "@deepseek-ai/dsh-fs-local": "^0.1.6-alpha.2",
70
- "@deepseek-ai/dsh-experimental-agent-team-web-profile": "^0.1.6-alpha.2",
157
+ "@deepseek-ai/dsh-fs-sandbox": "^0.1.6-alpha.2",
158
+ "@deepseek-ai/dsh-goal-round-driver": "^0.1.6-alpha.2",
159
+ "@deepseek-ai/dsh-headless": "^0.1.6-alpha.2",
160
+ "@deepseek-ai/dsh-hmr": "^0.1.6-alpha.2",
161
+ "@deepseek-ai/dsh-file-reference": "^0.1.6-alpha.2",
162
+ "@deepseek-ai/dsh-hooks-claude-code": "^0.1.6-alpha.2",
163
+ "@deepseek-ai/dsh-host-directory-picker": "^0.1.6-alpha.2",
164
+ "@deepseek-ai/dsh-hooks-codex": "^0.1.6-alpha.2",
165
+ "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.6-alpha.2",
166
+ "@deepseek-ai/dsh-host-directory-picker-auto": "^0.1.6-alpha.2",
167
+ "@deepseek-ai/dsh-host-directory-picker-native": "^0.1.6-alpha.2",
168
+ "@deepseek-ai/dsh-hook-protocol": "^0.1.6-alpha.2",
169
+ "@deepseek-ai/dsh-host-open-in-app": "^0.1.6-alpha.2",
170
+ "@deepseek-ai/dsh-host-frontend-static": "^0.1.6-alpha.2",
171
+ "@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.2",
172
+ "@deepseek-ai/dsh-invariants": "^0.1.6-alpha.2",
173
+ "@deepseek-ai/dsh-http-proxy": "^0.1.6-alpha.2",
174
+ "@deepseek-ai/dsh-host-plugin-inventory": "^0.1.6-alpha.2",
175
+ "@deepseek-ai/dsh-jobs": "^0.1.6-alpha.2",
71
176
  "@deepseek-ai/dsh-jobs-local": "^0.1.6-alpha.2",
177
+ "@deepseek-ai/dsh-launch-environment": "^0.1.6-alpha.2",
178
+ "@deepseek-ai/dsh-lazy-require": "^0.1.6-alpha.2",
72
179
  "@deepseek-ai/dsh-home-paths": "^0.1.6-alpha.2",
73
- "@deepseek-ai/dsh-hooks-codex": "^0.1.6-alpha.2",
180
+ "@deepseek-ai/dsh-llm": "^0.1.6-alpha.2",
181
+ "@deepseek-ai/dsh-llm-deepseek": "^0.1.6-alpha.2",
182
+ "@deepseek-ai/dsh-llm-retry": "^0.1.6-alpha.2",
74
183
  "@deepseek-ai/dsh-mcp-client": "^0.1.6-alpha.2",
75
- "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.6-alpha.2",
76
- "@deepseek-ai/dsh-goal-round-driver": "^0.1.6-alpha.2",
77
- "@deepseek-ai/dsh-launch-environment": "^0.1.6-alpha.2",
78
- "@deepseek-ai/dsh-hooks-claude-code": "^0.1.6-alpha.2",
79
- "@deepseek-ai/dsh-pwsh-local": "^0.1.6-alpha.2",
184
+ "@deepseek-ai/dsh-message-feedback": "^0.1.6-alpha.2",
185
+ "@deepseek-ai/dsh-mcp-resources": "^0.1.6-alpha.2",
186
+ "@deepseek-ai/dsh-llm-pi-ai": "^0.1.6-alpha.2",
187
+ "@deepseek-ai/dsh-office-to-pdf": "^0.1.6-alpha.2",
188
+ "@deepseek-ai/dsh-permission-presets": "^0.1.6-alpha.2",
189
+ "@deepseek-ai/dsh-package-manifest": "^0.1.6-alpha.2",
190
+ "@deepseek-ai/dsh-plan-mode": "^0.1.6-alpha.2",
191
+ "@deepseek-ai/dsh-plugin-manager": "^0.1.6-alpha.2",
192
+ "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.6-alpha.2",
193
+ "@deepseek-ai/dsh-native-command": "^0.1.6-alpha.2",
194
+ "@deepseek-ai/dsh-ptc-runtime": "^0.1.6-alpha.2",
195
+ "@deepseek-ai/dsh-ptc-runtime-node": "^0.1.6-alpha.2",
80
196
  "@deepseek-ai/dsh-persona": "^0.1.6-alpha.2",
197
+ "@deepseek-ai/dsh-pwsh-local": "^0.1.6-alpha.2",
198
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.6-alpha.2",
199
+ "@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.6-alpha.2",
200
+ "@deepseek-ai/dsh-sandbox": "^0.1.6-alpha.2",
201
+ "@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.2",
202
+ "@deepseek-ai/dsh-sandbox-windows-acl": "^0.1.6-alpha.2",
203
+ "@deepseek-ai/dsh-output-retention": "^0.1.6-alpha.2",
204
+ "@deepseek-ai/dsh-sandbox-local": "^0.1.6-alpha.2",
205
+ "@deepseek-ai/dsh-scope": "^0.1.6-alpha.2",
206
+ "@deepseek-ai/dsh-sdk-jsonrpc-server": "^0.1.6-alpha.2",
81
207
  "@deepseek-ai/dsh-schedule": "^0.1.6-alpha.2",
82
208
  "@deepseek-ai/dsh-sdk-minimal": "^0.1.6-alpha.2",
83
- "@deepseek-ai/dsh-experimental-agent-team-profile": "^0.1.6-alpha.2",
209
+ "@deepseek-ai/dsh-sdk-protocol": "^0.1.6-alpha.2",
210
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
211
+ "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.6-alpha.2",
212
+ "@deepseek-ai/dsh-session-format-v0-to-v1": "^0.1.6-alpha.2",
213
+ "@deepseek-ai/dsh-sdk-app": "^0.1.6-alpha.2",
214
+ "@deepseek-ai/dsh-session-format": "^0.1.6-alpha.2",
215
+ "@deepseek-ai/dsh-session-format-v1-to-v2": "^0.1.6-alpha.2",
216
+ "@deepseek-ai/dsh-session-log-deepseek": "^0.1.6-alpha.2",
217
+ "@deepseek-ai/dsh-session-format-catalog": "^0.1.6-alpha.2",
218
+ "@deepseek-ai/dsh-session-format-v2-to-v3": "^0.1.6-alpha.2",
219
+ "@deepseek-ai/dsh-session-log-export": "^0.1.6-alpha.2",
220
+ "@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.2",
221
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.2",
222
+ "@deepseek-ai/dsh-session-query-sqlite": "^0.1.6-alpha.2",
84
223
  "@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.2",
85
- "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
86
- "@deepseek-ai/dsh-skill-filesystem": "^0.1.6-alpha.2",
224
+ "@deepseek-ai/dsh-session-projection-cache": "^0.1.6-alpha.2",
225
+ "@deepseek-ai/dsh-session-query": "^0.1.6-alpha.2",
226
+ "@deepseek-ai/dsh-session-stats": "^0.1.6-alpha.2",
87
227
  "@deepseek-ai/dsh-session-reference": "^0.1.6-alpha.2",
228
+ "@deepseek-ai/dsh-session-telemetry-otel": "^0.1.6-alpha.2",
229
+ "@deepseek-ai/dsh-session-telemetry": "^0.1.6-alpha.2",
230
+ "@deepseek-ai/dsh-session-title": "^0.1.6-alpha.2",
231
+ "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.6-alpha.2",
232
+ "@deepseek-ai/dsh-session-title-llm": "^0.1.6-alpha.2",
233
+ "@deepseek-ai/dsh-session-turn-outline": "^0.1.6-alpha.2",
234
+ "@deepseek-ai/dsh-settings-file": "^0.1.6-alpha.2",
235
+ "@deepseek-ai/dsh-skill": "^0.1.6-alpha.2",
236
+ "@deepseek-ai/dsh-shell": "^0.1.6-alpha.2",
237
+ "@deepseek-ai/dsh-shell-env": "^0.1.6-alpha.2",
238
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.6-alpha.2",
239
+ "@deepseek-ai/dsh-spill": "^0.1.6-alpha.2",
240
+ "@deepseek-ai/dsh-spill-local": "^0.1.6-alpha.2",
241
+ "@deepseek-ai/dsh-settings": "^0.1.6-alpha.2",
242
+ "@deepseek-ai/dsh-skill-badge": "^0.1.6-alpha.2",
243
+ "@deepseek-ai/dsh-spill-policy": "^0.1.6-alpha.2",
244
+ "@deepseek-ai/dsh-storage": "^0.1.6-alpha.2",
245
+ "@deepseek-ai/dsh-storage-domain": "^0.1.6-alpha.2",
246
+ "@deepseek-ai/dsh-storage-json": "^0.1.6-alpha.2",
247
+ "@deepseek-ai/dsh-subagent-in-process-driver": "^0.1.6-alpha.2",
248
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.6-alpha.2",
249
+ "@deepseek-ai/dsh-subagent": "^0.1.6-alpha.2",
250
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.6-alpha.2",
251
+ "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
252
+ "@deepseek-ai/dsh-subprocess": "^0.1.6-alpha.2",
253
+ "@deepseek-ai/dsh-subprocess-local": "^0.1.6-alpha.2",
88
254
  "@deepseek-ai/dsh-terminal": "^0.1.6-alpha.2",
89
- "@deepseek-ai/dsh-sdk-app": "^0.1.6-alpha.2",
90
- "@deepseek-ai/dsh-tmux-context": "^0.1.6-alpha.2",
91
255
  "@deepseek-ai/dsh-time-context": "^0.1.6-alpha.2",
256
+ "@deepseek-ai/dsh-timeout": "^0.1.6-alpha.2",
257
+ "@deepseek-ai/dsh-tmux-context": "^0.1.6-alpha.2",
92
258
  "@deepseek-ai/dsh-terminal-bash": "^0.1.6-alpha.2",
259
+ "@deepseek-ai/dsh-token-meter": "^0.1.6-alpha.2",
93
260
  "@deepseek-ai/dsh-tool-ask-user": "^0.1.6-alpha.2",
94
261
  "@deepseek-ai/dsh-tool-bash": "^0.1.6-alpha.2",
95
- "@deepseek-ai/dsh-token-meter": "^0.1.6-alpha.2",
96
- "@deepseek-ai/dsh-tool-present": "^0.1.6-alpha.2",
262
+ "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.6-alpha.2",
263
+ "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.6-alpha.2",
264
+ "@deepseek-ai/dsh-tool-cordis": "^0.1.6-alpha.2",
97
265
  "@deepseek-ai/dsh-tool-fs": "^0.1.6-alpha.2",
98
266
  "@deepseek-ai/dsh-tool-fs-search": "^0.1.6-alpha.2",
99
- "@deepseek-ai/dsh-tool-cordis": "^0.1.6-alpha.2",
100
- "@deepseek-ai/dsh-skill": "^0.1.6-alpha.2",
101
- "@deepseek-ai/dsh-tool-pwsh": "^0.1.6-alpha.2",
102
- "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.6-alpha.2",
103
- "@deepseek-ai/dsh-tool-jobs": "^0.1.6-alpha.2",
104
267
  "@deepseek-ai/dsh-tool-goal": "^0.1.6-alpha.2",
268
+ "@deepseek-ai/dsh-tool-jobs": "^0.1.6-alpha.2",
269
+ "@deepseek-ai/dsh-tool-present": "^0.1.6-alpha.2",
270
+ "@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.6-alpha.2",
271
+ "@deepseek-ai/dsh-tool-ralph": "^0.1.6-alpha.2",
105
272
  "@deepseek-ai/dsh-tool-skill": "^0.1.6-alpha.2",
273
+ "@deepseek-ai/dsh-tool-pwsh": "^0.1.6-alpha.2",
106
274
  "@deepseek-ai/dsh-tool-subagent": "^0.1.6-alpha.2",
107
275
  "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.6-alpha.2",
108
- "@deepseek-ai/dsh-tool-ralph": "^0.1.6-alpha.2",
276
+ "@deepseek-ai/dsh-tool-todo": "^0.1.6-alpha.2",
109
277
  "@deepseek-ai/dsh-tool-subagent-control": "^0.1.6-alpha.2",
110
278
  "@deepseek-ai/dsh-tool-web": "^0.1.6-alpha.2",
111
- "@deepseek-ai/dsh-tool-todo": "^0.1.6-alpha.2",
112
- "@deepseek-ai/dsh-webhook": "^0.1.6-alpha.2",
113
- "@deepseek-ai/dsh-web-app": "^0.1.6-alpha.2",
114
279
  "@deepseek-ai/dsh-tool-workflow": "^0.1.6-alpha.2",
280
+ "@deepseek-ai/dsh-typert-loader": "^0.1.6-alpha.2",
281
+ "@deepseek-ai/dsh-tools": "^0.1.6-alpha.2",
282
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.2",
283
+ "@deepseek-ai/dsh-user-approval": "^0.1.6-alpha.2",
284
+ "@deepseek-ai/dsh-typert-registry": "^0.1.6-alpha.2",
285
+ "@deepseek-ai/dsh-user-questions": "^0.1.6-alpha.2",
286
+ "@deepseek-ai/dsh-util-crypto": "^0.1.6-alpha.2",
287
+ "@deepseek-ai/dsh-util-values": "^0.1.6-alpha.2",
288
+ "@deepseek-ai/dsh-web": "^0.1.6-alpha.2",
289
+ "@deepseek-ai/dsh-util-time": "^0.1.6-alpha.2",
290
+ "@deepseek-ai/dsh-web-app": "^0.1.6-alpha.2",
291
+ "@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.2",
292
+ "@deepseek-ai/dsh-web-fetch-http": "^0.1.6-alpha.2",
293
+ "@deepseek-ai/dsh-webhook": "^0.1.6-alpha.2",
294
+ "@deepseek-ai/dsh-web-frontend": "^0.1.6-alpha.2",
115
295
  "@deepseek-ai/dsh-webhook-github": "^0.1.6-alpha.2",
296
+ "@deepseek-ai/dsh-workflow": "^0.1.6-alpha.2",
297
+ "@deepseek-ai/dsh-win32-process": "^0.1.6-alpha.2",
298
+ "@deepseek-ai/dsh-workflow-ptc": "^0.1.6-alpha.2",
299
+ "@deepseek-ai/dsh-workspace-changes": "^0.1.6-alpha.2",
300
+ "@deepseek-ai/dsh-workspace": "^0.1.6-alpha.2",
116
301
  "@deepseek-ai/schemastery": "^3.18.2",
117
- "@deepseek-ai/dsh-mcp-resources": "^0.1.6-alpha.2",
118
- "@deepseek-ai/dsh-http-proxy": "^0.1.6-alpha.2",
119
- "@deepseek-ai/dsh-atomic-write": "^0.1.6-alpha.2",
120
- "@deepseek-ai/dsh-plugin-manager": "^0.1.6-alpha.2",
121
- "@deepseek-ai/dsh-tool-bash-persistent": "^0.1.6-alpha.2",
122
- "@deepseek-ai/dsh-plan-mode": "^0.1.6-alpha.2",
123
- "@deepseek-ai/dsh-workflow-ptc": "^0.1.6-alpha.2"
302
+ "@deepseek-ai/dsh-web-search-deepseek": "^0.1.6-alpha.2"
124
303
  },
125
304
  "devDependencies": {
126
305
  "@agentclientprotocol/sdk": "1.4.0",
@@ -128,45 +307,11 @@
128
307
  "@types/ws": "8.18.1",
129
308
  "execa": "^10.0.0",
130
309
  "ws": "8.21.0",
131
- "@deepseek-ai/dsh-acp": "^0.1.6-alpha.2",
132
- "@deepseek-ai/dsh-agent": "^0.1.6-alpha.2",
133
- "@deepseek-ai/dsh-attachment-local": "^0.1.6-alpha.2",
134
- "@deepseek-ai/dsh-bash-local": "^0.1.6-alpha.2",
135
- "@deepseek-ai/dsh-credentials-local": "^0.1.6-alpha.2",
136
- "@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.2",
137
310
  "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.6-alpha.2",
138
- "@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.2",
139
- "@deepseek-ai/dsh-fs-observation-policy": "^0.1.6-alpha.2",
140
- "@deepseek-ai/dsh-host-frontend-static": "^0.1.6-alpha.2",
141
- "@deepseek-ai/dsh-experimental-tool-agent-team": "^0.1.6-alpha.2",
142
- "@deepseek-ai/dsh-deepseek-llm-api-extensions": "^0.1.6-alpha.2",
143
- "@deepseek-ai/dsh-llm-deepseek": "^0.1.6-alpha.2",
144
- "@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.2",
145
- "@deepseek-ai/dsh-llm": "^0.1.6-alpha.2",
146
- "@deepseek-ai/dsh-fs-sandbox": "^0.1.6-alpha.2",
147
- "@deepseek-ai/dsh-llm-pi-ai": "^0.1.6-alpha.2",
311
+ "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
148
312
  "@deepseek-ai/dsh-llm-mock-server": "^0.1.6-alpha.2",
149
313
  "@deepseek-ai/dsh-llm-replay": "^0.1.6-alpha.2",
150
- "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.6-alpha.2",
151
- "@deepseek-ai/dsh-loader-smoke": "^0.1.6-alpha.2",
152
- "@deepseek-ai/dsh-experimental-ptc-runtime-python": "^0.1.6-alpha.2",
153
- "@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.2",
154
- "@deepseek-ai/dsh-sandbox-local": "^0.1.6-alpha.2",
155
- "@deepseek-ai/dsh-session-log-deepseek": "^0.1.6-alpha.2",
156
- "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.6-alpha.2",
157
- "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
158
- "@deepseek-ai/dsh-shell-env": "^0.1.6-alpha.2",
159
- "@deepseek-ai/dsh-session-query": "^0.1.6-alpha.2",
160
- "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.6-alpha.2",
161
- "@deepseek-ai/dsh-settings-file": "^0.1.6-alpha.2",
162
- "@deepseek-ai/dsh-subagent": "^0.1.6-alpha.2",
163
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.2",
164
- "@deepseek-ai/dsh-subprocess-local": "^0.1.6-alpha.2",
165
- "@deepseek-ai/dsh-settings": "^0.1.6-alpha.2",
166
- "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
167
- "@deepseek-ai/dsh-tools": "^0.1.6-alpha.2",
168
- "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.6-alpha.2",
169
- "@deepseek-ai/dsh-user-approval": "^0.1.6-alpha.2"
314
+ "@deepseek-ai/dsh-loader-smoke": "^0.1.6-alpha.2"
170
315
  },
171
316
  "exports": {
172
317
  "./profile-boot": {