dsh-plugin-lcu 0.3.0 → 0.3.5
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/CHANGELOG.md +73 -0
- package/README.md +12 -6
- package/docs/README.zh.md +7 -4
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/scripts/gen-presets.mjs +0 -285
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.5
|
|
4
|
+
|
|
5
|
+
Diagnostics only — no behaviour change.
|
|
6
|
+
|
|
7
|
+
`onDiag` existed on the connection and nothing passed it, so the control channel's decisions never reached the
|
|
8
|
+
diagnostic log. The client maps "no runtime service is connected" and "nothing is held" to the same empty list,
|
|
9
|
+
and only the connection knows which happened, so a `computer_use_stop` that found nothing was indistinguishable
|
|
10
|
+
in the log from one whose channel was never up.
|
|
11
|
+
|
|
12
|
+
Found by reading a real session's log after a successful browser and computer-use test: the control channel had
|
|
13
|
+
been working there the whole time, and there was no line to say so.
|
|
14
|
+
|
|
15
|
+
## 0.3.4
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
**The plugin no longer installs, invokes or depends on LCU.** It locates and validates the ChatGPT application
|
|
19
|
+
itself, builds the environment the computer-use runtime expects, and starts the application's own entry point.
|
|
20
|
+
|
|
21
|
+
- **Direct launch.** `src/app.ts` resolves the application, refuses files another account could replace, and
|
|
22
|
+
computes the runtime environment — its own `node` and `node_repl`, its module roots, trusted code paths, the
|
|
23
|
+
API surface, and the signed helper the macOS native pipe launches. No second interpreter: the Python 3.12+
|
|
24
|
+
requirement is gone, and attaching is roughly an order of magnitude faster.
|
|
25
|
+
- **Turn cleanup through the application's own IPC.** `helper/sky-service.mjs` is loaded as the runtime's `sky`
|
|
26
|
+
trusted service. It forwards every request to the application's service unchanged and adds the one thing the
|
|
27
|
+
runtime has no handler for: the turn-ended hook that releases a per-application Stop. It deliberately omits
|
|
28
|
+
the step that signalled a supervisor process and spawned the signed client with a `turn-ended` argument —
|
|
29
|
+
that needs Apple Events, which macOS refuses a hardened-runtime harness, so it always timed out. The
|
|
30
|
+
application's own IPC needs no Apple Events and settles in tens of milliseconds.
|
|
31
|
+
- **A Stop is released by the turn that asked for it.** `computer_use_stop` now works: the plugin serves the
|
|
32
|
+
runtime's control channel and relays `status` and `stop` to the wrapper, which answers them from inside the
|
|
33
|
+
runtime. Verified end to end — a Stop refuses the application for the turn that asked for it, and the next
|
|
34
|
+
turn can use it again.
|
|
35
|
+
- **A long session stays on one generation.** The runtime is executed from files the application replaces when
|
|
36
|
+
it updates, so a facade compares the application's fingerprint before every call and reconnects when it
|
|
37
|
+
changes, carrying the session identity across the replacement.
|
|
38
|
+
- **The preset generator moved out.** It generates presets that serve more than one plugin, and the region it
|
|
39
|
+
writes is also written by DSH's settings UI, so it is now
|
|
40
|
+
[its own project](https://github.com/ckanner/dsh-preset-generator). `scripts/gen-presets.mjs` and the
|
|
41
|
+
`presets` script are gone from this package.
|
|
42
|
+
- Fixed: a per-connection temporary directory leaked on every path that had to signal the child rather than
|
|
43
|
+
have it exit on stdin.
|
|
44
|
+
- Fixed: an unreadable application fingerprint was treated as a change, which started a second runtime for a
|
|
45
|
+
bundle that was merely unreadable for a moment mid-update.
|
|
46
|
+
|
|
47
|
+
### A note on the version numbers
|
|
48
|
+
|
|
49
|
+
`v0.3.0` through `v0.3.3` are **git tags**, each with its own content, and npm's `0.3.0` is not any of them:
|
|
50
|
+
it was published from the tree *after* `v0.3.3`, and so contains everything below plus the work above. The
|
|
51
|
+
next number that is unambiguous is `0.3.4`, which is this release.
|
|
52
|
+
|
|
53
|
+
## 0.3.3
|
|
54
|
+
|
|
55
|
+
Reverted the Codex model-selection change from 0.3.2. `modelSelectionSettings: true` cannot be enabled on the
|
|
56
|
+
Codex row: the provider declares `NO_START_CAPABILITIES`, which has no `agentOptions`, and `tool-subagent`
|
|
57
|
+
asserts that pairing at load — the row vanished with no tool and no error. The "never drop a preset" guardrail
|
|
58
|
+
from 0.3.2 is kept.
|
|
59
|
+
|
|
60
|
+
## 0.3.2
|
|
61
|
+
|
|
62
|
+
Added the guardrail that a run never drops a preset the profile already defines, and `--daily-only` refuses when
|
|
63
|
+
the file already has `heavy`. Also attempted the Codex model surface, reverted in 0.3.3.
|
|
64
|
+
|
|
65
|
+
## 0.3.1
|
|
66
|
+
|
|
67
|
+
The `apply` log line records the two lists that decide whether an unattended run can proceed, so an empty
|
|
68
|
+
allowlist can be told from a populated one without opening the patch layers.
|
|
69
|
+
|
|
70
|
+
## 0.3.0
|
|
71
|
+
|
|
72
|
+
An application can be pre-approved with `allowedApps`, so an unattended run — where an unanswered question is a
|
|
73
|
+
refusal — can proceed without a person at the keyboard.
|
package/README.md
CHANGED
|
@@ -75,22 +75,28 @@ manager (Settings ▸ Plugins) instead, which runs the same pnpm operation.
|
|
|
75
75
|
### 2. Generate the presets
|
|
76
76
|
|
|
77
77
|
DSH agent presets have **no inheritance**: a preset's `config.plugins` is its complete plugin list, and
|
|
78
|
-
a patch replaces a whole entry rather than merging into it. So a custom preset must restate its base
|
|
79
|
-
|
|
78
|
+
a patch replaces a whole entry rather than merging into it. So a custom preset must restate its base —
|
|
79
|
+
and the base ships inside the application and changes when DSH is upgraded.
|
|
80
|
+
|
|
81
|
+
That restatement is **not part of this package**. It serves more than one plugin, and the region it writes
|
|
82
|
+
is also written by DSH's own settings UI, so it lives on its own:
|
|
80
83
|
|
|
81
84
|
```sh
|
|
82
|
-
|
|
85
|
+
git clone https://github.com/ckanner/dsh-preset-generator
|
|
86
|
+
node dsh-preset-generator/src/gen-presets.mjs --profile ~/.dsh/profiles/<profile>
|
|
83
87
|
```
|
|
84
88
|
|
|
85
89
|
This writes a marked block into that profile's `cordis.patch.yml` containing two presets:
|
|
86
90
|
|
|
87
91
|
| Preset | Base | Adds |
|
|
88
92
|
|---|---|---|
|
|
89
|
-
| `daily` | the shipped `ptc` preset |
|
|
93
|
+
| `daily` | the shipped `ptc` preset | a Codex delegation provider of its own |
|
|
90
94
|
| `heavy` | the same, with `tool-presentation: both` | everything above, and this plugin attaches |
|
|
91
95
|
|
|
92
|
-
Re-run it after a DSH upgrade so the copies keep up. `--
|
|
93
|
-
without writing, and `--out FILE` writes somewhere else.
|
|
96
|
+
Re-run it after a DSH upgrade so the copies keep up. `--daily-only` emits just `daily`, `--dry-run`
|
|
97
|
+
prints without writing, and `--out FILE` writes somewhere else. The official `tool-subagent-codex` row
|
|
98
|
+
stays disabled, as the base ships it: a separate provider registers its own `subagent_codex`, and two
|
|
99
|
+
rows registering that name in one scope collide.
|
|
94
100
|
|
|
95
101
|
> `heavy` sets the tool presentation to `both` on purpose. In pure `ptc` presentation the model only
|
|
96
102
|
> sees `run_code`, so `js` would have to be nested as a JavaScript string inside another JavaScript
|
package/docs/README.zh.md
CHANGED
|
@@ -65,20 +65,23 @@ dsh plugin --profile <profile> add dsh-plugin-lcu
|
|
|
65
65
|
|
|
66
66
|
### 2. 生成 preset
|
|
67
67
|
|
|
68
|
-
DSH 的 agent preset **没有继承**:一个 preset 的 `config.plugins` 就是它完整的插件列表,而 patch 是**整体替换**一个条目而不是合并进去。所以自定义 preset
|
|
68
|
+
DSH 的 agent preset **没有继承**:一个 preset 的 `config.plugins` 就是它完整的插件列表,而 patch 是**整体替换**一个条目而不是合并进去。所以自定义 preset 必须重述它的基底 —— 而基底随应用一起发布,会随 DSH 升级变化。
|
|
69
|
+
|
|
70
|
+
这份"重述"**不属于本包**。它服务的不止一个插件,而它写入的那个区间**DSH 自己的设置 UI 也会写**,所以它独立在外:
|
|
69
71
|
|
|
70
72
|
```sh
|
|
71
|
-
|
|
73
|
+
git clone https://github.com/ckanner/dsh-preset-generator
|
|
74
|
+
node dsh-preset-generator/src/gen-presets.mjs --profile ~/.dsh/profiles/<profile>
|
|
72
75
|
```
|
|
73
76
|
|
|
74
77
|
它会在该 profile 的 `cordis.patch.yml` 里写一个带标记的块,含两个 preset:
|
|
75
78
|
|
|
76
79
|
| preset | 基底 | 增加 |
|
|
77
80
|
|---|---|---|
|
|
78
|
-
| `daily` | 自带的 `ptc` preset |
|
|
81
|
+
| `daily` | 自带的 `ptc` preset | 一套自己的 Codex 委派 provider |
|
|
79
82
|
| `heavy` | 同上,且 `tool-presentation: both` | 以上全部,且本插件接入 |
|
|
80
83
|
|
|
81
|
-
DSH 升级后重跑一次,让副本跟上。`--
|
|
84
|
+
DSH 升级后重跑一次,让副本跟上。`--daily-only` 只生成 `daily`;`--dry-run` 只打印不写;`--out FILE` 写到别处。官方的 `tool-subagent-codex` 行保持**禁用**(和基底一致):另有一套 provider 自己注册 `subagent_codex`,而两行在同一个 scope 里注册同名工具会冲突。
|
|
82
85
|
|
|
83
86
|
> `heavy` 特意把工具呈现设为 `both`。纯 `ptc` 呈现下模型只看得到 `run_code`,`js` 就得嵌成另一个 JavaScript 程序里的字符串。`both` 让 `js` 可以被直接调用。
|
|
84
87
|
|
package/lib/index.js
CHANGED
|
@@ -208,6 +208,11 @@ export function apply(ctx, config) {
|
|
|
208
208
|
env: plan.env,
|
|
209
209
|
onElicitation: (request, elicitSignal) => presentApproval(agent, request, elicitSignal),
|
|
210
210
|
onStderr: (line) => { ctx.logger.debug(`lcu: ${line}`); },
|
|
211
|
+
// The control channel decides whether a per-application Stop is reachable
|
|
212
|
+
// at all, and its decisions were invisible: `onDiag` existed on the
|
|
213
|
+
// connection but nothing passed it, so the one subsystem that can report
|
|
214
|
+
// "no service is connected" said nothing anywhere.
|
|
215
|
+
onDiag: (message) => { diag(` ${message}`); },
|
|
211
216
|
});
|
|
212
217
|
await opened.connect(signal);
|
|
213
218
|
first ??= opened;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAUxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;AAyB/C,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA8BD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAUxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;AAyB/C,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA8BD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA8WxD;AAYD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-lcu",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Drive the desktop and Chrome from DeepSeek Harness using the computer-use runtime inside the ChatGPT desktop application.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh-plugin",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"./package.json": "./package.json"
|
|
38
38
|
},
|
|
39
39
|
"files": [
|
|
40
|
+
"CHANGELOG.md",
|
|
40
41
|
"lib",
|
|
41
42
|
"helper",
|
|
42
43
|
"cordis.patch.yml",
|
|
@@ -60,7 +61,6 @@
|
|
|
60
61
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
61
62
|
"test": "node --test \"tests/*.spec.ts\"",
|
|
62
63
|
"prepare": "npm run build",
|
|
63
|
-
"presets": "node scripts/gen-presets.mjs",
|
|
64
64
|
"probe": "node scripts/probe-lcu.mjs",
|
|
65
65
|
"update-codex": "node scripts/update-codex.mjs"
|
|
66
66
|
},
|
package/scripts/gen-presets.mjs
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* gen-presets.mjs — derive DSH agent presets from the installed `ptc` preset.
|
|
4
|
-
*
|
|
5
|
-
* Why this exists
|
|
6
|
-
* ---------------
|
|
7
|
-
* DSH agent presets have **no inheritance** (`config.plugins` is a complete
|
|
8
|
-
* child-plugin list) and `cordis.patch.yml` patches **replace** a whole entry's
|
|
9
|
-
* config rather than deep-merging it. So a custom preset has to restate the full
|
|
10
|
-
* plugin list of whatever it is based on. This script reads that base list
|
|
11
|
-
* straight out of the *installed* app and regenerates our preset rows, so a DSH
|
|
12
|
-
* upgrade is one re-run instead of a hand merge.
|
|
13
|
-
*
|
|
14
|
-
* It is deliberately dependency-free (plain Node, no YAML library): the base
|
|
15
|
-
* file is copied line-for-line and only surgically edited, and every expected
|
|
16
|
-
* edit is asserted — if a DSH upgrade changes the shape, this script fails loudly
|
|
17
|
-
* instead of emitting a subtly wrong preset.
|
|
18
|
-
*
|
|
19
|
-
* Usage
|
|
20
|
-
* -----
|
|
21
|
-
* node scripts/gen-presets.mjs # write into the desktop profile patch
|
|
22
|
-
* node scripts/gen-presets.mjs --dry-run # print, write nothing
|
|
23
|
-
* node scripts/gen-presets.mjs --out FILE # write to FILE instead
|
|
24
|
-
* node scripts/gen-presets.mjs # emits daily and heavy
|
|
25
|
-
* node scripts/gen-presets.mjs --daily-only # refuses if the file already has heavy
|
|
26
|
-
* node scripts/gen-presets.mjs --asar PATH # override the app.asar path
|
|
27
|
-
* node scripts/gen-presets.mjs --profile DIR # override the profile directory
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
import { closeSync, openSync, readFileSync, readSync, writeFileSync } from 'node:fs'
|
|
31
|
-
import { homedir } from 'node:os'
|
|
32
|
-
import { join } from 'node:path'
|
|
33
|
-
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
// Defaults
|
|
36
|
-
// ---------------------------------------------------------------------------
|
|
37
|
-
|
|
38
|
-
const DEFAULT_ASAR =
|
|
39
|
-
'/Applications/DeepSeek Harness.app/Contents/Resources/app.asar'
|
|
40
|
-
const BASE_PRESET = 'dsh/node_modules/@deepseek-ai/dsh-web-app/presets/ptc.patch.yml'
|
|
41
|
-
const DEFAULT_PROFILE = join(homedir(), '.dsh', 'profiles', 'desktop')
|
|
42
|
-
|
|
43
|
-
const BEGIN = '# >>> BEGIN generated presets (scripts/gen-presets.mjs) >>>'
|
|
44
|
-
const END = '# <<< END generated presets <<<'
|
|
45
|
-
|
|
46
|
-
/** The two presets this script owns. `daily` is a faithful PTC + Codex; `heavy`
|
|
47
|
-
* flips the tool presentation to `both` so LCU's `js` is callable natively
|
|
48
|
-
* instead of being nested inside a `run_code` program. */
|
|
49
|
-
const PRESETS = {
|
|
50
|
-
daily: {
|
|
51
|
-
id: 'daily',
|
|
52
|
-
name: '日常',
|
|
53
|
-
description: '日常编码:PTC 程序化工具调用 + Codex 委派',
|
|
54
|
-
order: 5,
|
|
55
|
-
presentation: null, // keep the base's `ptc`
|
|
56
|
-
enable: ['tool-subagent-codex'],
|
|
57
|
-
append: [],
|
|
58
|
-
},
|
|
59
|
-
heavy: {
|
|
60
|
-
id: 'heavy',
|
|
61
|
-
name: '重活',
|
|
62
|
-
description: '超前/困难的重活:需要 Computer 或 Browser 时用',
|
|
63
|
-
order: 6,
|
|
64
|
-
// `both` so LCU's `js` stays callable natively: in pure `ptc` presentation
|
|
65
|
-
// the model would have to nest a whole CUA program inside a run_code string.
|
|
66
|
-
// No tool row is added here — `dsh-plugin-lcu` is mounted at the root and
|
|
67
|
-
// registers its tools per Agent by checking this preset's id.
|
|
68
|
-
presentation: 'both',
|
|
69
|
-
enable: ['tool-subagent-codex'],
|
|
70
|
-
append: [],
|
|
71
|
-
},
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// ---------------------------------------------------------------------------
|
|
75
|
-
// Minimal asar reader (Electron's asar is a simple header + flat blob)
|
|
76
|
-
// ---------------------------------------------------------------------------
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Read one file out of an asar archive without Electron.
|
|
80
|
-
* @param asarPath - absolute path to the `.asar` file
|
|
81
|
-
* @param innerPath - slash-separated path inside the archive
|
|
82
|
-
* @returns the file contents
|
|
83
|
-
*/
|
|
84
|
-
function readAsarFile(asarPath, innerPath) {
|
|
85
|
-
const fd = openSync(asarPath, 'r')
|
|
86
|
-
try {
|
|
87
|
-
const head = Buffer.alloc(16)
|
|
88
|
-
readSync(fd, head, 0, 16, 0)
|
|
89
|
-
const baseOffset = 8 + head.readUInt32LE(4)
|
|
90
|
-
const jsonSize = head.readUInt32LE(12)
|
|
91
|
-
const json = Buffer.alloc(jsonSize)
|
|
92
|
-
readSync(fd, json, 0, jsonSize, 16)
|
|
93
|
-
let node = JSON.parse(json.toString('utf8'))
|
|
94
|
-
for (const segment of innerPath.split('/').filter(Boolean)) {
|
|
95
|
-
node = node.files?.[segment]
|
|
96
|
-
if (node === undefined) throw new Error(`not in archive: ${innerPath}`)
|
|
97
|
-
}
|
|
98
|
-
if (node.files !== undefined) throw new Error(`is a directory: ${innerPath}`)
|
|
99
|
-
const buf = Buffer.alloc(node.size)
|
|
100
|
-
readSync(fd, buf, 0, node.size, baseOffset + Number(node.offset))
|
|
101
|
-
return buf
|
|
102
|
-
} finally {
|
|
103
|
-
closeSync(fd)
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// ---------------------------------------------------------------------------
|
|
108
|
-
// Line surgery
|
|
109
|
-
// ---------------------------------------------------------------------------
|
|
110
|
-
|
|
111
|
-
/** Indentation (0-based column of the first non-space char); -1 for blank lines. */
|
|
112
|
-
const indentOf = (line) => (line.trim() === '' ? -1 : line.search(/\S/))
|
|
113
|
-
|
|
114
|
-
/** Index of the child row `- id: <rowId>` inside a plugin list. */
|
|
115
|
-
function findRow(lines, rowId) {
|
|
116
|
-
const index = lines.findIndex((line) => line.trim().startsWith(`- id: ${rowId}`))
|
|
117
|
-
if (index < 0) throw new Error(`plugin row not found: ${rowId}`)
|
|
118
|
-
return index
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Iterate the direct/indirect body lines of the row starting at `start`,
|
|
123
|
-
* stopping at the next row or any line dedented to the row's own level.
|
|
124
|
-
*/
|
|
125
|
-
function* body(lines, start) {
|
|
126
|
-
const base = indentOf(lines[start])
|
|
127
|
-
for (let i = start + 1; i < lines.length; i += 1) {
|
|
128
|
-
const ind = indentOf(lines[i])
|
|
129
|
-
if (ind === -1) continue
|
|
130
|
-
if (ind <= base) return
|
|
131
|
-
yield i
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Remove `disabled: true` from one row, turning it on.
|
|
137
|
-
* @returns a new line array
|
|
138
|
-
*/
|
|
139
|
-
function enableRow(lines, rowId) {
|
|
140
|
-
const start = findRow(lines, rowId)
|
|
141
|
-
for (const i of body(lines, start)) {
|
|
142
|
-
if (lines[i].trim().startsWith('disabled:')) {
|
|
143
|
-
return lines.filter((_, k) => k !== i)
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return lines // already enabled — idempotent
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/** Rewrite `mode:` inside the `tool-presentation` row. */
|
|
150
|
-
function setPresentationMode(lines, mode) {
|
|
151
|
-
const start = findRow(lines, 'tool-presentation')
|
|
152
|
-
for (const i of body(lines, start)) {
|
|
153
|
-
if (/^\s*mode:\s*\S+\s*$/.test(lines[i])) {
|
|
154
|
-
const next = [...lines]
|
|
155
|
-
next[i] = lines[i].replace(/mode:\s*\S+\s*$/, `mode: ${mode}`)
|
|
156
|
-
return next
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
throw new Error('tool-presentation row has no `mode:` field')
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/** Extract the `plugins:` sub-tree (the row list) from a preset patch file. */
|
|
163
|
-
function extractPlugins(lines) {
|
|
164
|
-
const index = lines.findIndex((line) => /^\s*plugins:\s*$/.test(line))
|
|
165
|
-
if (index < 0) throw new Error('base preset has no `plugins:` key')
|
|
166
|
-
const base = indentOf(lines[index])
|
|
167
|
-
const out = []
|
|
168
|
-
for (let i = index + 1; i < lines.length; i += 1) {
|
|
169
|
-
const ind = indentOf(lines[i])
|
|
170
|
-
if (ind !== -1 && ind <= base) break
|
|
171
|
-
out.push(lines[i])
|
|
172
|
-
}
|
|
173
|
-
if (out.every((line) => line.trim() === '')) throw new Error('base `plugins:` is empty')
|
|
174
|
-
while (out.length > 0 && out[out.length - 1].trim() === '') out.pop()
|
|
175
|
-
return out
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// ---------------------------------------------------------------------------
|
|
179
|
-
// Preset rendering
|
|
180
|
-
// ---------------------------------------------------------------------------
|
|
181
|
-
|
|
182
|
-
function renderPreset(spec, basePlugins) {
|
|
183
|
-
const plugins = spec.enable.reduce(enableRow, [...basePlugins])
|
|
184
|
-
const withMode = spec.presentation === null
|
|
185
|
-
? plugins
|
|
186
|
-
: setPresentationMode(plugins, spec.presentation)
|
|
187
|
-
const out = [
|
|
188
|
-
` - id: preset-${spec.id}`,
|
|
189
|
-
" name: '@deepseek-ai/dsh-agent-preset'",
|
|
190
|
-
' config:',
|
|
191
|
-
` id: ${spec.id}`,
|
|
192
|
-
` name: '${spec.name}'`,
|
|
193
|
-
` description: '${spec.description}'`,
|
|
194
|
-
` order: ${spec.order}`,
|
|
195
|
-
' plugins:',
|
|
196
|
-
...withMode,
|
|
197
|
-
...spec.append,
|
|
198
|
-
]
|
|
199
|
-
return out
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
// ---------------------------------------------------------------------------
|
|
203
|
-
// Main
|
|
204
|
-
// ---------------------------------------------------------------------------
|
|
205
|
-
|
|
206
|
-
function parseArgs(argv) {
|
|
207
|
-
const opts = {
|
|
208
|
-
dryRun: false,
|
|
209
|
-
// Default to the full set: this script ships with dsh-plugin-lcu, and
|
|
210
|
-
// `heavy` is the preset that attaches it. Defaulting to daily-only meant a
|
|
211
|
-
// routine re-run after a DSH upgrade silently deleted the preset computer
|
|
212
|
-
// use depends on.
|
|
213
|
-
withHeavy: true,
|
|
214
|
-
out: undefined,
|
|
215
|
-
asar: DEFAULT_ASAR,
|
|
216
|
-
profile: DEFAULT_PROFILE,
|
|
217
|
-
}
|
|
218
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
219
|
-
const arg = argv[i]
|
|
220
|
-
if (arg === '--dry-run') opts.dryRun = true
|
|
221
|
-
else if (arg === '--with-heavy') opts.withHeavy = true
|
|
222
|
-
else if (arg === '--daily-only') opts.withHeavy = false
|
|
223
|
-
else if (arg === '--out') opts.out = argv[++i]
|
|
224
|
-
else if (arg === '--asar') opts.asar = argv[++i]
|
|
225
|
-
else if (arg === '--profile') opts.profile = argv[++i]
|
|
226
|
-
else throw new Error(`unknown argument: ${arg}`)
|
|
227
|
-
}
|
|
228
|
-
return opts
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
function buildBlock(baseLines, { withHeavy }) {
|
|
232
|
-
const basePlugins = extractPlugins(baseLines)
|
|
233
|
-
const specs = withHeavy ? [PRESETS.daily, PRESETS.heavy] : [PRESETS.daily]
|
|
234
|
-
const lines = [BEGIN, '- insert:']
|
|
235
|
-
for (const spec of specs) lines.push(...renderPreset(spec, basePlugins))
|
|
236
|
-
lines.push(END)
|
|
237
|
-
return { block: lines.join('\n'), basePlugins, specs }
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/** Replace the marked block in place, or append one. */
|
|
241
|
-
function spliceBlock(text, block) {
|
|
242
|
-
const begin = text.indexOf(BEGIN)
|
|
243
|
-
const end = text.indexOf(END)
|
|
244
|
-
if (begin >= 0 && end > begin) {
|
|
245
|
-
return text.slice(0, begin) + block + text.slice(end + END.length)
|
|
246
|
-
}
|
|
247
|
-
const separator = text.endsWith('\n') ? '\n' : '\n\n'
|
|
248
|
-
return `${text}${separator}${block}\n`
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function main() {
|
|
252
|
-
const opts = parseArgs(process.argv.slice(2))
|
|
253
|
-
const baseLines = readAsarFile(opts.asar, BASE_PRESET).toString('utf8').split('\n')
|
|
254
|
-
const { block, basePlugins, specs } = buildBlock(baseLines, opts)
|
|
255
|
-
const verb = opts.dryRun ? 'would write' : 'wrote'
|
|
256
|
-
const rowCount = basePlugins.filter((line) => /^\s*- id: /.test(line)).length
|
|
257
|
-
|
|
258
|
-
if (opts.dryRun) {
|
|
259
|
-
process.stdout.write(`${block}\n`)
|
|
260
|
-
} else {
|
|
261
|
-
const target = opts.out ?? join(opts.profile, 'cordis.patch.yml')
|
|
262
|
-
const before = readFileSync(target, 'utf8')
|
|
263
|
-
// Never delete a preset this file already had. A re-run is the documented
|
|
264
|
-
// response to a DSH upgrade, and it must not be able to take away the mode a
|
|
265
|
-
// user relies on as a side effect of an argument they did not pass.
|
|
266
|
-
for (const preset of ['daily', 'heavy']) {
|
|
267
|
-
const had = before.includes(`- id: preset-${preset}`)
|
|
268
|
-
const keeps = block.includes(`- id: preset-${preset}`)
|
|
269
|
-
if (had && !keeps) {
|
|
270
|
-
throw new Error(
|
|
271
|
-
`${target} already defines preset-${preset} and this run would remove it. `
|
|
272
|
-
+ 'Re-run without --daily-only to keep every preset the file has.',
|
|
273
|
-
)
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
writeFileSync(target, spliceBlock(before, block), { mode: 0o600 })
|
|
277
|
-
process.stderr.write(`${verb} ${target}\n`)
|
|
278
|
-
}
|
|
279
|
-
process.stderr.write(
|
|
280
|
-
`base: ${BASE_PRESET} (${rowCount} top-level rows)\n`
|
|
281
|
-
+ `presets: ${specs.map((s) => s.id).join(', ')}\n`,
|
|
282
|
-
)
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
main()
|