@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/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-D80w8vry.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-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, { stdio: [
5467
- "ignore",
5468
- "pipe",
5469
- "pipe"
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-DODCPcZW.mjs").then((m) => m.specialHandlers);
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-D80w8vry.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-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 surfaces, browser half. Registers the plugin's two
3
- * settings pages and binds the `tool-plus` namespace for reads and writes.
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. A plugin's own
13
- * configuration page is now a tab in the Plugins section
14
- * (`settings.plugins.tab`), exactly as the official companion packages
15
- * (`ui-settings-shell` and friends) register theirs;
16
- * - both pages register through `configForms.whileServed([ns], ...)`, so a
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 them (the official rule: a page for a namespace nobody serves is
22
+ * trace of it (the official rule: a page for a namespace nobody serves is
19
23
  * never dispatched).
20
24
  *
21
- * The plugin's own navigation page (`settings.section`, id `tool-plus`) keeps
22
- * its order right after the Plugins section. Only officially exported APIs are
23
- * used (the `dsh-client-ui-slots` slot registry, the `dsh-client-locale`
24
- * dictionary registration, the `dsh-client-ui-settings` configuration forms,
25
- * and this package's own card and section components).
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 surfaces.
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.1",
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-store": "0.1.7-rc.2",
133
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
134
- "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2",
135
- "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
136
- "@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.2",
137
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
138
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
139
- "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
140
- "@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.7-rc.2",
141
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
142
- "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
143
- "@deepseek-ai/dsh-fs-local": "0.1.7-rc.2",
144
- "@deepseek-ai/dsh-jobs": "0.1.7-rc.2",
145
- "@deepseek-ai/dsh-jobs-local": "0.1.7-rc.2",
146
- "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
147
- "@deepseek-ai/dsh-session": "0.1.7-rc.2",
148
- "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
149
- "@deepseek-ai/dsh-shell": "0.1.7-rc.2",
150
- "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
151
- "@deepseek-ai/dsh-system-prompt": "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
+ {
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;