@deepseek-harness-tui/dsh-tui 0.7.2 → 0.8.0
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 +3 -3
- package/bin/dsh-tui.js +24 -3
- package/cordis.patch.yml +24 -11
- package/cordis.yml +9 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +6 -1
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.js +5 -1
- package/lib/types/components/MessageList.d.ts +3 -1
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +9 -5
- package/lib/types/components/PluginSceneBoundary.d.ts +31 -0
- package/lib/types/components/PluginSceneBoundary.d.ts.map +1 -0
- package/lib/types/components/PluginSceneBoundary.js +29 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +52 -74
- package/lib/types/components/SearchBox.d.ts +4 -0
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +101 -2
- package/lib/types/components/SkillsPicker.d.ts +18 -0
- package/lib/types/components/SkillsPicker.d.ts.map +1 -0
- package/lib/types/components/SkillsPicker.js +50 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +4 -1
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -1
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +10 -5
- package/lib/types/components/SplitDiffView.d.ts +28 -0
- package/lib/types/components/SplitDiffView.d.ts.map +1 -0
- package/lib/types/components/SplitDiffView.js +417 -0
- package/lib/types/components/WorkingSpinner.d.ts +3 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +2 -2
- package/lib/types/components/design-system/ThemedText.d.ts +7 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +3 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +17 -7
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +52 -8
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +12 -3
- package/lib/types/dsh-adapter/channel.d.ts +78 -0
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +165 -14
- package/lib/types/dsh-adapter/contract.d.ts +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +1 -0
- package/lib/types/dsh-adapter/index.d.ts +4 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +1 -0
- package/lib/types/dsh-adapter/packaged-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/packaged-presets.js +5 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +66 -3
- package/lib/types/dsh-adapter/promptDebug.d.ts +10 -0
- package/lib/types/dsh-adapter/promptDebug.d.ts.map +1 -0
- package/lib/types/dsh-adapter/promptDebug.js +148 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +3 -1
- package/lib/types/dsh-adapter/scenes.d.ts +75 -0
- package/lib/types/dsh-adapter/scenes.d.ts.map +1 -0
- package/lib/types/dsh-adapter/scenes.js +78 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts +116 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settings-sections.js +63 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts +128 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settingsEditor.js +244 -0
- package/lib/types/i18n.d.ts +169 -18
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +45 -6
- package/lib/types/ink/components/Text.d.ts +9 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +7 -6
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +4 -2
- package/lib/types/ink/log-update.d.ts.map +1 -1
- package/lib/types/ink/log-update.js +76 -9
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +4 -1
- package/lib/types/ink/terminal.d.ts +40 -4
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +57 -5
- package/lib/types/ink/termio/tokenize.d.ts +6 -0
- package/lib/types/ink/termio/tokenize.d.ts.map +1 -1
- package/lib/types/ink/termio/tokenize.js +18 -4
- package/lib/types/jsx-runtime.d.ts +2 -0
- package/lib/types/jsx-runtime.d.ts.map +1 -0
- package/lib/types/jsx-runtime.js +13 -0
- package/lib/types/modelRoute.d.ts +10 -2
- package/lib/types/modelRoute.d.ts.map +1 -1
- package/lib/types/modelRoute.js +33 -4
- package/lib/types/scenes.d.ts +3 -0
- package/lib/types/scenes.d.ts.map +1 -0
- package/lib/types/scenes.js +4 -0
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +182 -26
- package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
- package/lib/types/screens/SessionBrowser.js +30 -15
- package/lib/types/screens/Settings.d.ts +20 -0
- package/lib/types/screens/Settings.d.ts.map +1 -0
- package/lib/types/screens/Settings.js +333 -0
- package/lib/types/screens/StatusLine.js +1 -1
- package/lib/types/sessions/view.d.ts.map +1 -1
- package/lib/types/sessions/view.js +13 -1
- package/lib/types/settings-sections.d.ts +3 -0
- package/lib/types/settings-sections.d.ts.map +1 -0
- package/lib/types/settings-sections.js +4 -0
- package/lib/types/theme.d.ts +12 -0
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +36 -0
- package/lib/types/update.d.ts +21 -7
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +66 -16
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +4 -1
- package/package.json +49 -9
package/lib/types/update.js
CHANGED
|
@@ -155,9 +155,17 @@ function runProcess(command, args, options = {}) {
|
|
|
155
155
|
: [command, args];
|
|
156
156
|
const child = spawn(runCommand, runArgs, {
|
|
157
157
|
env: options.env,
|
|
158
|
-
stdio: 'inherit',
|
|
158
|
+
stdio: options.onStderr === undefined ? 'inherit' : ['inherit', 'inherit', 'pipe'],
|
|
159
159
|
shell: useShell,
|
|
160
160
|
});
|
|
161
|
+
if (options.onStderr !== undefined && child.stderr !== null) {
|
|
162
|
+
const onStderr = options.onStderr;
|
|
163
|
+
child.stderr.on('data', (chunk) => {
|
|
164
|
+
const text = chunk.toString('utf8');
|
|
165
|
+
process.stderr.write(text);
|
|
166
|
+
onStderr(text);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
161
169
|
const finish = (code) => {
|
|
162
170
|
if (settled)
|
|
163
171
|
return;
|
|
@@ -171,35 +179,77 @@ function runProcess(command, args, options = {}) {
|
|
|
171
179
|
child.once('close', code => finish(code ?? 1));
|
|
172
180
|
});
|
|
173
181
|
}
|
|
182
|
+
/** Build the profile-manager command, preferring a preflight-pinned version. */
|
|
183
|
+
export function tuiUpdatePluginArgs(profile, targetVersion) {
|
|
184
|
+
return targetVersion === undefined
|
|
185
|
+
? ['plugin', '--profile', profile, 'update', '--latest', PACKAGE_NAME]
|
|
186
|
+
: ['plugin', '--profile', profile, 'update', `${PACKAGE_NAME}@${targetVersion}`];
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The pnpm Windows tmp-rename race signature (issue #225): pnpm swaps a
|
|
190
|
+
* package directory via a `<name>_tmp_<pid>` staging dir, and a file lock or
|
|
191
|
+
* AV scan makes the scandir/rename fail with ENOENT/EPERM/EBUSY. The failure
|
|
192
|
+
* is transient — the identical command succeeds on retry — but the crashed
|
|
193
|
+
* run leaves a half-updated profile (manifest pins the old version while the
|
|
194
|
+
* lockfile already carries the new snapshot), which presents as "update did
|
|
195
|
+
* nothing" (#209). Genuine resolution errors never carry the `_tmp_<pid>`
|
|
196
|
+
* token, so matching both keeps the retry from masking real failures.
|
|
197
|
+
*/
|
|
198
|
+
export function isTransientUpdateFailure(stderr) {
|
|
199
|
+
return /ENOENT|EPERM|EBUSY/i.test(stderr) && /_tmp_\d+/i.test(stderr);
|
|
200
|
+
}
|
|
174
201
|
/**
|
|
175
202
|
* Update the installed dsh-tui package and restart the same launcher while
|
|
176
203
|
* preserving the active session. The TUI must already be unmounted before
|
|
177
204
|
* this is called so pnpm output cannot corrupt the rendered terminal frame.
|
|
178
205
|
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
* registry still serving the old `latest`).
|
|
206
|
+
* When the preflight registry check resolved an exact target, pass that
|
|
207
|
+
* version to pnpm instead of resolving `latest` a second time. This avoids a
|
|
208
|
+
* stale mirror/dist-tag response between the check and install. If preflight
|
|
209
|
+
* failed, retain the `--latest` fallback: a plain `pnpm update` stays inside
|
|
210
|
+
* the manifest range and can restart unchanged across minor releases.
|
|
185
211
|
*
|
|
186
212
|
* @param sessionId - Session to resume in the replacement process.
|
|
187
213
|
* @param profile - The dsh profile this TUI was launched with; updating any
|
|
188
214
|
* other profile would leave the running install untouched.
|
|
215
|
+
* @param targetVersion - Exact version returned by the preflight registry
|
|
216
|
+
* check, or undefined when that check failed and pnpm should resolve latest.
|
|
189
217
|
* @returns Exit codes for the update run and the replacement process.
|
|
190
218
|
*/
|
|
191
|
-
export async function updateTuiAndRestart(sessionId, profile) {
|
|
219
|
+
export async function updateTuiAndRestart(sessionId, profile, targetVersion) {
|
|
192
220
|
const dsh = process.platform === 'win32' ? 'dsh.cmd' : 'dsh';
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
221
|
+
const updateArgs = tuiUpdatePluginArgs(profile, targetVersion);
|
|
222
|
+
let updateStderr = '';
|
|
223
|
+
const capture = (chunk) => { updateStderr += chunk; };
|
|
224
|
+
let updateCode = await runProcess(dsh, updateArgs, { shell: true, onStderr: capture });
|
|
225
|
+
// Transient Windows tmp-rename race (issue #225): retry the identical
|
|
226
|
+
// command once — it succeeds on a clean second run, and only the
|
|
227
|
+
// `_tmp_<pid>` race signature qualifies, never a real resolution error.
|
|
228
|
+
if (updateCode !== 0 && isTransientUpdateFailure(updateStderr)) {
|
|
229
|
+
process.stderr.write('dsh-tui: transient pnpm failure (Windows tmp-rename race) — retrying once…\n');
|
|
230
|
+
updateStderr = '';
|
|
231
|
+
updateCode = await runProcess(dsh, updateArgs, { shell: true, onStderr: capture });
|
|
232
|
+
}
|
|
201
233
|
if (updateCode !== 0)
|
|
202
234
|
return { updateCode, restartCode: updateCode };
|
|
235
|
+
// Post-update verification (issue #225): pnpm can report success yet leave
|
|
236
|
+
// the profile half-updated (manifest old / lockfile new). Verify against
|
|
237
|
+
// the preflight target; a full `install` reconciles lockfile →
|
|
238
|
+
// node_modules, and if the mismatch survives, stop before restarting into
|
|
239
|
+
// a mixed state and hand the user the exact repair command instead.
|
|
240
|
+
if (targetVersion !== undefined) {
|
|
241
|
+
let installed = installedTuiVersion();
|
|
242
|
+
if (installed !== targetVersion) {
|
|
243
|
+
await runProcess(dsh, ['plugin', '--profile', profile, 'install'], { shell: true });
|
|
244
|
+
installed = installedTuiVersion();
|
|
245
|
+
}
|
|
246
|
+
if (installed !== targetVersion) {
|
|
247
|
+
process.stderr.write(`dsh-tui: update completed but the profile still runs ${installed ?? 'an unreadable version'} ` +
|
|
248
|
+
`(expected ${targetVersion}) — the profile is half-updated. Repair manually with:\n` +
|
|
249
|
+
` dsh plugin --profile ${profile} add ${PACKAGE_NAME}@${targetVersion}\n`);
|
|
250
|
+
return { updateCode: 1, restartCode: 1 };
|
|
251
|
+
}
|
|
252
|
+
}
|
|
203
253
|
const restartCode = await runProcess(process.execPath, [...process.execArgv, ...process.argv.slice(1)], {
|
|
204
254
|
env: {
|
|
205
255
|
...process.env,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,qEAAqE;AACrE,eAAO,MAAM,QAAQ,QAA8B,CAAA;AAEnD,wEAAwE;AACxE,eAAO,MAAM,eAAe,QAA6B,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,GAAE,MAAwB,EAChC,MAAM,GAAE,MAAiB,GACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,qEAAqE;AACrE,eAAO,MAAM,QAAQ,QAA8B,CAAA;AAEnD,wEAAwE;AACxE,eAAO,MAAM,eAAe,QAA6B,CAAA;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,GAAE,MAAwB,EAChC,MAAM,GAAE,MAAiB,GACxB,OAAO,CAOT;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxD,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CAEV"}
|
package/lib/types/utils/paths.js
CHANGED
|
@@ -35,7 +35,10 @@ export const LEGACY_DATA_DIR = join(homeDir(), '.dsh-cc');
|
|
|
35
35
|
export function migrateLegacyDataDir(legacy = LEGACY_DATA_DIR, target = DATA_DIR) {
|
|
36
36
|
if (!existsSync(legacy) || existsSync(target))
|
|
37
37
|
return false;
|
|
38
|
-
|
|
38
|
+
// `filter` forces the JS copy path: the native cpSync fast path fails with
|
|
39
|
+
// EIO (or crashes) on Windows when the destination lives under a home
|
|
40
|
+
// directory whose name contains non-ASCII characters (e.g. `C:\Users\米`).
|
|
41
|
+
cpSync(legacy, target, { recursive: true, filter: () => true });
|
|
39
42
|
return true;
|
|
40
43
|
}
|
|
41
44
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-harness-tui/dsh-tui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Claude Code style interactive TUI front door for DeepSeek Harness agents, built on the ported Ink core.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -37,6 +37,18 @@
|
|
|
37
37
|
"types": "./lib/types/command-trees.d.ts",
|
|
38
38
|
"import": "./lib/types/command-trees.js"
|
|
39
39
|
},
|
|
40
|
+
"./settings-sections": {
|
|
41
|
+
"types": "./lib/types/settings-sections.d.ts",
|
|
42
|
+
"import": "./lib/types/settings-sections.js"
|
|
43
|
+
},
|
|
44
|
+
"./scenes": {
|
|
45
|
+
"types": "./lib/types/scenes.d.ts",
|
|
46
|
+
"import": "./lib/types/scenes.js"
|
|
47
|
+
},
|
|
48
|
+
"./jsx-runtime": {
|
|
49
|
+
"types": "./lib/types/jsx-runtime.d.ts",
|
|
50
|
+
"import": "./lib/types/jsx-runtime.js"
|
|
51
|
+
},
|
|
40
52
|
"./invariant": {
|
|
41
53
|
"types": "./lib/types/dsh-adapter/invariant.d.ts",
|
|
42
54
|
"default": "./lib/types/dsh-adapter/invariant.js"
|
|
@@ -57,16 +69,13 @@
|
|
|
57
69
|
},
|
|
58
70
|
"peerDependencies": {
|
|
59
71
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
60
|
-
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.6"
|
|
61
|
-
},
|
|
62
|
-
"dependencies": {
|
|
63
|
-
"@alcalzone/ansi-tokenize": "^0.3.0",
|
|
64
72
|
"@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
|
|
65
73
|
"@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.6",
|
|
66
74
|
"@deepseek-ai/dsh-agent-presets": "^0.1.0-rc.6",
|
|
67
|
-
"@deepseek-ai/dsh-
|
|
75
|
+
"@deepseek-ai/dsh-atomic-write": "^0.1.0-rc.6",
|
|
68
76
|
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6",
|
|
69
77
|
"@deepseek-ai/dsh-cordis-host-runner": "^0.1.0-rc.6",
|
|
78
|
+
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
|
|
70
79
|
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
71
80
|
"@deepseek-ai/dsh-persona": "^0.1.0-rc.6",
|
|
72
81
|
"@deepseek-ai/dsh-session": "^0.1.0-rc.6",
|
|
@@ -83,14 +92,18 @@
|
|
|
83
92
|
"@deepseek-ai/dsh-user-approval": "^0.1.0-rc.6",
|
|
84
93
|
"@deepseek-ai/dsh-user-questions": "^0.1.0-rc.6",
|
|
85
94
|
"@deepseek-ai/dsh-workspace": "^0.1.0-rc.6",
|
|
86
|
-
"@deepseek-ai/schemastery": "^3.18.1"
|
|
95
|
+
"@deepseek-ai/schemastery": "^3.18.1"
|
|
96
|
+
},
|
|
97
|
+
"dependencies": {
|
|
98
|
+
"@alcalzone/ansi-tokenize": "^0.3.0",
|
|
87
99
|
"auto-bind": "^4.0.0 || ^5.0.0",
|
|
88
100
|
"bidi-js": "^1.0.0",
|
|
89
101
|
"chalk": "^5.0.0",
|
|
90
102
|
"cli-boxes": "^3.0.0 || ^4.0.0",
|
|
91
103
|
"cli-highlight": "^2.1.11",
|
|
92
104
|
"code-excerpt": "^3.0.0 || ^4.0.0",
|
|
93
|
-
"
|
|
105
|
+
"diff": "^8.0.4",
|
|
106
|
+
"dsh-working-activity": "^0.2.6",
|
|
94
107
|
"emoji-regex": "^10.0.0",
|
|
95
108
|
"figures": "^6.1.0",
|
|
96
109
|
"get-east-asian-width": "^1.0.0",
|
|
@@ -113,26 +126,47 @@
|
|
|
113
126
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
114
127
|
"@deepseek-ai/cordis-plugin-include": "^1.0.6",
|
|
115
128
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.2",
|
|
129
|
+
"@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
|
|
130
|
+
"@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.6",
|
|
131
|
+
"@deepseek-ai/dsh-agent-presets": "^0.1.0-rc.6",
|
|
116
132
|
"@deepseek-ai/dsh-atomic-write": "^0.1.0-rc.6",
|
|
117
133
|
"@deepseek-ai/dsh-attachment": "^0.1.0-rc.6",
|
|
118
134
|
"@deepseek-ai/dsh-brand": "^0.1.0-rc.6",
|
|
119
135
|
"@deepseek-ai/dsh-code-runtime": "^0.1.0-rc.6",
|
|
136
|
+
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6",
|
|
137
|
+
"@deepseek-ai/dsh-cordis-host-runner": "^0.1.0-rc.6",
|
|
120
138
|
"@deepseek-ai/dsh-fs": "^0.1.0-rc.6",
|
|
121
139
|
"@deepseek-ai/dsh-home-paths": "^0.1.0-rc.6",
|
|
122
140
|
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
|
|
141
|
+
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
142
|
+
"@deepseek-ai/dsh-persona": "^0.1.0-rc.6",
|
|
123
143
|
"@deepseek-ai/dsh-sandbox": "^0.1.0-rc.6",
|
|
124
144
|
"@deepseek-ai/dsh-sandbox-policy": "^0.1.0-rc.6",
|
|
125
145
|
"@deepseek-ai/dsh-scope": "^0.1.0-rc.6",
|
|
146
|
+
"@deepseek-ai/dsh-session": "^0.1.0-rc.6",
|
|
126
147
|
"@deepseek-ai/dsh-session-persistence": "^0.1.0-rc.6",
|
|
127
148
|
"@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.6",
|
|
128
149
|
"@deepseek-ai/dsh-session-persistence-sqlite": "^0.1.0-rc.6",
|
|
129
150
|
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
|
|
151
|
+
"@deepseek-ai/dsh-skill": "^0.1.0-rc.6",
|
|
152
|
+
"@deepseek-ai/dsh-storage": "^0.1.0-rc.6",
|
|
153
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.0-rc.6",
|
|
154
|
+
"@deepseek-ai/dsh-storage-json": "^0.1.0-rc.6",
|
|
130
155
|
"@deepseek-ai/dsh-subprocess": "^0.1.0-rc.6",
|
|
156
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.6",
|
|
157
|
+
"@deepseek-ai/dsh-terminal": "^0.1.0-rc.6",
|
|
158
|
+
"@deepseek-ai/dsh-terminal-bash": "^0.1.0-rc.6",
|
|
131
159
|
"@deepseek-ai/dsh-timeout": "^0.1.0-rc.6",
|
|
160
|
+
"@deepseek-ai/dsh-tool-ask-user": "^0.1.0-rc.6",
|
|
161
|
+
"@deepseek-ai/dsh-tool-bash-persistent": "^0.1.0-rc.6",
|
|
162
|
+
"@deepseek-ai/dsh-tool-cordis": "^0.1.0-rc.6",
|
|
132
163
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
133
164
|
"@deepseek-ai/dsh-typert-protocol": "^0.1.0-rc.6",
|
|
134
165
|
"@deepseek-ai/dsh-user-approval": "^0.1.0-rc.6",
|
|
166
|
+
"@deepseek-ai/dsh-user-questions": "^0.1.0-rc.6",
|
|
135
167
|
"@deepseek-ai/dsh-web-app": "0.1.0-rc.6",
|
|
168
|
+
"@deepseek-ai/dsh-workspace": "^0.1.0-rc.6",
|
|
169
|
+
"@deepseek-ai/schemastery": "^3.18.1",
|
|
136
170
|
"@types/lodash-es": "^4.17.0",
|
|
137
171
|
"@types/node": "^22.0.0",
|
|
138
172
|
"@types/react": "^19.0.0",
|
|
@@ -152,16 +186,22 @@
|
|
|
152
186
|
"clean": "node scripts/clean-lib.mjs",
|
|
153
187
|
"compile": "npm run clean && tsc -p tsconfig.json",
|
|
154
188
|
"build": "npm run compile && npm run verify:build",
|
|
189
|
+
"dev": "node scripts/dev-test.mjs",
|
|
190
|
+
"dev:copy-config": "node scripts/dev-copy-config.mjs",
|
|
191
|
+
"dev:test": "node scripts/verify-dev-command.mjs && node scripts/dev-test.mjs --no-launch",
|
|
192
|
+
"prompt:debug": "node scripts/read-prompt-debug.mjs",
|
|
155
193
|
"tui": "node --import tsx/esm scripts/run.ts",
|
|
156
194
|
"smoke": "node --import tsx/esm scripts/smoke.tsx",
|
|
157
|
-
"verify:build": "npm run verify:boundary && npm run verify:contract && npm run verify:patch-surface && npm run verify:packaged-presets && npm run verify:minimal-preset-tools && npm run verify:liangshen-bootstrap",
|
|
195
|
+
"verify:build": "npm run verify:boundary && npm run verify:contract && npm run verify:manifest-deps && npm run verify:patch-surface && npm run verify:packaged-presets && npm run verify:minimal-preset-tools && npm run verify:liangshen-bootstrap",
|
|
158
196
|
"verify:boundary": "node --import tsx/esm scripts/verify-adapter-boundary.ts",
|
|
159
197
|
"verify:contract": "node --import tsx/esm scripts/verify-upstream-contract.ts",
|
|
198
|
+
"verify:manifest-deps": "node --import tsx/esm scripts/verify-manifest-deps.ts",
|
|
160
199
|
"verify:patch-surface": "node --import tsx/esm scripts/verify-patch-surface.ts",
|
|
161
200
|
"verify:packaged-presets": "node scripts/verify-packaged-presets.mjs",
|
|
162
201
|
"verify:minimal-preset-tools": "node scripts/verify-minimal-preset-tools.mjs",
|
|
163
202
|
"verify:liangshen-bootstrap": "node scripts/verify-liangshen-bootstrap.mjs",
|
|
164
203
|
"verify:package": "npm pack --dry-run --json --ignore-scripts | node scripts/verify-package.mjs",
|
|
204
|
+
"verify:prompt-debug": "npm run build && node scripts/verify-prompt-debug.mjs",
|
|
165
205
|
"verify:clipboard-image": "node --import tsx/esm scripts/verify-clipboard-image.ts"
|
|
166
206
|
}
|
|
167
207
|
}
|