@chatcode/chatcode-cli-test 3.0.1 → 3.0.3
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 +1 -1
- package/README.zh.md +1 -1
- package/lib/bin.js +8 -7
- package/lib/chatcode-home-B93iESZd.js +48 -0
- package/lib/{dump-config-Bn-CzGIR.js → dump-config-DIYmGHfM.js} +1 -1
- package/lib/{home-migration-BejD6LQn.js → home-migration-DLaSvmfn.js} +3 -3
- package/lib/{plugin-DrWxOiv2.js → plugin-DSS8fYBJ.js} +1 -1
- package/lib/{profile-boot-DNB5by4u.js → profile-boot-Dncz2Q75.js} +62 -10
- package/lib/profile-boot.js +2 -2
- package/lib/types/bin.d.ts +1 -1
- package/lib/types/chatcode-home.d.ts +30 -0
- package/lib/types/profile-boot.d.ts +10 -1
- package/package.json +236 -91
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.
|
|
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
|
|
5
|
+
`chatcode-cli` 是正式启动命令,`cco` 是其简写;两者共用同一解析器,且无参数时都启动 TUI/CLI profile。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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
289
|
+
const { runPlugin } = await import("./plugin-DSS8fYBJ.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-
|
|
294
|
+
const { runDumpConfig } = await import("./dump-config-DIYmGHfM.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
|
|
1
|
+
import { a as homePatchPath, r as PROFILE_ROOT_FILENAME, s as prepareProfile } from "./profile-boot-Dncz2Q75.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 {
|
|
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 {
|
|
1
|
+
import { n as INSTALL_ANCHOR } from "./profile-boot-Dncz2Q75.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,8 @@
|
|
|
1
|
+
import { i as synchronizeLegacyHomeEnvironment, r as resolveChatCodeCliHome } from "./chatcode-home-B93iESZd.js";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
1
3
|
import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
2
4
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { PROFILE_PATCH_FILENAME,
|
|
4
|
-
import { resolveChatCodeCliHome } from "@deepseek-ai/dsh-home-paths";
|
|
5
|
+
import { PROFILE_PATCH_FILENAME, PluginPackages, boot, createProfileResolutionGeneration, healIsolatedProfileModuleFallback, healProfilesModuleFallback, initProfile, installFailLoud, loadOverlayPatches, loadProfile, readProfilePatches, resolveProfileDir } from "@deepseek-ai/dsh-app-boot";
|
|
5
6
|
import { dirname, join, resolve } from "node:path";
|
|
6
7
|
import { installProxyFromEnvironment } from "@deepseek-ai/dsh-http-proxy";
|
|
7
8
|
import { DSH_LAUNCH_ENVIRONMENT_KEY } from "@deepseek-ai/dsh-launch-environment";
|
|
@@ -83,6 +84,24 @@ function createProcessShutdown(dispose, forceExit = (code) => {
|
|
|
83
84
|
* @module @chatcode/chatcode-cli/profile-boot
|
|
84
85
|
*/
|
|
85
86
|
const NAME = "ChatCode CLI";
|
|
87
|
+
/** Profile templates shipped by ChatCode CLI, independent of the installed Harness ABI version. */
|
|
88
|
+
const CHATCODE_PROFILE_TEMPLATES = {
|
|
89
|
+
acp: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-acp-app"] },
|
|
90
|
+
web: { bundles: [
|
|
91
|
+
"@deepseek-ai/dsh-base",
|
|
92
|
+
"@deepseek-ai/dsh-web-app",
|
|
93
|
+
"dshmarket"
|
|
94
|
+
] },
|
|
95
|
+
cli: { bundles: [
|
|
96
|
+
"@deepseek-ai/dsh-base",
|
|
97
|
+
"@deepseek-harness-tui/dsh-tui",
|
|
98
|
+
"dsh-llm-chatcode-config",
|
|
99
|
+
"dshmarket"
|
|
100
|
+
] },
|
|
101
|
+
headless: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-headless"] },
|
|
102
|
+
sdk: { bundles: ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-sdk-app"] },
|
|
103
|
+
"sdk-minimal": { bundles: ["@deepseek-ai/dsh-sdk-minimal"] }
|
|
104
|
+
};
|
|
86
105
|
/** Launcher-owned readiness signal committed only after boot and host setup succeed. */
|
|
87
106
|
function createAppReady() {
|
|
88
107
|
let ready = false;
|
|
@@ -117,6 +136,31 @@ function homePatchPath() {
|
|
|
117
136
|
}
|
|
118
137
|
/** Absolute path of this ChatCode CLI installation's package.json (both anchors: src/ and lib/ sit one level under apps/cli). */
|
|
119
138
|
const INSTALL_ANCHOR = fileURLToPath(new URL("../package.json", import.meta.url));
|
|
139
|
+
/** Product overlays that are part of ChatCode CLI rather than the upstream Harness profile ABI. */
|
|
140
|
+
const CHATCODE_PROFILE_PATCHES = {
|
|
141
|
+
web: [
|
|
142
|
+
["@chatcode/cco-better-sidebar", "cordis.patch.yml"],
|
|
143
|
+
["@chatcode/cco-llm-chatcode-config", "cordis.patch.yml"],
|
|
144
|
+
["@chatcode/cco-llm-chatcode-config", "cordis.web.patch.yml"],
|
|
145
|
+
["@chatcode/cco-chat-import", "cordis.patch.yml"]
|
|
146
|
+
],
|
|
147
|
+
cli: [["@chatcode/cco-chat-import", "cordis.patch.yml"]]
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Resolve ChatCode-owned patch files from the launcher's installed dependency
|
|
151
|
+
* graph. This mirrors the source-checkout overlays for published installs,
|
|
152
|
+
* where `scripts/dsh-local.ts` is not present, without changing the persisted
|
|
153
|
+
* profile or the upstream DSH plugin ABI.
|
|
154
|
+
*/
|
|
155
|
+
function chatCodeProfilePatchFiles(profile, installAnchor = INSTALL_ANCHOR) {
|
|
156
|
+
const declarations = CHATCODE_PROFILE_PATCHES[profile] ?? [];
|
|
157
|
+
const require = createRequire(installAnchor);
|
|
158
|
+
return declarations.map(([packageName, patch]) => {
|
|
159
|
+
const path = join(dirname(require.resolve(`${packageName}/package.json`)), patch);
|
|
160
|
+
if (!existsSync(path)) throw new Error(`${NAME}: installed product plugin ${packageName} is missing ${patch}`);
|
|
161
|
+
return path;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
120
164
|
/** The empty root entry list every profile tree patches over. */
|
|
121
165
|
const PROFILE_ROOT_CONFIG = `# ChatCode CLI profile root — an empty entry list. The tree is composed as patches:
|
|
122
166
|
# each bundle in package.json's dsh.profile.bundles, then cordis.patch.yml, then any
|
|
@@ -138,12 +182,12 @@ const PROFILE_ROOT_FILENAME = "cordis.yml";
|
|
|
138
182
|
*/
|
|
139
183
|
function initializeProfileFromDefault(name, fromDefaultProfile, home = resolveChatCodeCliHome()) {
|
|
140
184
|
const dir = resolveProfileDir(name, home);
|
|
141
|
-
const template = Object.hasOwn(
|
|
185
|
+
const template = Object.hasOwn(CHATCODE_PROFILE_TEMPLATES, fromDefaultProfile) ? CHATCODE_PROFILE_TEMPLATES[fromDefaultProfile] : void 0;
|
|
142
186
|
if (template === void 0) {
|
|
143
|
-
const expected = Object.keys(
|
|
187
|
+
const expected = Object.keys(CHATCODE_PROFILE_TEMPLATES).sort().map((value) => JSON.stringify(value)).join(", ");
|
|
144
188
|
throw new Error(`${NAME}: unknown default profile ${JSON.stringify(fromDefaultProfile)}; expected one of ${expected}`);
|
|
145
189
|
}
|
|
146
|
-
if (Object.hasOwn(
|
|
190
|
+
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
191
|
mkdirSync(dirname(dir), { recursive: true });
|
|
148
192
|
try {
|
|
149
193
|
mkdirSync(dir);
|
|
@@ -184,7 +228,11 @@ function initializeProfileFromDefault(name, fromDefaultProfile, home = resolveCh
|
|
|
184
228
|
*/
|
|
185
229
|
function prepareProfile(name, userLayer = true, fromDefaultProfile) {
|
|
186
230
|
if (fromDefaultProfile !== void 0) initializeProfileFromDefault(name, fromDefaultProfile);
|
|
187
|
-
const
|
|
231
|
+
const home = resolveChatCodeCliHome();
|
|
232
|
+
const dir = resolveProfileDir(name, home);
|
|
233
|
+
const template = Object.hasOwn(CHATCODE_PROFILE_TEMPLATES, name) ? CHATCODE_PROFILE_TEMPLATES[name] : void 0;
|
|
234
|
+
if (template !== void 0 && !existsSync(join(dir, "package.json"))) initProfile(dir, template.bundles);
|
|
235
|
+
const profile = loadProfile(NAME, name, INSTALL_ANCHOR, home, {
|
|
188
236
|
pluginCommand: "chatcode-cli",
|
|
189
237
|
userLayer
|
|
190
238
|
});
|
|
@@ -210,13 +258,16 @@ async function composeProfile(name, patchFiles, resolutionMode, fromDefaultProfi
|
|
|
210
258
|
if (resolvedProfile !== void 0) writeFileSync(join(profile.dir, PROFILE_ROOT_FILENAME), PROFILE_ROOT_CONFIG);
|
|
211
259
|
const resolutionOptions = {
|
|
212
260
|
installAnchor: resolvedProfile?.installAnchor ?? INSTALL_ANCHOR,
|
|
213
|
-
profile
|
|
261
|
+
profile,
|
|
262
|
+
home: resolveChatCodeCliHome()
|
|
214
263
|
};
|
|
215
264
|
if (resolvedProfile !== void 0 && resolutionMode !== "runtime") healIsolatedProfileModuleFallback(resolvedProfile);
|
|
265
|
+
const resolution = resolutionMode === "runtime" || resolvedProfile !== void 0 ? await createProfileResolutionGeneration(resolutionOptions) : await healProfilesModuleFallback(resolutionOptions);
|
|
266
|
+
const productPatchFiles = resolvedProfile === void 0 ? chatCodeProfilePatchFiles(name, INSTALL_ANCHOR) : [];
|
|
216
267
|
return {
|
|
217
268
|
profile,
|
|
218
|
-
resolution
|
|
219
|
-
overlays: patchFiles.flatMap((file) => loadOverlayPatches(NAME,
|
|
269
|
+
resolution,
|
|
270
|
+
overlays: [...new Set([...productPatchFiles, ...patchFiles].map((file) => resolve(file)))].flatMap((file) => loadOverlayPatches(NAME, file))
|
|
220
271
|
};
|
|
221
272
|
}
|
|
222
273
|
/**
|
|
@@ -227,6 +278,7 @@ async function composeProfile(name, patchFiles, resolutionMode, fromDefaultProfi
|
|
|
227
278
|
* @throws after disposing startup resources; cleanup failures retain the original error.
|
|
228
279
|
*/
|
|
229
280
|
async function runProfile(options) {
|
|
281
|
+
synchronizeLegacyHomeEnvironment();
|
|
230
282
|
const disposeProxy = await installProxyFromEnvironment(options.environment, (message) => {
|
|
231
283
|
process.stderr.write(`${NAME}: ${message}\n`);
|
|
232
284
|
});
|
|
@@ -304,4 +356,4 @@ async function runProfile(options) {
|
|
|
304
356
|
}
|
|
305
357
|
}
|
|
306
358
|
//#endregion
|
|
307
|
-
export {
|
|
359
|
+
export { homePatchPath as a, runProfile as c, chatCodeProfilePatchFiles as i, INSTALL_ANCHOR as n, initializeProfileFromDefault as o, PROFILE_ROOT_FILENAME as r, prepareProfile as s, CHATCODE_PROFILE_TEMPLATES as t };
|
package/lib/profile-boot.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { INSTALL_ANCHOR, PROFILE_ROOT_FILENAME, homePatchPath, initializeProfileFromDefault, prepareProfile, runProfile };
|
|
1
|
+
import { a as homePatchPath, c as runProfile, i as chatCodeProfilePatchFiles, n as INSTALL_ANCHOR, o as initializeProfileFromDefault, r as PROFILE_ROOT_FILENAME, s as prepareProfile, t as CHATCODE_PROFILE_TEMPLATES } from "./profile-boot-Dncz2Q75.js";
|
|
2
|
+
export { CHATCODE_PROFILE_TEMPLATES, INSTALL_ANCHOR, PROFILE_ROOT_FILENAME, chatCodeProfilePatchFiles, homePatchPath, initializeProfileFromDefault, prepareProfile, runProfile };
|
package/lib/types/bin.d.ts
CHANGED
|
@@ -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:
|
|
@@ -22,6 +24,13 @@ import { type ProcessShutdown } from './process-shutdown.ts';
|
|
|
22
24
|
export declare function homePatchPath(): string;
|
|
23
25
|
/** Absolute path of this ChatCode CLI installation's package.json (both anchors: src/ and lib/ sit one level under apps/cli). */
|
|
24
26
|
export declare const INSTALL_ANCHOR: string;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve ChatCode-owned patch files from the launcher's installed dependency
|
|
29
|
+
* graph. This mirrors the source-checkout overlays for published installs,
|
|
30
|
+
* where `scripts/dsh-local.ts` is not present, without changing the persisted
|
|
31
|
+
* profile or the upstream DSH plugin ABI.
|
|
32
|
+
*/
|
|
33
|
+
export declare function chatCodeProfilePatchFiles(profile: string, installAnchor?: string): string[];
|
|
25
34
|
/** Root config filename inside a profile directory. */
|
|
26
35
|
export declare const PROFILE_ROOT_FILENAME = "cordis.yml";
|
|
27
36
|
/**
|
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.
|
|
4
|
+
"version": "3.0.3",
|
|
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-
|
|
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
|
-
"@chatcode/cco-better-sidebar": "0.18.0-alpha.1",
|
|
32
|
+
"@chatcode/cco-better-sidebar": "0.18.0-alpha.2",
|
|
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",
|
|
42
|
-
"
|
|
37
|
+
"@chatcode/cco-tui": "0.10.0-beta.7",
|
|
38
|
+
"@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-beta.7",
|
|
39
|
+
"commander": "^15.0.0",
|
|
40
|
+
"dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-alpha.2",
|
|
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
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"@deepseek-ai/
|
|
49
|
-
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
45
|
+
"js-yaml": "^4.2.0",
|
|
46
|
+
"node-addon-require-builtin": "^0.1.6",
|
|
47
|
+
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
50
48
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
49
|
+
"@deepseek-ai/dsh-acp": "^0.1.6-alpha.2",
|
|
50
|
+
"@deepseek-ai/dsh-acp-app": "^0.1.6-alpha.2",
|
|
51
|
+
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
52
|
+
"@deepseek-ai/cordis-plugin-group": "^1.0.2",
|
|
51
53
|
"@deepseek-ai/cordis-plugin-timer": "^1.1.4",
|
|
52
|
-
"@deepseek-ai/
|
|
54
|
+
"@deepseek-ai/dsh-agent-default-model": "^0.1.6-alpha.2",
|
|
55
|
+
"@deepseek-ai/dsh-agent": "^0.1.6-alpha.2",
|
|
53
56
|
"@deepseek-ai/dsh-agent-instructions": "^0.1.6-alpha.2",
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
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-presets": "^0.1.6-alpha.2",
|
|
60
|
+
"@deepseek-ai/dsh-anonymous-user-id": "^0.1.6-alpha.2",
|
|
61
|
+
"@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.2",
|
|
62
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-api-settings-controller": "^0.1.6-alpha.2",
|
|
64
|
+
"@deepseek-ai/dsh-api-session-controller": "^0.1.6-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-api-workspace-controller": "^0.1.6-alpha.2",
|
|
66
|
+
"@deepseek-ai/dsh-api-terminal-controller": "^0.1.6-alpha.2",
|
|
67
|
+
"@deepseek-ai/dsh-atomic-write": "^0.1.6-alpha.2",
|
|
68
|
+
"@deepseek-ai/dsh-api-workspace-files": "^0.1.6-alpha.2",
|
|
55
69
|
"@deepseek-ai/dsh-app-boot": "^0.1.6-alpha.2",
|
|
70
|
+
"@deepseek-ai/dsh-bash-sandbox": "^0.1.6-alpha.2",
|
|
71
|
+
"@deepseek-ai/dsh-bash-local": "^0.1.6-alpha.2",
|
|
72
|
+
"@deepseek-ai/dsh-authorization": "^0.1.6-alpha.2",
|
|
73
|
+
"@deepseek-ai/dsh-attachment-local": "^0.1.6-alpha.2",
|
|
74
|
+
"@deepseek-ai/dsh-attachment": "^0.1.6-alpha.2",
|
|
75
|
+
"@deepseek-ai/dsh-brand": "^0.1.6-alpha.2",
|
|
76
|
+
"@deepseek-ai/dsh-base": "^0.1.6-alpha.2",
|
|
77
|
+
"@deepseek-ai/dsh-chunked-list": "^0.1.6-alpha.2",
|
|
78
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.2",
|
|
79
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.6-alpha.2",
|
|
80
|
+
"@deepseek-ai/dsh-client-modules": "^0.1.6-alpha.2",
|
|
81
|
+
"@deepseek-ai/dsh-client-resources": "^0.1.6-alpha.2",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-approval": "^0.1.6-alpha.2",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-attachment": "^0.1.6-alpha.2",
|
|
84
|
+
"@deepseek-ai/dsh-client-ui-brand-official": "^0.1.6-alpha.2",
|
|
85
|
+
"@deepseek-ai/dsh-client-ui-chat": "^0.1.6-alpha.2",
|
|
56
86
|
"@deepseek-ai/dsh-client-ui-agent-preset": "^0.1.6-alpha.2",
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
87
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.6-alpha.2",
|
|
88
|
+
"@deepseek-ai/dsh-client-file-upload": "^0.1.6-alpha.2",
|
|
89
|
+
"@deepseek-ai/dsh-client-ui-commands": "^0.1.6-alpha.2",
|
|
90
|
+
"@deepseek-ai/dsh-client-ui-deliverables": "^0.1.6-alpha.2",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-directory-picker-native": "^0.1.6-alpha.2",
|
|
92
|
+
"@deepseek-ai/dsh-client-ui-directory-picker-browse": "^0.1.6-alpha.2",
|
|
60
93
|
"@deepseek-ai/dsh-client-ui-cordis": "^0.1.6-alpha.2",
|
|
61
|
-
"@deepseek-ai/dsh-
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-
|
|
94
|
+
"@deepseek-ai/dsh-client-ui-jobs": "^0.1.6-alpha.2",
|
|
95
|
+
"@deepseek-ai/dsh-client-ui-goal": "^0.1.6-alpha.2",
|
|
96
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.6-alpha.2",
|
|
97
|
+
"@deepseek-ai/dsh-client-ui-message-feedback": "^0.1.6-alpha.2",
|
|
98
|
+
"@deepseek-ai/dsh-client-ui-open-in-app": "^0.1.6-alpha.2",
|
|
99
|
+
"@deepseek-ai/dsh-client-ui-permission-presets": "^0.1.6-alpha.2",
|
|
100
|
+
"@deepseek-ai/dsh-client-ui-plan": "^0.1.6-alpha.2",
|
|
101
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager": "^0.1.6-alpha.2",
|
|
102
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "^0.1.6-alpha.2",
|
|
103
|
+
"@deepseek-ai/dsh-client-ui-reference": "^0.1.6-alpha.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-hmr": "^0.1.6-alpha.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.2",
|
|
107
|
+
"@deepseek-ai/dsh-client-ui-settings-general": "^0.1.6-alpha.2",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-session": "^0.1.6-alpha.2",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-schedule": "^0.1.6-alpha.2",
|
|
110
|
+
"@deepseek-ai/dsh-client-ui-settings-models": "^0.1.6-alpha.2",
|
|
111
|
+
"@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "^0.1.6-alpha.2",
|
|
112
|
+
"@deepseek-ai/dsh-client-ui-layout": "^0.1.6-alpha.2",
|
|
113
|
+
"@deepseek-ai/dsh-client-ui-settings-unarchive-sessions": "^0.1.6-alpha.2",
|
|
114
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "^0.1.6-alpha.2",
|
|
115
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.6-alpha.2",
|
|
116
|
+
"@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "^0.1.6-alpha.2",
|
|
117
|
+
"@deepseek-ai/dsh-client-ui-sidebar-files": "^0.1.6-alpha.2",
|
|
118
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.6-alpha.2",
|
|
119
|
+
"@deepseek-ai/dsh-client-ui-sidebar-terminal": "^0.1.6-alpha.2",
|
|
120
|
+
"@deepseek-ai/dsh-client-ui-sidebar-browser": "^0.1.6-alpha.2",
|
|
121
|
+
"@deepseek-ai/dsh-client-ui-skill": "^0.1.6-alpha.2",
|
|
122
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "^0.1.6-alpha.2",
|
|
123
|
+
"@deepseek-ai/dsh-client-ui-theme": "^0.1.6-alpha.2",
|
|
124
|
+
"@deepseek-ai/dsh-client-ui-subagent": "^0.1.6-alpha.2",
|
|
125
|
+
"@deepseek-ai/dsh-client-ui-tool": "^0.1.6-alpha.2",
|
|
126
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
|
|
127
|
+
"@deepseek-ai/dsh-client-ui-user-questions": "^0.1.6-alpha.2",
|
|
128
|
+
"@deepseek-ai/dsh-client-ui-workspace": "^0.1.6-alpha.2",
|
|
64
129
|
"@deepseek-ai/dsh-command-compact": "^0.1.6-alpha.2",
|
|
130
|
+
"@deepseek-ai/dsh-cmdline": "^0.1.6-alpha.2",
|
|
131
|
+
"@deepseek-ai/dsh-client-ui-workflow-run": "^0.1.6-alpha.2",
|
|
132
|
+
"@deepseek-ai/dsh-command-goal": "^0.1.6-alpha.2",
|
|
133
|
+
"@deepseek-ai/dsh-compaction-image-offload": "^0.1.6-alpha.2",
|
|
134
|
+
"@deepseek-ai/dsh-command-feedback": "^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",
|
|
137
|
+
"@deepseek-ai/dsh-commands": "^0.1.6-alpha.2",
|
|
138
|
+
"@deepseek-ai/dsh-client-ui-trajectory": "^0.1.6-alpha.2",
|
|
139
|
+
"@deepseek-ai/dsh-cordis-host-runner": "^0.1.6-alpha.2",
|
|
140
|
+
"@deepseek-ai/dsh-credentials-local": "^0.1.6-alpha.2",
|
|
65
141
|
"@deepseek-ai/dsh-cordis-client-runner": "^0.1.6-alpha.2",
|
|
66
142
|
"@deepseek-ai/dsh-compaction-tool-result-pruner": "^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-deque": "^0.1.6-alpha.2",
|
|
146
|
+
"@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.2",
|
|
147
|
+
"@deepseek-ai/dsh-experimental-client-ui-agent-team": "^0.1.6-alpha.2",
|
|
148
|
+
"@deepseek-ai/dsh-experimental-ptc-runtime-python": "^0.1.6-alpha.2",
|
|
149
|
+
"@deepseek-ai/dsh-experimental-agent-team-web-profile": "^0.1.6-alpha.2",
|
|
150
|
+
"@deepseek-ai/dsh-file-reference-local": "^0.1.6-alpha.2",
|
|
151
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile": "^0.1.6-alpha.2",
|
|
152
|
+
"@deepseek-ai/dsh-file-reference": "^0.1.6-alpha.2",
|
|
153
|
+
"@deepseek-ai/dsh-fs-observation-policy": "^0.1.6-alpha.2",
|
|
154
|
+
"@deepseek-ai/dsh-fs-local": "^0.1.6-alpha.2",
|
|
155
|
+
"@deepseek-ai/dsh-experimental-tool-agent-team": "^0.1.6-alpha.2",
|
|
156
|
+
"@deepseek-ai/dsh-fs": "^0.1.6-alpha.2",
|
|
67
157
|
"@deepseek-ai/dsh-goal": "^0.1.6-alpha.2",
|
|
158
|
+
"@deepseek-ai/dsh-hmr": "^0.1.6-alpha.2",
|
|
159
|
+
"@deepseek-ai/dsh-fs-sandbox": "^0.1.6-alpha.2",
|
|
68
160
|
"@deepseek-ai/dsh-headless": "^0.1.6-alpha.2",
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
70
|
-
"@deepseek-ai/dsh-experimental-agent-team-web-profile": "^0.1.6-alpha.2",
|
|
71
|
-
"@deepseek-ai/dsh-jobs-local": "^0.1.6-alpha.2",
|
|
161
|
+
"@deepseek-ai/dsh-hooks-claude-code": "^0.1.6-alpha.2",
|
|
72
162
|
"@deepseek-ai/dsh-home-paths": "^0.1.6-alpha.2",
|
|
73
163
|
"@deepseek-ai/dsh-hooks-codex": "^0.1.6-alpha.2",
|
|
74
|
-
"@deepseek-ai/dsh-mcp-client": "^0.1.6-alpha.2",
|
|
75
|
-
"@deepseek-ai/dsh-pwsh-sandbox": "^0.1.6-alpha.2",
|
|
76
164
|
"@deepseek-ai/dsh-goal-round-driver": "^0.1.6-alpha.2",
|
|
165
|
+
"@deepseek-ai/dsh-hook-protocol": "^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": "^0.1.6-alpha.2",
|
|
168
|
+
"@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.6-alpha.2",
|
|
169
|
+
"@deepseek-ai/dsh-host-frontend-static": "^0.1.6-alpha.2",
|
|
170
|
+
"@deepseek-ai/dsh-host-open-in-app": "^0.1.6-alpha.2",
|
|
171
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.6-alpha.2",
|
|
172
|
+
"@deepseek-ai/dsh-host-plugin-inventory": "^0.1.6-alpha.2",
|
|
173
|
+
"@deepseek-ai/dsh-http-proxy": "^0.1.6-alpha.2",
|
|
174
|
+
"@deepseek-ai/dsh-jobs-local": "^0.1.6-alpha.2",
|
|
175
|
+
"@deepseek-ai/dsh-host-directory-picker-native": "^0.1.6-alpha.2",
|
|
176
|
+
"@deepseek-ai/dsh-jobs": "^0.1.6-alpha.2",
|
|
177
|
+
"@deepseek-ai/dsh-lazy-require": "^0.1.6-alpha.2",
|
|
77
178
|
"@deepseek-ai/dsh-launch-environment": "^0.1.6-alpha.2",
|
|
78
|
-
"@deepseek-ai/dsh-
|
|
79
|
-
"@deepseek-ai/dsh-
|
|
179
|
+
"@deepseek-ai/dsh-invariants": "^0.1.6-alpha.2",
|
|
180
|
+
"@deepseek-ai/dsh-llm": "^0.1.6-alpha.2",
|
|
181
|
+
"@deepseek-ai/dsh-llm-pi-ai": "^0.1.6-alpha.2",
|
|
182
|
+
"@deepseek-ai/dsh-mcp-resources": "^0.1.6-alpha.2",
|
|
183
|
+
"@deepseek-ai/dsh-llm-deepseek": "^0.1.6-alpha.2",
|
|
184
|
+
"@deepseek-ai/dsh-llm-retry": "^0.1.6-alpha.2",
|
|
185
|
+
"@deepseek-ai/dsh-mcp-client": "^0.1.6-alpha.2",
|
|
186
|
+
"@deepseek-ai/dsh-package-manifest": "^0.1.6-alpha.2",
|
|
187
|
+
"@deepseek-ai/dsh-permission-presets": "^0.1.6-alpha.2",
|
|
188
|
+
"@deepseek-ai/dsh-output-retention": "^0.1.6-alpha.2",
|
|
189
|
+
"@deepseek-ai/dsh-office-to-pdf": "^0.1.6-alpha.2",
|
|
190
|
+
"@deepseek-ai/dsh-message-feedback": "^0.1.6-alpha.2",
|
|
80
191
|
"@deepseek-ai/dsh-persona": "^0.1.6-alpha.2",
|
|
81
|
-
"@deepseek-ai/dsh-
|
|
192
|
+
"@deepseek-ai/dsh-native-command": "^0.1.6-alpha.2",
|
|
193
|
+
"@deepseek-ai/dsh-plan-mode": "^0.1.6-alpha.2",
|
|
194
|
+
"@deepseek-ai/dsh-ptc-runtime": "^0.1.6-alpha.2",
|
|
195
|
+
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.6-alpha.2",
|
|
196
|
+
"@deepseek-ai/dsh-ptc-runtime-node": "^0.1.6-alpha.2",
|
|
197
|
+
"@deepseek-ai/dsh-pwsh-local": "^0.1.6-alpha.2",
|
|
198
|
+
"@deepseek-ai/dsh-sandbox": "^0.1.6-alpha.2",
|
|
199
|
+
"@deepseek-ai/dsh-pwsh-sandbox": "^0.1.6-alpha.2",
|
|
200
|
+
"@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.6-alpha.2",
|
|
201
|
+
"@deepseek-ai/dsh-sandbox-local": "^0.1.6-alpha.2",
|
|
202
|
+
"@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.2",
|
|
203
|
+
"@deepseek-ai/dsh-sandbox-windows-acl": "^0.1.6-alpha.2",
|
|
204
|
+
"@deepseek-ai/dsh-sdk-app": "^0.1.6-alpha.2",
|
|
205
|
+
"@deepseek-ai/dsh-sdk-protocol": "^0.1.6-alpha.2",
|
|
206
|
+
"@deepseek-ai/dsh-plugin-manager": "^0.1.6-alpha.2",
|
|
207
|
+
"@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
|
|
208
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-server": "^0.1.6-alpha.2",
|
|
209
|
+
"@deepseek-ai/dsh-scope": "^0.1.6-alpha.2",
|
|
82
210
|
"@deepseek-ai/dsh-sdk-minimal": "^0.1.6-alpha.2",
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
211
|
+
"@deepseek-ai/dsh-schedule": "^0.1.6-alpha.2",
|
|
212
|
+
"@deepseek-ai/dsh-session-format": "^0.1.6-alpha.2",
|
|
213
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.2",
|
|
214
|
+
"@deepseek-ai/dsh-session-format-v1-to-v2": "^0.1.6-alpha.2",
|
|
215
|
+
"@deepseek-ai/dsh-session-format-catalog": "^0.1.6-alpha.2",
|
|
216
|
+
"@deepseek-ai/dsh-session-format-v2-to-v3": "^0.1.6-alpha.2",
|
|
217
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.6-alpha.2",
|
|
218
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.2",
|
|
219
|
+
"@deepseek-ai/dsh-session-log-export": "^0.1.6-alpha.2",
|
|
84
220
|
"@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.2",
|
|
85
|
-
"@deepseek-ai/dsh-
|
|
86
|
-
"@deepseek-ai/dsh-
|
|
221
|
+
"@deepseek-ai/dsh-session-format-v0-to-v1": "^0.1.6-alpha.2",
|
|
222
|
+
"@deepseek-ai/dsh-session-query": "^0.1.6-alpha.2",
|
|
223
|
+
"@deepseek-ai/dsh-session-projection-cache": "^0.1.6-alpha.2",
|
|
87
224
|
"@deepseek-ai/dsh-session-reference": "^0.1.6-alpha.2",
|
|
225
|
+
"@deepseek-ai/dsh-session-telemetry": "^0.1.6-alpha.2",
|
|
226
|
+
"@deepseek-ai/dsh-session-query-sqlite": "^0.1.6-alpha.2",
|
|
227
|
+
"@deepseek-ai/dsh-session-stats": "^0.1.6-alpha.2",
|
|
228
|
+
"@deepseek-ai/dsh-session-log-deepseek": "^0.1.6-alpha.2",
|
|
229
|
+
"@deepseek-ai/dsh-session-title": "^0.1.6-alpha.2",
|
|
230
|
+
"@deepseek-ai/dsh-session-title-llm": "^0.1.6-alpha.2",
|
|
231
|
+
"@deepseek-ai/dsh-session-telemetry-otel": "^0.1.6-alpha.2",
|
|
232
|
+
"@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.6-alpha.2",
|
|
233
|
+
"@deepseek-ai/dsh-settings": "^0.1.6-alpha.2",
|
|
234
|
+
"@deepseek-ai/dsh-settings-file": "^0.1.6-alpha.2",
|
|
235
|
+
"@deepseek-ai/dsh-session-turn-outline": "^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-badge": "^0.1.6-alpha.2",
|
|
239
|
+
"@deepseek-ai/dsh-skill": "^0.1.6-alpha.2",
|
|
240
|
+
"@deepseek-ai/dsh-spill": "^0.1.6-alpha.2",
|
|
241
|
+
"@deepseek-ai/dsh-spill-policy": "^0.1.6-alpha.2",
|
|
242
|
+
"@deepseek-ai/dsh-spill-local": "^0.1.6-alpha.2",
|
|
243
|
+
"@deepseek-ai/dsh-storage": "^0.1.6-alpha.2",
|
|
244
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.6-alpha.2",
|
|
245
|
+
"@deepseek-ai/dsh-skill-filesystem": "^0.1.6-alpha.2",
|
|
246
|
+
"@deepseek-ai/dsh-storage-json": "^0.1.6-alpha.2",
|
|
247
|
+
"@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.6-alpha.2",
|
|
248
|
+
"@deepseek-ai/dsh-subagent-in-process-driver": "^0.1.6-alpha.2",
|
|
249
|
+
"@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.6-alpha.2",
|
|
250
|
+
"@deepseek-ai/dsh-subagent": "^0.1.6-alpha.2",
|
|
251
|
+
"@deepseek-ai/dsh-subprocess": "^0.1.6-alpha.2",
|
|
252
|
+
"@deepseek-ai/dsh-subprocess-local": "^0.1.6-alpha.2",
|
|
253
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
|
|
254
|
+
"@deepseek-ai/dsh-terminal-bash": "^0.1.6-alpha.2",
|
|
88
255
|
"@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
256
|
"@deepseek-ai/dsh-time-context": "^0.1.6-alpha.2",
|
|
92
|
-
"@deepseek-ai/dsh-
|
|
93
|
-
"@deepseek-ai/dsh-
|
|
257
|
+
"@deepseek-ai/dsh-tmux-context": "^0.1.6-alpha.2",
|
|
258
|
+
"@deepseek-ai/dsh-timeout": "^0.1.6-alpha.2",
|
|
94
259
|
"@deepseek-ai/dsh-tool-bash": "^0.1.6-alpha.2",
|
|
95
260
|
"@deepseek-ai/dsh-token-meter": "^0.1.6-alpha.2",
|
|
96
|
-
"@deepseek-ai/dsh-tool-
|
|
261
|
+
"@deepseek-ai/dsh-tool-bash-persistent": "^0.1.6-alpha.2",
|
|
262
|
+
"@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.6-alpha.2",
|
|
97
263
|
"@deepseek-ai/dsh-tool-fs": "^0.1.6-alpha.2",
|
|
98
|
-
"@deepseek-ai/dsh-tool-fs-search": "^0.1.6-alpha.2",
|
|
99
264
|
"@deepseek-ai/dsh-tool-cordis": "^0.1.6-alpha.2",
|
|
100
|
-
"@deepseek-ai/dsh-
|
|
265
|
+
"@deepseek-ai/dsh-tool-ask-user": "^0.1.6-alpha.2",
|
|
266
|
+
"@deepseek-ai/dsh-tool-goal": "^0.1.6-alpha.2",
|
|
267
|
+
"@deepseek-ai/dsh-tool-jobs": "^0.1.6-alpha.2",
|
|
101
268
|
"@deepseek-ai/dsh-tool-pwsh": "^0.1.6-alpha.2",
|
|
269
|
+
"@deepseek-ai/dsh-tool-present": "^0.1.6-alpha.2",
|
|
102
270
|
"@deepseek-ai/dsh-tool-pwsh-persistent": "^0.1.6-alpha.2",
|
|
103
|
-
"@deepseek-ai/dsh-tool-
|
|
104
|
-
"@deepseek-ai/dsh-tool-goal": "^0.1.6-alpha.2",
|
|
105
|
-
"@deepseek-ai/dsh-tool-skill": "^0.1.6-alpha.2",
|
|
271
|
+
"@deepseek-ai/dsh-tool-ralph": "^0.1.6-alpha.2",
|
|
106
272
|
"@deepseek-ai/dsh-tool-subagent": "^0.1.6-alpha.2",
|
|
107
273
|
"@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.6-alpha.2",
|
|
108
|
-
"@deepseek-ai/dsh-tool-ralph": "^0.1.6-alpha.2",
|
|
109
274
|
"@deepseek-ai/dsh-tool-subagent-control": "^0.1.6-alpha.2",
|
|
110
|
-
"@deepseek-ai/dsh-tool-
|
|
275
|
+
"@deepseek-ai/dsh-tool-skill": "^0.1.6-alpha.2",
|
|
111
276
|
"@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
277
|
"@deepseek-ai/dsh-tool-workflow": "^0.1.6-alpha.2",
|
|
278
|
+
"@deepseek-ai/dsh-tools": "^0.1.6-alpha.2",
|
|
279
|
+
"@deepseek-ai/dsh-typert-loader": "^0.1.6-alpha.2",
|
|
280
|
+
"@deepseek-ai/dsh-tool-web": "^0.1.6-alpha.2",
|
|
281
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.2",
|
|
282
|
+
"@deepseek-ai/dsh-user-questions": "^0.1.6-alpha.2",
|
|
283
|
+
"@deepseek-ai/dsh-tool-fs-search": "^0.1.6-alpha.2",
|
|
284
|
+
"@deepseek-ai/dsh-typert-registry": "^0.1.6-alpha.2",
|
|
285
|
+
"@deepseek-ai/dsh-util-values": "^0.1.6-alpha.2",
|
|
286
|
+
"@deepseek-ai/dsh-util-crypto": "^0.1.6-alpha.2",
|
|
287
|
+
"@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.2",
|
|
288
|
+
"@deepseek-ai/dsh-user-approval": "^0.1.6-alpha.2",
|
|
289
|
+
"@deepseek-ai/dsh-web": "^0.1.6-alpha.2",
|
|
290
|
+
"@deepseek-ai/dsh-web-fetch-http": "^0.1.6-alpha.2",
|
|
291
|
+
"@deepseek-ai/dsh-util-time": "^0.1.6-alpha.2",
|
|
292
|
+
"@deepseek-ai/dsh-web-app": "^0.1.6-alpha.2",
|
|
293
|
+
"@deepseek-ai/dsh-webhook": "^0.1.6-alpha.2",
|
|
294
|
+
"@deepseek-ai/dsh-web-search-deepseek": "^0.1.6-alpha.2",
|
|
115
295
|
"@deepseek-ai/dsh-webhook-github": "^0.1.6-alpha.2",
|
|
116
|
-
"@deepseek-ai/
|
|
117
|
-
"@deepseek-ai/dsh-
|
|
118
|
-
"@deepseek-ai/dsh-
|
|
119
|
-
"@deepseek-ai/dsh-
|
|
120
|
-
"@deepseek-ai/dsh-
|
|
121
|
-
"@deepseek-ai/dsh-
|
|
122
|
-
"@deepseek-ai/
|
|
123
|
-
"@deepseek-ai/dsh-workflow-ptc": "^0.1.6-alpha.2"
|
|
296
|
+
"@deepseek-ai/dsh-web-frontend": "^0.1.6-alpha.2",
|
|
297
|
+
"@deepseek-ai/dsh-workflow-ptc": "^0.1.6-alpha.2",
|
|
298
|
+
"@deepseek-ai/dsh-win32-process": "^0.1.6-alpha.2",
|
|
299
|
+
"@deepseek-ai/dsh-workspace": "^0.1.6-alpha.2",
|
|
300
|
+
"@deepseek-ai/dsh-workspace-changes": "^0.1.6-alpha.2",
|
|
301
|
+
"@deepseek-ai/dsh-workflow": "^0.1.6-alpha.2",
|
|
302
|
+
"@deepseek-ai/schemastery": "^3.18.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",
|
|
148
311
|
"@deepseek-ai/dsh-llm-mock-server": "^0.1.6-alpha.2",
|
|
149
|
-
"@deepseek-ai/dsh-llm-replay": "^0.1.6-alpha.2",
|
|
150
|
-
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "^0.1.6-alpha.2",
|
|
151
312
|
"@deepseek-ai/dsh-loader-smoke": "^0.1.6-alpha.2",
|
|
152
|
-
"@deepseek-ai/dsh-
|
|
153
|
-
"@deepseek-ai/dsh-
|
|
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"
|
|
313
|
+
"@deepseek-ai/dsh-llm-replay": "^0.1.6-alpha.2",
|
|
314
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2"
|
|
170
315
|
},
|
|
171
316
|
"exports": {
|
|
172
317
|
"./profile-boot": {
|