@dsh-enhanced/dsh-rsi-cli 0.1.48 → 0.1.49
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 +27 -8
- package/lib/host-runtime.d.ts +36 -0
- package/lib/host-runtime.d.ts.map +1 -0
- package/lib/host-runtime.js +400 -0
- package/lib/host-runtime.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -15
- package/lib/index.js.map +1 -1
- package/lib/install-host.d.ts +49 -0
- package/lib/install-host.d.ts.map +1 -0
- package/lib/install-host.js +326 -0
- package/lib/install-host.js.map +1 -0
- package/lib/install.d.ts +10 -2
- package/lib/install.d.ts.map +1 -1
- package/lib/install.js +184 -28
- package/lib/install.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
package/lib/install.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import { chmod, mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { chmod, lstat, mkdtemp, readFile, readlink, realpath, rm, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
4
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
5
5
|
import { PurgeError } from "./purge.js";
|
|
6
|
+
import { prepareHostUpdatePlan, prepareInstallHostEnvironment } from "./install-host.js";
|
|
7
|
+
import { resolveDshHome, TRANSACTION_SUFFIX } from "./paths.js";
|
|
6
8
|
const INSTALL_BASE_URL = 'https://raw.githubusercontent.com/22-ai-00/dsh-enhanced';
|
|
7
9
|
export const defaultExecutor = {
|
|
10
|
+
prepareHost: prepareInstallHostEnvironment,
|
|
11
|
+
prepareHostUpdate: prepareHostUpdatePlan,
|
|
8
12
|
async download(url) {
|
|
9
13
|
const response = await fetch(url, { redirect: 'follow' });
|
|
10
14
|
if (!response.ok)
|
|
@@ -19,8 +23,67 @@ export const defaultExecutor = {
|
|
|
19
23
|
});
|
|
20
24
|
},
|
|
21
25
|
};
|
|
26
|
+
async function canonicalMissingAllowed(path) {
|
|
27
|
+
let cursor = resolve(path);
|
|
28
|
+
const suffix = [];
|
|
29
|
+
const visited = new Set();
|
|
30
|
+
for (;;) {
|
|
31
|
+
if (visited.has(cursor))
|
|
32
|
+
throw new PurgeError('DSH_HOME 符号链接成环。');
|
|
33
|
+
visited.add(cursor);
|
|
34
|
+
try {
|
|
35
|
+
const entry = await lstat(cursor);
|
|
36
|
+
if (entry.isSymbolicLink()) {
|
|
37
|
+
const target = await readlink(cursor);
|
|
38
|
+
cursor = isAbsolute(target) ? resolve(target) : resolve(dirname(cursor), target);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
return resolve(await realpath(cursor), ...suffix);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error.code !== 'ENOENT')
|
|
45
|
+
throw error;
|
|
46
|
+
const parent = dirname(cursor);
|
|
47
|
+
if (parent === cursor)
|
|
48
|
+
throw error;
|
|
49
|
+
suffix.unshift(cursor.slice(parent.length + (parent === '/' ? 0 : 1)));
|
|
50
|
+
cursor = parent;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function pendingHostRecovery(homePath) {
|
|
55
|
+
const path = `${homePath}${TRANSACTION_SUFFIX}/manifest.json`;
|
|
56
|
+
const info = await lstat(path).catch(error => {
|
|
57
|
+
if (error.code === 'ENOENT')
|
|
58
|
+
return undefined;
|
|
59
|
+
throw error;
|
|
60
|
+
});
|
|
61
|
+
if (info === undefined)
|
|
62
|
+
return undefined;
|
|
63
|
+
if (!info.isFile() || info.isSymbolicLink() || info.nlink !== 1 || info.uid !== process.getuid?.()
|
|
64
|
+
|| (info.mode & 0o077) !== 0 || info.size > 2 * 1024 * 1024) {
|
|
65
|
+
throw new PurgeError('已有 Host 事务 manifest 文件不安全,拒绝继续升级。');
|
|
66
|
+
}
|
|
67
|
+
let manifest;
|
|
68
|
+
try {
|
|
69
|
+
manifest = JSON.parse(await readFile(path, 'utf8'));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
throw new PurgeError('已有 Host 事务 manifest 无法解析,拒绝继续升级。');
|
|
73
|
+
}
|
|
74
|
+
if (typeof manifest !== 'object' || manifest === null || !('version' in manifest) || manifest.version !== 4)
|
|
75
|
+
return undefined;
|
|
76
|
+
if (!('profile' in manifest) || typeof manifest.profile !== 'string'
|
|
77
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u.test(manifest.profile)) {
|
|
78
|
+
throw new PurgeError('已有 Host 事务 profile 无效,拒绝继续升级。');
|
|
79
|
+
}
|
|
80
|
+
return manifest.profile;
|
|
81
|
+
}
|
|
82
|
+
export async function hasPendingHostRecovery(dshHome) {
|
|
83
|
+
return await pendingHostRecovery(await canonicalMissingAllowed(dshHome)) !== undefined;
|
|
84
|
+
}
|
|
22
85
|
/**
|
|
23
|
-
*
|
|
86
|
+
* 新 Home 先选择私有 Host,再委托现有安装器。
|
|
24
87
|
* npm 形态只负责把与自身版本同 tag 的 install-npm.sh 拉到临时目录执行,
|
|
25
88
|
* common.sh 的 SHA-256 自校验由脚本自身完成;local 形态直接执行 checkout 内脚本。
|
|
26
89
|
* 安装器 stdio 与当前终端直连,交互提示/输出不经缓冲。
|
|
@@ -28,37 +91,130 @@ export const defaultExecutor = {
|
|
|
28
91
|
*/
|
|
29
92
|
export async function runInstall(options) {
|
|
30
93
|
const executor = options.executor ?? defaultExecutor;
|
|
31
|
-
|
|
94
|
+
let env = { ...process.env };
|
|
95
|
+
for (const name of ['DSH_ENHANCED_HOST_UPDATE_PLAN', 'DSH_ENHANCED_HOST_UPDATE_BIN',
|
|
96
|
+
'DSH_ENHANCED_HOST_SELECTOR_VALIDATED', 'DSH_ENHANCED_HOST_RECOVERY_ONLY',
|
|
97
|
+
'DSH_ENHANCED_HOST_RECOVERY_PROFILE'])
|
|
98
|
+
delete env[name];
|
|
32
99
|
if (options.dshHome !== undefined)
|
|
33
100
|
env.DSH_HOME = options.dshHome;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
const script = join(root, 'scripts', 'install', 'install-local.sh');
|
|
40
|
-
return await executor.runInherited('bash', [script, ...options.passthrough], { env });
|
|
41
|
-
}
|
|
42
|
-
if (!/^v\d+\.\d+\.\d+$/u.test(options.releaseRef)) {
|
|
101
|
+
// Validate the invocation before preparing a runtime or touching the Home.
|
|
102
|
+
if (options.mode === 'local' && !options.localRepositoryRoot)
|
|
103
|
+
throw new PurgeError('local 安装形态需要 --local <checkout 目录>');
|
|
104
|
+
if (options.mode === 'npm' && !/^v\d+\.\d+\.\d+$/u.test(options.releaseRef))
|
|
43
105
|
throw new PurgeError(`非法的 release ref:${options.releaseRef}(应为 vX.Y.Z)`);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
106
|
+
const value = (name) => {
|
|
107
|
+
const index = options.passthrough.indexOf(name);
|
|
108
|
+
if (index < 0)
|
|
109
|
+
return undefined;
|
|
110
|
+
const result = options.passthrough[index + 1];
|
|
111
|
+
if (!result || result.startsWith('-') || options.passthrough.lastIndexOf(name) !== index) {
|
|
112
|
+
throw new PurgeError(`${name} 必须提供一个且仅一个值。`);
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
};
|
|
116
|
+
const operation = value('--operation') ?? 'install';
|
|
117
|
+
const selector = value('--dsh-version') ?? 'latest';
|
|
118
|
+
const help = options.passthrough.includes('--help') || options.passthrough.includes('-h');
|
|
119
|
+
const explicitlySet = (name) => {
|
|
120
|
+
let present = false;
|
|
121
|
+
for (let index = 0; index < options.passthrough.length; index++) {
|
|
122
|
+
if (options.passthrough[index] !== name)
|
|
123
|
+
continue;
|
|
124
|
+
const selected = options.passthrough[index + 1];
|
|
125
|
+
if (!selected || selected.startsWith('-'))
|
|
126
|
+
throw new PurgeError(`${name} 必须提供一个值。`);
|
|
127
|
+
present = true;
|
|
128
|
+
}
|
|
129
|
+
return present;
|
|
130
|
+
};
|
|
131
|
+
const scenarioExplicit = !help && explicitlySet('--scenario');
|
|
132
|
+
const modeExplicit = !help && explicitlySet('--mode');
|
|
133
|
+
const larkOptionIndex = options.passthrough.lastIndexOf('--lark');
|
|
134
|
+
const limitedOptOut = options.passthrough.includes('--no-service')
|
|
135
|
+
|| (larkOptionIndex >= 0 && options.passthrough[larkOptionIndex + 1] === 'skip');
|
|
136
|
+
const passthrough = operation === 'install' && !help && !scenarioExplicit && !modeExplicit && !limitedOptOut
|
|
137
|
+
? [...options.passthrough, '--scenario', 'supervised']
|
|
138
|
+
: options.passthrough;
|
|
139
|
+
const inactive = options.passthrough.some(arg => ['--help', '-h', '--dry-run'].includes(arg));
|
|
140
|
+
let installerStaging;
|
|
141
|
+
let planStaging;
|
|
55
142
|
try {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
143
|
+
let script;
|
|
144
|
+
if (options.mode === 'local') {
|
|
145
|
+
script = join(options.localRepositoryRoot, 'scripts', 'install', 'install-local.sh');
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const url = `${INSTALL_BASE_URL}/${options.releaseRef}/scripts/install/install-npm.sh`;
|
|
149
|
+
let source;
|
|
150
|
+
try {
|
|
151
|
+
source = await executor.download(url);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
throw new PurgeError(`下载 install-npm.sh 失败(${url}):${error.message}。请检查网络,或改用 local 形态。`);
|
|
155
|
+
}
|
|
156
|
+
installerStaging = await mkdtemp(join(tmpdir(), 'dsh-rsi-install-'));
|
|
157
|
+
script = join(installerStaging, 'install-npm.sh');
|
|
158
|
+
await writeFile(script, source, { mode: 0o700 });
|
|
159
|
+
await chmod(script, 0o700);
|
|
160
|
+
}
|
|
161
|
+
if (operation === 'upgrade' && !inactive) {
|
|
162
|
+
const canonicalHome = await canonicalMissingAllowed(resolveDshHome(env));
|
|
163
|
+
const recoveryProfile = await pendingHostRecovery(canonicalHome);
|
|
164
|
+
if (recoveryProfile !== undefined) {
|
|
165
|
+
const recovered = await executor.runInherited('bash', [script, ...passthrough], {
|
|
166
|
+
env: { ...env, DSH_HOME: canonicalHome, DSH_ENHANCED_HOST_RECOVERY_ONLY: '1',
|
|
167
|
+
DSH_ENHANCED_HOST_RECOVERY_PROFILE: recoveryProfile },
|
|
168
|
+
});
|
|
169
|
+
if (recovered !== 0)
|
|
170
|
+
return recovered;
|
|
171
|
+
if (options.recoveryOnly)
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (options.recoveryOnly)
|
|
176
|
+
throw new PurgeError('没有待恢复的 v4 Host 事务。');
|
|
177
|
+
if (executor.prepareHost && !inactive) {
|
|
178
|
+
env = await executor.prepareHost({ dshHome: resolveDshHome(env),
|
|
179
|
+
selector: operation === 'upgrade' ? 'latest' : selector, environment: env,
|
|
180
|
+
prepareFresh: operation === 'install' });
|
|
181
|
+
}
|
|
182
|
+
if (operation === 'upgrade' && !inactive && executor.prepareHostUpdate) {
|
|
183
|
+
const home = await canonicalMissingAllowed(resolveDshHome(env));
|
|
184
|
+
const binding = await lstat(join(home, '.dsh-rsi-host.json')).catch(error => {
|
|
185
|
+
if (error.code === 'ENOENT')
|
|
186
|
+
return undefined;
|
|
187
|
+
throw error;
|
|
188
|
+
});
|
|
189
|
+
if (binding === undefined) {
|
|
190
|
+
if (selector !== 'latest')
|
|
191
|
+
throw new PurgeError('现有 Home 没有私有 Host 绑定;不能用 --dsh-version 修改全局 Host。');
|
|
192
|
+
process.stdout.write('现有 Home 未绑定私有 Host;保留当前 Host,仅升级插件集合。\n');
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const plan = await executor.prepareHostUpdate({ dshHome: home, selector });
|
|
196
|
+
if (plan.originalRuntime.version.startsWith('0.1.') && plan.candidateRuntime.version.startsWith('0.2.')) {
|
|
197
|
+
throw new PurgeError('DSH 0.1 → 0.2 跨 ABI 自动升级尚未支持;未修改原 Home 或插件。请保留原安装,在新的 DSH_HOME 中安装并验证新版,勿先替换旧 profile 的插件。');
|
|
198
|
+
}
|
|
199
|
+
env = { ...env, DSH_ENHANCED_HOST_SELECTOR_VALIDATED: '1' };
|
|
200
|
+
if (plan.status === 'update') {
|
|
201
|
+
planStaging = await mkdtemp(join(tmpdir(), 'dsh-rsi-host-plan-'));
|
|
202
|
+
const planPath = join(planStaging, 'plan.json');
|
|
203
|
+
await writeFile(planPath, `${JSON.stringify(plan)}\n`, { mode: 0o600 });
|
|
204
|
+
env = { ...env, DSH_ENHANCED_HOST_UPDATE_PLAN: planPath,
|
|
205
|
+
DSH_ENHANCED_HOST_UPDATE_BIN: plan.candidateRuntime.binDirectory };
|
|
206
|
+
}
|
|
207
|
+
else
|
|
208
|
+
process.stdout.write(`私有 Host 已是当前版本:${plan.originalRuntime.version}\n`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return await executor.runInherited('bash', [script, ...passthrough], { env });
|
|
59
212
|
}
|
|
60
213
|
finally {
|
|
61
|
-
|
|
214
|
+
if (planStaging !== undefined)
|
|
215
|
+
await rm(planStaging, { recursive: true, force: true });
|
|
216
|
+
if (installerStaging !== undefined)
|
|
217
|
+
await rm(installerStaging, { recursive: true, force: true });
|
|
62
218
|
}
|
|
63
219
|
}
|
|
64
220
|
//# sourceMappingURL=install.js.map
|
package/lib/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.
|
|
1
|
+
export declare const version = "0.1.49";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.1.
|
|
1
|
+
export const version = '0.1.49';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED