@xiaoso/dsh-tool-plus 0.1.10-beta.1 → 0.1.10-beta.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/lib/client.js +131 -751
- package/lib/index.mjs +12 -8
- package/lib/{scrapers-DODCPcZW.mjs → scrapers-DSArdJ6N.mjs} +1 -1
- package/lib/types/client/index.d.ts +18 -14
- package/lib/{utils-D80w8vry.mjs → utils-DA8R1_Q8.mjs} +1 -1
- package/package.json +166 -166
- package/lib/types/client/BashPlusCard.d.ts +0 -53
package/lib/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ __installBunShim();
|
|
|
3
3
|
import { n as fs_promises_shim_exports, t as exists } from "./fs-promises-shim-Bx0fpxuk.mjs";
|
|
4
4
|
import { i as setRuntimeLogger, n as systemChromiumCandidatesForTest, r as runtimeLogger } from "./launch-Uq7920ng.mjs";
|
|
5
5
|
import { $ as isEnoent, A as formatCount, C as warn, D as installBunShim, F as $flag, N as $env, O as formatAge, P as $envpos, Q as hasFsCode, U as getAutoQaDbPath, V as VERSION, X as getRemoteDir, Y as getPuppeteerDir, at as findOnPath, b as debug, c as combineSignals, d as $which, et as isEnotdir, it as untilAborted, k as formatBytes$1, l as exec, m as readImageMetadata, nt as peekFile, q as getInstallId, tt as isProbablyBinary, u as render, x as error } from "./src-DUUqyo9y.mjs";
|
|
6
|
-
import { C as truncateToWidth$1, S as replaceTabs, _ as formatCodeFrameLine, a as fetchBinary, b as LRUCache, c as getParallelExtractContent, d as convertFileWithMarkit, f as Settings, g as capParseErrors, h as OMP_DEFAULTS, i as convertWithMarkit, l as ensureTool, m as settings, o as extractWithParallel, p as isSettingsInitialized, s as findParallelApiKey, u as CONVERTIBLE_EXTENSIONS, v as formatParseErrors, x as padding, y as shortenPath } from "./utils-
|
|
6
|
+
import { C as truncateToWidth$1, S as replaceTabs, _ as formatCodeFrameLine, a as fetchBinary, b as LRUCache, c as getParallelExtractContent, d as convertFileWithMarkit, f as Settings, g as capParseErrors, h as OMP_DEFAULTS, i as convertWithMarkit, l as ensureTool, m as settings, o as extractWithParallel, p as isSettingsInitialized, s as findParallelApiKey, u as CONVERTIBLE_EXTENSIONS, v as formatParseErrors, x as padding, y as shortenPath } from "./utils-DA8R1_Q8.mjs";
|
|
7
7
|
import { t as sanitizeText } from "./sanitize-text-BCf5KmCf.mjs";
|
|
8
8
|
import { n as isRecord$5 } from "./type-guards-CttAANEx.mjs";
|
|
9
9
|
import { n as ToolError, r as throwIfAborted, t as ToolAbortError } from "./tool-errors-DoyxivAR.mjs";
|
|
@@ -726,7 +726,8 @@ async function getOrCreateSnapshot(shell, env, timeoutMs = SNAPSHOT_TIMEOUT_MS)
|
|
|
726
726
|
env: spawnEnv,
|
|
727
727
|
timeout: timeoutMs,
|
|
728
728
|
stdio: "ignore",
|
|
729
|
-
killSignal: "SIGKILL"
|
|
729
|
+
killSignal: "SIGKILL",
|
|
730
|
+
windowsHide: true
|
|
730
731
|
});
|
|
731
732
|
await new Promise((resolve, reject) => {
|
|
732
733
|
child.on("close", (code) => {
|
|
@@ -5463,11 +5464,14 @@ function toGitBashPath(p) {
|
|
|
5463
5464
|
}
|
|
5464
5465
|
/** 默认 spawn 实现:收集 stdout,超时 kill 并标记 timedOut。 */
|
|
5465
5466
|
const defaultSpawnDeps = { spawnShell: (shell, args, timeoutMs) => new Promise((resolve, reject) => {
|
|
5466
|
-
const child = spawn(shell, args, {
|
|
5467
|
-
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5467
|
+
const child = spawn(shell, args, {
|
|
5468
|
+
stdio: [
|
|
5469
|
+
"ignore",
|
|
5470
|
+
"pipe",
|
|
5471
|
+
"pipe"
|
|
5472
|
+
],
|
|
5473
|
+
windowsHide: true
|
|
5474
|
+
});
|
|
5471
5475
|
let stdout = "";
|
|
5472
5476
|
let timedOut = false;
|
|
5473
5477
|
const timer = setTimeout(() => {
|
|
@@ -11396,7 +11400,7 @@ let specialHandlersPromise;
|
|
|
11396
11400
|
* requires a special handler, so we keep them out of the cold-startup graph.
|
|
11397
11401
|
*/
|
|
11398
11402
|
function loadSpecialHandlers() {
|
|
11399
|
-
specialHandlersPromise ??= import("./scrapers-
|
|
11403
|
+
specialHandlersPromise ??= import("./scrapers-DSArdJ6N.mjs").then((m) => m.specialHandlers);
|
|
11400
11404
|
return specialHandlersPromise;
|
|
11401
11405
|
}
|
|
11402
11406
|
/**
|
|
@@ -3,7 +3,7 @@ __installBunShim();
|
|
|
3
3
|
import { n as fs_promises_shim_exports } from "./fs-promises-shim-Bx0fpxuk.mjs";
|
|
4
4
|
import { $ as isEnoent, B as USER_AGENT, C as warn, G as getDocsRsCacheDir, N as $env, c as combineSignals, j as formatNumber, k as formatBytes, l as exec, s as Snowflake, y as parseFrontmatter } from "./src-DUUqyo9y.mjs";
|
|
5
5
|
import { W as tryParseJson } from "./utils-BMmwLB0f.mjs";
|
|
6
|
-
import { a as fetchBinary, c as getParallelExtractContent, i as convertWithMarkit, l as ensureTool, m as settings, n as asRecord, o as extractWithParallel, r as asString, s as findParallelApiKey, t as asNumber } from "./utils-
|
|
6
|
+
import { a as fetchBinary, c as getParallelExtractContent, i as convertWithMarkit, l as ensureTool, m as settings, n as asRecord, o as extractWithParallel, r as asString, s as findParallelApiKey, t as asNumber } from "./utils-DA8R1_Q8.mjs";
|
|
7
7
|
import { n as isRecord } from "./type-guards-CttAANEx.mjs";
|
|
8
8
|
import { r as throwIfAborted, t as ToolAbortError } from "./tool-errors-DoyxivAR.mjs";
|
|
9
9
|
import { c as getLocalizedText, d as looksLikeHtml, i as decodeHtmlEntities, l as htmlToBasicMarkdown, o as formatIsoDate, r as buildResult, s as formatMediaDuration, u as loadPage } from "./types-DT9vgZ3S.mjs";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tool-plus settings
|
|
3
|
-
*
|
|
2
|
+
* Tool-plus settings surface, browser half: the plugin's own Settings
|
|
3
|
+
* navigation page and the binding of the `tool-plus` namespace it reads and
|
|
4
|
+
* writes.
|
|
4
5
|
*
|
|
5
6
|
* dsh 0.1.7 replaced the settings surface contract this file used to speak:
|
|
6
7
|
*
|
|
@@ -9,20 +10,23 @@
|
|
|
9
10
|
* form for one Host entry, keyed by the settings namespace (the entry's own
|
|
10
11
|
* id, which this package spells `tool-plus` because a client package must
|
|
11
12
|
* not depend on the Host package that registers it);
|
|
12
|
-
* - the keyed `settings.plugin.item` card slot is gone.
|
|
13
|
-
*
|
|
14
|
-
* (`settings.plugins.tab`)
|
|
15
|
-
* (`
|
|
16
|
-
*
|
|
13
|
+
* - the keyed `settings.plugin.item` card slot is gone. Its 0.1.7
|
|
14
|
+
* replacement — a tab inside the official Plugins section
|
|
15
|
+
* (`settings.plugins.tab`) — is deliberately NOT used: this plugin already
|
|
16
|
+
* ships a full Settings page of its own (`settings.section`, id
|
|
17
|
+
* `tool-plus`) that carries every tool's configuration, so a second entry
|
|
18
|
+
* point inside the Plugins page would only duplicate it and split the one
|
|
19
|
+
* form across two surfaces;
|
|
20
|
+
* - the page registers through `configForms.whileServed([ns], ...)`, so a
|
|
17
21
|
* deployment whose Host does not serve the `tool-plus` namespace shows no
|
|
18
|
-
* trace of
|
|
22
|
+
* trace of it (the official rule: a page for a namespace nobody serves is
|
|
19
23
|
* never dispatched).
|
|
20
24
|
*
|
|
21
|
-
* The
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
25
|
+
* The navigation page (`settings.section`, id `tool-plus`) keeps its order
|
|
26
|
+
* right after the Plugins section. Only officially exported APIs are used (the
|
|
27
|
+
* `dsh-client-ui-slots` slot registry, the `dsh-client-locale` dictionary
|
|
28
|
+
* registration, the `dsh-client-ui-settings` configuration forms, and this
|
|
29
|
+
* package's own section component).
|
|
26
30
|
*
|
|
27
31
|
* @module @xiaoso/dsh-tool-plus/client
|
|
28
32
|
*/
|
|
@@ -36,7 +40,7 @@ export declare const BASH_PLUS_CLIENT_NS = "tool-plus";
|
|
|
36
40
|
/** Required services (cordis fiber inject): slots + locale + the shared configuration forms. */
|
|
37
41
|
export declare const inject: string[];
|
|
38
42
|
/**
|
|
39
|
-
* Mount the tool-plus settings
|
|
43
|
+
* Mount the tool-plus settings page.
|
|
40
44
|
* @param ctx - the browser plugin context.
|
|
41
45
|
*/
|
|
42
46
|
export declare function apply(ctx: ClientContext): void;
|
|
@@ -6267,7 +6267,7 @@ const settings = {
|
|
|
6267
6267
|
};
|
|
6268
6268
|
//#endregion
|
|
6269
6269
|
//#region package.json
|
|
6270
|
-
var version = "0.1.10";
|
|
6270
|
+
var version = "0.1.10-beta.1";
|
|
6271
6271
|
/** `.tmp` files older than this are treated as orphaned writes and swept. */
|
|
6272
6272
|
const TMP_ORPHAN_MAX_AGE_MS = 3e5;
|
|
6273
6273
|
function markitConversionCacheKey(bytes, extension) {
|
package/package.json
CHANGED
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@xiaoso/dsh-tool-plus",
|
|
3
|
-
"description": "Oh My Pi bash runtime ported as a deepseek-harness tool plugin: persistent shell session, output minimizer, managed background jobs, command interception",
|
|
4
|
-
"version": "0.1.10-beta.
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"deepseek-harness",
|
|
8
|
-
"dsh",
|
|
9
|
-
"dsh-plugin",
|
|
10
|
-
"cli",
|
|
11
|
-
"coding-agent",
|
|
12
|
-
"agent-tools",
|
|
13
|
-
"bash",
|
|
14
|
-
"persistent-shell",
|
|
15
|
-
"file-tools",
|
|
16
|
-
"code-search",
|
|
17
|
-
"code-editing",
|
|
18
|
-
"ast-grep",
|
|
19
|
-
"tool-enhancement",
|
|
20
|
-
"oh-my-pi"
|
|
21
|
-
],
|
|
22
|
-
"repository": {
|
|
23
|
-
"type": "git",
|
|
24
|
-
"url": "git+https://github.com/xiaoso456/dsh-tool-plus.git"
|
|
25
|
-
},
|
|
26
|
-
"homepage": "https://github.com/xiaoso456/dsh-tool-plus#readme",
|
|
27
|
-
"bugs": {
|
|
28
|
-
"url": "https://github.com/xiaoso456/dsh-tool-plus/issues"
|
|
29
|
-
},
|
|
30
|
-
"type": "module",
|
|
31
|
-
"publishConfig": {
|
|
32
|
-
"access": "public",
|
|
33
|
-
"tag": "latest"
|
|
34
|
-
},
|
|
35
|
-
"engines": {
|
|
36
|
-
"node": "^22.19.0 || >=24.0.0"
|
|
37
|
-
},
|
|
38
|
-
"main": "lib/index.mjs",
|
|
39
|
-
"types": "lib/types/index.d.ts",
|
|
40
|
-
"exports": {
|
|
41
|
-
".": {
|
|
42
|
-
"types": "./lib/types/index.d.ts",
|
|
43
|
-
"default": "./lib/index.mjs"
|
|
44
|
-
},
|
|
45
|
-
"./client": {
|
|
46
|
-
"types": "./lib/types/client/index.d.ts",
|
|
47
|
-
"default": "./lib/client.js"
|
|
48
|
-
},
|
|
49
|
-
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
50
|
-
"./presets/*.patch.yml": "./presets/*.patch.yml",
|
|
51
|
-
"./package.json": "./package.json"
|
|
52
|
-
},
|
|
53
|
-
"files": [
|
|
54
|
-
"lib",
|
|
55
|
-
"cordis.patch.yml",
|
|
56
|
-
"presets/tool-plus-standard.patch.yml",
|
|
57
|
-
"presets/tool-plus-ptc.patch.yml",
|
|
58
|
-
"scripts/patch-pi-natives.mjs",
|
|
59
|
-
"src/bash-runtime/shell-snapshot-fn-env.sh",
|
|
60
|
-
"README.md",
|
|
61
|
-
"LICENSE",
|
|
62
|
-
"THIRD_PARTY_NOTICES.md"
|
|
63
|
-
],
|
|
64
|
-
"dsh": {
|
|
65
|
-
"manifestVersion": 1,
|
|
66
|
-
"bundle": {
|
|
67
|
-
"patch": [
|
|
68
|
-
"./cordis.patch.yml",
|
|
69
|
-
"./presets/tool-plus-standard.patch.yml",
|
|
70
|
-
"./presets/tool-plus-ptc.patch.yml"
|
|
71
|
-
]
|
|
72
|
-
},
|
|
73
|
-
"client": {
|
|
74
|
-
"inject": [
|
|
75
|
-
"@deepseek-ai/dsh-client-locale",
|
|
76
|
-
"@deepseek-ai/dsh-client-ui-settings"
|
|
77
|
-
],
|
|
78
|
-
"platform": "web"
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"scripts": {
|
|
82
|
-
"build": "tsdown -c tsdown.config.ts && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
83
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
84
|
-
"test": "vitest run --config vitest.config.ts",
|
|
85
|
-
"presets:build": "node scripts/build-preset-patches.mjs",
|
|
86
|
-
"presets:check": "node scripts/build-preset-patches.mjs --check",
|
|
87
|
-
"postinstall": "node scripts/patch-pi-natives.mjs"
|
|
88
|
-
},
|
|
89
|
-
"peerDependencies": {
|
|
90
|
-
"@deepseek-ai/cordis": "~4.0.4",
|
|
91
|
-
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
92
|
-
"@deepseek-ai/dsh-agent-preset": "0.1.7-rc.2",
|
|
93
|
-
"@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2",
|
|
94
|
-
"@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
|
|
95
|
-
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
96
|
-
"@deepseek-ai/dsh-fs": "0.1.7-rc.2",
|
|
97
|
-
"@deepseek-ai/dsh-jobs": "0.1.7-rc.2",
|
|
98
|
-
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
99
|
-
"@deepseek-ai/dsh-sandbox": "0.1.7-rc.2",
|
|
100
|
-
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
101
|
-
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
102
|
-
"@deepseek-ai/dsh-shell": "0.1.7-rc.2",
|
|
103
|
-
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
104
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
|
|
105
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2"
|
|
106
|
-
},
|
|
107
|
-
"optionalPeerDependencies": {
|
|
108
|
-
"sharp": ">=0.33"
|
|
109
|
-
},
|
|
110
|
-
"dependencies": {
|
|
111
|
-
"@deepseek-ai/dsh-brand": "0.1.7-rc.2",
|
|
112
|
-
"@deepseek-ai/dsh-invariants": "0.1.7-rc.2",
|
|
113
|
-
"@deepseek-ai/schemastery": "~3.18.4",
|
|
114
|
-
"@oh-my-pi/omptype": "18.1.17",
|
|
115
|
-
"@oh-my-pi/pi-agent-core": "18.1.17",
|
|
116
|
-
"@oh-my-pi/pi-ai": "18.1.17",
|
|
117
|
-
"@oh-my-pi/pi-catalog": "18.1.17",
|
|
118
|
-
"@oh-my-pi/pi-natives": "18.1.17",
|
|
119
|
-
"@oh-my-pi/pi-tui": "18.1.17",
|
|
120
|
-
"@oh-my-pi/pi-utils": "18.1.17",
|
|
121
|
-
"json5": "^2.2.3",
|
|
122
|
-
"puppeteer-core": "^25.3.0",
|
|
123
|
-
"trash": "10.1.1",
|
|
124
|
-
"yaml": "^2.9.0"
|
|
125
|
-
},
|
|
126
|
-
"devDependencies": {
|
|
127
|
-
"@deepseek-ai/cordis": "~4.0.4",
|
|
128
|
-
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
129
|
-
"@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
|
|
130
|
-
"@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2",
|
|
131
|
-
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
132
|
-
"@deepseek-ai/dsh-client-
|
|
133
|
-
"@deepseek-ai/dsh-client-
|
|
134
|
-
"@deepseek-ai/dsh-
|
|
135
|
-
"@deepseek-ai/dsh-client-
|
|
136
|
-
"@deepseek-ai/dsh-client-ui-
|
|
137
|
-
"@deepseek-ai/dsh-client-ui-
|
|
138
|
-
"@deepseek-ai/dsh-client-ui-
|
|
139
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
|
|
140
|
-
"@deepseek-ai/dsh-client-ui-
|
|
141
|
-
"@deepseek-ai/dsh-client-ui-
|
|
142
|
-
"@deepseek-ai/dsh-
|
|
143
|
-
"@deepseek-ai/dsh-
|
|
144
|
-
"@deepseek-ai/dsh-jobs": "0.1.7-rc.2",
|
|
145
|
-
"@deepseek-ai/dsh-
|
|
146
|
-
"@deepseek-ai/dsh-
|
|
147
|
-
"@deepseek-ai/dsh-
|
|
148
|
-
"@deepseek-ai/dsh-
|
|
149
|
-
"@deepseek-ai/dsh-shell": "0.1.7-rc.2",
|
|
150
|
-
"@deepseek-ai/dsh-
|
|
151
|
-
"@deepseek-ai/dsh-
|
|
152
|
-
"@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.2",
|
|
153
|
-
"@deepseek-ai/dsh-tool-str-replace-editor": "0.1.7-rc.2",
|
|
154
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
155
|
-
"@types/node": "^22.19.0",
|
|
156
|
-
"@types/react": "^19.0.0",
|
|
157
|
-
"@types/react-dom": "^19.0.0",
|
|
158
|
-
"react": "^19.0.0",
|
|
159
|
-
"react-dom": "^19.0.0",
|
|
160
|
-
"sharp": "^0.35.4",
|
|
161
|
-
"tsdown": "^0.22.2",
|
|
162
|
-
"tsx": "^4.22.4",
|
|
163
|
-
"typescript": "^6.0.3",
|
|
164
|
-
"vitest": "^4.1.8"
|
|
165
|
-
}
|
|
166
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@xiaoso/dsh-tool-plus",
|
|
3
|
+
"description": "Oh My Pi bash runtime ported as a deepseek-harness tool plugin: persistent shell session, output minimizer, managed background jobs, command interception",
|
|
4
|
+
"version": "0.1.10-beta.2",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"deepseek-harness",
|
|
8
|
+
"dsh",
|
|
9
|
+
"dsh-plugin",
|
|
10
|
+
"cli",
|
|
11
|
+
"coding-agent",
|
|
12
|
+
"agent-tools",
|
|
13
|
+
"bash",
|
|
14
|
+
"persistent-shell",
|
|
15
|
+
"file-tools",
|
|
16
|
+
"code-search",
|
|
17
|
+
"code-editing",
|
|
18
|
+
"ast-grep",
|
|
19
|
+
"tool-enhancement",
|
|
20
|
+
"oh-my-pi"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/xiaoso456/dsh-tool-plus.git"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/xiaoso456/dsh-tool-plus#readme",
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/xiaoso456/dsh-tool-plus/issues"
|
|
29
|
+
},
|
|
30
|
+
"type": "module",
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public",
|
|
33
|
+
"tag": "latest"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": "^22.19.0 || >=24.0.0"
|
|
37
|
+
},
|
|
38
|
+
"main": "lib/index.mjs",
|
|
39
|
+
"types": "lib/types/index.d.ts",
|
|
40
|
+
"exports": {
|
|
41
|
+
".": {
|
|
42
|
+
"types": "./lib/types/index.d.ts",
|
|
43
|
+
"default": "./lib/index.mjs"
|
|
44
|
+
},
|
|
45
|
+
"./client": {
|
|
46
|
+
"types": "./lib/types/client/index.d.ts",
|
|
47
|
+
"default": "./lib/client.js"
|
|
48
|
+
},
|
|
49
|
+
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
50
|
+
"./presets/*.patch.yml": "./presets/*.patch.yml",
|
|
51
|
+
"./package.json": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"lib",
|
|
55
|
+
"cordis.patch.yml",
|
|
56
|
+
"presets/tool-plus-standard.patch.yml",
|
|
57
|
+
"presets/tool-plus-ptc.patch.yml",
|
|
58
|
+
"scripts/patch-pi-natives.mjs",
|
|
59
|
+
"src/bash-runtime/shell-snapshot-fn-env.sh",
|
|
60
|
+
"README.md",
|
|
61
|
+
"LICENSE",
|
|
62
|
+
"THIRD_PARTY_NOTICES.md"
|
|
63
|
+
],
|
|
64
|
+
"dsh": {
|
|
65
|
+
"manifestVersion": 1,
|
|
66
|
+
"bundle": {
|
|
67
|
+
"patch": [
|
|
68
|
+
"./cordis.patch.yml",
|
|
69
|
+
"./presets/tool-plus-standard.patch.yml",
|
|
70
|
+
"./presets/tool-plus-ptc.patch.yml"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"client": {
|
|
74
|
+
"inject": [
|
|
75
|
+
"@deepseek-ai/dsh-client-locale",
|
|
76
|
+
"@deepseek-ai/dsh-client-ui-settings"
|
|
77
|
+
],
|
|
78
|
+
"platform": "web"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"scripts": {
|
|
82
|
+
"build": "tsdown -c tsdown.config.ts && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
83
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
84
|
+
"test": "vitest run --config vitest.config.ts",
|
|
85
|
+
"presets:build": "node scripts/build-preset-patches.mjs",
|
|
86
|
+
"presets:check": "node scripts/build-preset-patches.mjs --check",
|
|
87
|
+
"postinstall": "node scripts/patch-pi-natives.mjs"
|
|
88
|
+
},
|
|
89
|
+
"peerDependencies": {
|
|
90
|
+
"@deepseek-ai/cordis": "~4.0.4",
|
|
91
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-agent-preset": "0.1.7-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-fs": "0.1.7-rc.2",
|
|
97
|
+
"@deepseek-ai/dsh-jobs": "0.1.7-rc.2",
|
|
98
|
+
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
99
|
+
"@deepseek-ai/dsh-sandbox": "0.1.7-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-shell": "0.1.7-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-tools": "0.1.7-rc.2"
|
|
106
|
+
},
|
|
107
|
+
"optionalPeerDependencies": {
|
|
108
|
+
"sharp": ">=0.33"
|
|
109
|
+
},
|
|
110
|
+
"dependencies": {
|
|
111
|
+
"@deepseek-ai/dsh-brand": "0.1.7-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-invariants": "0.1.7-rc.2",
|
|
113
|
+
"@deepseek-ai/schemastery": "~3.18.4",
|
|
114
|
+
"@oh-my-pi/omptype": "18.1.17",
|
|
115
|
+
"@oh-my-pi/pi-agent-core": "18.1.17",
|
|
116
|
+
"@oh-my-pi/pi-ai": "18.1.17",
|
|
117
|
+
"@oh-my-pi/pi-catalog": "18.1.17",
|
|
118
|
+
"@oh-my-pi/pi-natives": "18.1.17",
|
|
119
|
+
"@oh-my-pi/pi-tui": "18.1.17",
|
|
120
|
+
"@oh-my-pi/pi-utils": "18.1.17",
|
|
121
|
+
"json5": "^2.2.3",
|
|
122
|
+
"puppeteer-core": "^25.3.0",
|
|
123
|
+
"trash": "10.1.1",
|
|
124
|
+
"yaml": "^2.9.0"
|
|
125
|
+
},
|
|
126
|
+
"devDependencies": {
|
|
127
|
+
"@deepseek-ai/cordis": "~4.0.4",
|
|
128
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.7-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
|
|
142
|
+
"@deepseek-ai/dsh-fs-local": "0.1.7-rc.2",
|
|
143
|
+
"@deepseek-ai/dsh-jobs": "0.1.7-rc.2",
|
|
144
|
+
"@deepseek-ai/dsh-jobs-local": "0.1.7-rc.2",
|
|
145
|
+
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
146
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
147
|
+
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
148
|
+
"@deepseek-ai/dsh-shell": "0.1.7-rc.2",
|
|
149
|
+
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
150
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
|
|
151
|
+
"@deepseek-ai/dsh-token-meter": "0.1.7-rc.2",
|
|
152
|
+
"@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.2",
|
|
153
|
+
"@deepseek-ai/dsh-tool-str-replace-editor": "0.1.7-rc.2",
|
|
154
|
+
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
155
|
+
"@types/node": "^22.19.0",
|
|
156
|
+
"@types/react": "^19.0.0",
|
|
157
|
+
"@types/react-dom": "^19.0.0",
|
|
158
|
+
"react": "^19.0.0",
|
|
159
|
+
"react-dom": "^19.0.0",
|
|
160
|
+
"sharp": "^0.35.4",
|
|
161
|
+
"tsdown": "^0.22.2",
|
|
162
|
+
"tsx": "^4.22.4",
|
|
163
|
+
"typescript": "^6.0.3",
|
|
164
|
+
"vitest": "^4.1.8"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The tool-plus settings card — a collapsible disclosure card in the Plugins
|
|
3
|
-
* settings tab styled against the app's `--dsw-alias-*` design tokens and the
|
|
4
|
-
* official card interaction (header button with unsaved badge + rotating
|
|
5
|
-
* chevron, smooth expand/collapse respecting reduced-motion, staged edits that
|
|
6
|
-
* survive collapsing, one Save write, nothing rendered while the namespace is
|
|
7
|
-
* unavailable). Copy is fully localized through the slot-injected `t` seat
|
|
8
|
-
* (`locale: 'tool-plus'`), which re-renders on a locale switch.
|
|
9
|
-
*
|
|
10
|
-
* The card edits the FLAT settings surface (OMP `bash*`-style scalar keys) —
|
|
11
|
-
* the client form only writes scalar fields — grouped as timeouts,
|
|
12
|
-
* backgrounding, output, completion truncation (subdivided into byte and line
|
|
13
|
-
* settings), and behavior. Field definitions, defaults, and copy keys come
|
|
14
|
-
* from the single-source field table (`src/config/fields.ts`), shared with
|
|
15
|
-
* the Tool Plus settings section.
|
|
16
|
-
* @module @xiaoso/dsh-tool-plus/client
|
|
17
|
-
*/
|
|
18
|
-
import { type ReactNode } from 'react';
|
|
19
|
-
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
20
|
-
import type { ConfigForm } from '@deepseek-ai/dsh-client-ui-settings/client';
|
|
21
|
-
import type { OutputRetentionMode, OutputTruncateStrategy } from '../config/settings.ts';
|
|
22
|
-
/** The flat, scalar-editable fields this card edits (mirrors the settings schema). */
|
|
23
|
-
export interface BashPlusSettings {
|
|
24
|
-
enableRunInBackground?: boolean;
|
|
25
|
-
autoBackgroundMs?: number;
|
|
26
|
-
defaultTimeoutMs?: number;
|
|
27
|
-
maxTimeoutMs?: number;
|
|
28
|
-
outputMaxBytes?: number;
|
|
29
|
-
outputSinkTailBytes?: number;
|
|
30
|
-
outputSinkHeadBytes?: number;
|
|
31
|
-
minimizerEnabled?: boolean;
|
|
32
|
-
interceptorEnabled?: boolean;
|
|
33
|
-
nonInteractiveEnv?: boolean;
|
|
34
|
-
snapshotEnabled?: boolean;
|
|
35
|
-
useShellCommandWrapper?: boolean;
|
|
36
|
-
maxBackgroundJobs?: number;
|
|
37
|
-
outputTruncateStrategy?: OutputTruncateStrategy;
|
|
38
|
-
outputTruncateTriggerBytes?: number;
|
|
39
|
-
outputTruncateTriggerLines?: number;
|
|
40
|
-
outputTruncateByteMode?: OutputRetentionMode;
|
|
41
|
-
outputTruncateByteHeadBytes?: number;
|
|
42
|
-
outputTruncateByteTailBytes?: number;
|
|
43
|
-
outputTruncateLineMode?: OutputRetentionMode;
|
|
44
|
-
outputTruncateLineHeadLines?: number;
|
|
45
|
-
outputTruncateLineTailLines?: number;
|
|
46
|
-
}
|
|
47
|
-
/** Business face the slot registration injects: the `tool-plus` entry's shared configuration form. */
|
|
48
|
-
export interface BashPlusCardFace {
|
|
49
|
-
form: ConfigForm<BashPlusSettings>;
|
|
50
|
-
}
|
|
51
|
-
/** Props the renderer binds: the Plugins page runtime seat, the `t` locale seat, and the form face. */
|
|
52
|
-
export type BashPlusCardProps = PropsRuntime<'settings.plugins.tab'> & PropsLocale<'tool-plus'> & BashPlusCardFace;
|
|
53
|
-
export declare function BashPlusCard(props: BashPlusCardProps): ReactNode;
|