@dsh-enhanced/lark-channel 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 +19 -8
- package/docs/rsi-setup.md +123 -11
- package/docs/setup.md +27 -14
- package/docs/supervised-growth.md +2 -0
- package/lib/adapter.d.ts +6 -0
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +79 -8
- package/lib/adapter.js.map +1 -1
- package/lib/business-cli-install.d.ts +9 -0
- package/lib/business-cli-install.d.ts.map +1 -0
- package/lib/business-cli-install.js +367 -0
- package/lib/business-cli-install.js.map +1 -0
- package/lib/business-environment.d.ts +2 -0
- package/lib/business-environment.d.ts.map +1 -0
- package/lib/business-environment.js +16 -0
- package/lib/business-environment.js.map +1 -0
- package/lib/business-skill.d.ts +32 -0
- package/lib/business-skill.d.ts.map +1 -0
- package/lib/business-skill.js +202 -0
- package/lib/business-skill.js.map +1 -0
- package/lib/rsi-authority-config.d.ts +29 -0
- package/lib/rsi-authority-config.d.ts.map +1 -0
- package/lib/rsi-authority-config.js +233 -0
- package/lib/rsi-authority-config.js.map +1 -0
- package/lib/rsi-authority-resources.d.ts +36 -0
- package/lib/rsi-authority-resources.d.ts.map +1 -0
- package/lib/rsi-authority-resources.js +139 -0
- package/lib/rsi-authority-resources.js.map +1 -0
- package/lib/rsi-authority-runtime.d.ts +50 -0
- package/lib/rsi-authority-runtime.d.ts.map +1 -0
- package/lib/rsi-authority-runtime.js +393 -0
- package/lib/rsi-authority-runtime.js.map +1 -0
- package/lib/rsi-bootstrap-manifest.d.ts +39 -0
- package/lib/rsi-bootstrap-manifest.d.ts.map +1 -0
- package/lib/rsi-bootstrap-manifest.js +366 -0
- package/lib/rsi-bootstrap-manifest.js.map +1 -0
- package/lib/rsi-bootstrap.d.ts +30 -0
- package/lib/rsi-bootstrap.d.ts.map +1 -0
- package/lib/rsi-bootstrap.js +363 -0
- package/lib/rsi-bootstrap.js.map +1 -0
- package/lib/rsi-build.d.ts +45 -0
- package/lib/rsi-build.d.ts.map +1 -0
- package/lib/rsi-build.js +404 -0
- package/lib/rsi-build.js.map +1 -0
- package/lib/rsi-creation-build.d.ts +47 -0
- package/lib/rsi-creation-build.d.ts.map +1 -0
- package/lib/rsi-creation-build.js +333 -0
- package/lib/rsi-creation-build.js.map +1 -0
- package/lib/rsi-host-authorities.d.ts +18 -0
- package/lib/rsi-host-authorities.d.ts.map +1 -0
- package/lib/rsi-host-authorities.js +129 -0
- package/lib/rsi-host-authorities.js.map +1 -0
- package/lib/rsi-host-update.d.ts +113 -0
- package/lib/rsi-host-update.d.ts.map +1 -0
- package/lib/rsi-host-update.js +316 -0
- package/lib/rsi-host-update.js.map +1 -0
- package/lib/rsi-install-inputs.d.ts +43 -0
- package/lib/rsi-install-inputs.d.ts.map +1 -0
- package/lib/rsi-install-inputs.js +342 -0
- package/lib/rsi-install-inputs.js.map +1 -0
- package/lib/rsi-install.d.ts +54 -0
- package/lib/rsi-install.d.ts.map +1 -0
- package/lib/rsi-install.js +404 -0
- package/lib/rsi-install.js.map +1 -0
- package/lib/rsi-local-activation.d.ts +78 -0
- package/lib/rsi-local-activation.d.ts.map +1 -0
- package/lib/rsi-local-activation.js +485 -0
- package/lib/rsi-local-activation.js.map +1 -0
- package/lib/rsi-local-cohort.d.ts +70 -0
- package/lib/rsi-local-cohort.d.ts.map +1 -0
- package/lib/rsi-local-cohort.js +781 -0
- package/lib/rsi-local-cohort.js.map +1 -0
- package/lib/rsi-local-install.d.ts +40 -0
- package/lib/rsi-local-install.d.ts.map +1 -0
- package/lib/rsi-local-install.js +221 -0
- package/lib/rsi-local-install.js.map +1 -0
- package/lib/rsi-local-pair-install.d.ts +38 -0
- package/lib/rsi-local-pair-install.d.ts.map +1 -0
- package/lib/rsi-local-pair-install.js +200 -0
- package/lib/rsi-local-pair-install.js.map +1 -0
- package/lib/rsi-local-profile-update.d.ts +25 -0
- package/lib/rsi-local-profile-update.d.ts.map +1 -0
- package/lib/rsi-local-profile-update.js +226 -0
- package/lib/rsi-local-profile-update.js.map +1 -0
- package/lib/rsi-local-resources.d.ts +37 -0
- package/lib/rsi-local-resources.d.ts.map +1 -0
- package/lib/rsi-local-resources.js +184 -0
- package/lib/rsi-local-resources.js.map +1 -0
- package/lib/rsi-local-roots-extension.d.ts +11 -0
- package/lib/rsi-local-roots-extension.d.ts.map +1 -0
- package/lib/rsi-local-roots-extension.js +31 -0
- package/lib/rsi-local-roots-extension.js.map +1 -0
- package/lib/rsi-local-update-build.d.ts +18 -0
- package/lib/rsi-local-update-build.d.ts.map +1 -0
- package/lib/rsi-local-update-build.js +37 -0
- package/lib/rsi-local-update-build.js.map +1 -0
- package/lib/rsi-local-update.d.ts +39 -0
- package/lib/rsi-local-update.d.ts.map +1 -0
- package/lib/rsi-local-update.js +205 -0
- package/lib/rsi-local-update.js.map +1 -0
- package/lib/rsi-memory-learning.d.ts +22 -0
- package/lib/rsi-memory-learning.d.ts.map +1 -0
- package/lib/rsi-memory-learning.js +76 -0
- package/lib/rsi-memory-learning.js.map +1 -0
- package/lib/rsi-owner-profile.d.ts +37 -0
- package/lib/rsi-owner-profile.d.ts.map +1 -0
- package/lib/rsi-owner-profile.js +178 -0
- package/lib/rsi-owner-profile.js.map +1 -0
- package/lib/rsi-plugin-creation.d.ts +31 -0
- package/lib/rsi-plugin-creation.d.ts.map +1 -0
- package/lib/rsi-plugin-creation.js +179 -0
- package/lib/rsi-plugin-creation.js.map +1 -0
- package/lib/rsi-profile.d.ts +23 -0
- package/lib/rsi-profile.d.ts.map +1 -1
- package/lib/rsi-profile.js +154 -43
- package/lib/rsi-profile.js.map +1 -1
- package/lib/rsi-release-build.d.ts +41 -0
- package/lib/rsi-release-build.d.ts.map +1 -0
- package/lib/rsi-release-build.js +223 -0
- package/lib/rsi-release-build.js.map +1 -0
- package/lib/rsi-service-environment.d.ts +6 -0
- package/lib/rsi-service-environment.d.ts.map +1 -0
- package/lib/rsi-service-environment.js +113 -0
- package/lib/rsi-service-environment.js.map +1 -0
- package/lib/rsi-service-setup.d.ts +10 -0
- package/lib/rsi-service-setup.d.ts.map +1 -0
- package/lib/rsi-service-setup.js +34 -0
- package/lib/rsi-service-setup.js.map +1 -0
- package/lib/rsi-setup.d.ts +35 -2
- package/lib/rsi-setup.d.ts.map +1 -1
- package/lib/rsi-setup.js +459 -32
- package/lib/rsi-setup.js.map +1 -1
- package/lib/rsi-source-maintenance.d.ts +25 -0
- package/lib/rsi-source-maintenance.d.ts.map +1 -0
- package/lib/rsi-source-maintenance.js +348 -0
- package/lib/rsi-source-maintenance.js.map +1 -0
- package/lib/rsi-source-update.d.ts +26 -0
- package/lib/rsi-source-update.d.ts.map +1 -0
- package/lib/rsi-source-update.js +276 -0
- package/lib/rsi-source-update.js.map +1 -0
- package/lib/rsi-source.d.ts +34 -0
- package/lib/rsi-source.d.ts.map +1 -0
- package/lib/rsi-source.js +375 -0
- package/lib/rsi-source.js.map +1 -0
- package/lib/rsi-systemd-bootstrap.d.ts +46 -0
- package/lib/rsi-systemd-bootstrap.d.ts.map +1 -0
- package/lib/rsi-systemd-bootstrap.js +271 -0
- package/lib/rsi-systemd-bootstrap.js.map +1 -0
- package/lib/sdk.d.ts.map +1 -1
- package/lib/sdk.js +26 -1
- package/lib/sdk.js.map +1 -1
- package/lib/setup-business.d.ts +49 -0
- package/lib/setup-business.d.ts.map +1 -0
- package/lib/setup-business.js +335 -0
- package/lib/setup-business.js.map +1 -0
- package/lib/setup-profile.d.ts +1 -1
- package/lib/setup-profile.d.ts.map +1 -1
- package/lib/setup-profile.js +25 -2
- package/lib/setup-profile.js.map +1 -1
- package/lib/setup.d.ts +12 -1
- package/lib/setup.d.ts.map +1 -1
- package/lib/setup.js +138 -34
- package/lib/setup.js.map +1 -1
- package/lib/systemd.d.ts +10 -0
- package/lib/systemd.d.ts.map +1 -1
- package/lib/systemd.js +23 -6
- package/lib/systemd.js.map +1 -1
- package/lib/types.d.ts +7 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +32 -20
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { spawnSync } from 'node:child_process';
|
|
3
|
+
import { constants, closeSync, fstatSync, lstatSync, openSync, readSync } from 'node:fs';
|
|
4
|
+
import { lstat, mkdir, open, readFile, realpath, rename, unlink } from 'node:fs/promises';
|
|
5
|
+
import { homedir } from 'node:os';
|
|
6
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
7
|
+
import { renderDshSystemdService, systemdServicePaths } from './systemd.js';
|
|
8
|
+
const unitKeys = ['FragmentPath', 'DropInPaths', 'ExecStart', 'Environment', 'WorkingDirectory', 'User', 'Group', 'Type', 'KillMode'];
|
|
9
|
+
const statusKeys = ['Id', 'LoadState', 'ActiveState', 'SubState', 'MainPID', 'ControlPID', 'ControlGroup', 'Job'];
|
|
10
|
+
const allKeys = [...statusKeys, ...unitKeys];
|
|
11
|
+
function fail(message) { throw new Error(`rsi systemd capture: ${message}`); }
|
|
12
|
+
function hash(value) { return createHash('sha256').update(value).digest('hex'); }
|
|
13
|
+
function exactPath(value) {
|
|
14
|
+
return isAbsolute(value) && resolve(value) === value
|
|
15
|
+
&& !value.includes('\0') && !value.includes('\r') && !value.includes('\n');
|
|
16
|
+
}
|
|
17
|
+
function equal(a, b) { return a === null ? b === null : b !== null && a.equals(b); }
|
|
18
|
+
function fdBytes(fd, size) {
|
|
19
|
+
const bytes = Buffer.alloc(size);
|
|
20
|
+
let offset = 0;
|
|
21
|
+
while (offset < bytes.length) {
|
|
22
|
+
const count = readSync(fd, bytes, offset, bytes.length - offset, offset);
|
|
23
|
+
if (count === 0)
|
|
24
|
+
fail('pinned systemctl changed while reading');
|
|
25
|
+
offset += count;
|
|
26
|
+
}
|
|
27
|
+
return bytes;
|
|
28
|
+
}
|
|
29
|
+
async function command(args, options) {
|
|
30
|
+
options.signal?.throwIfAborted();
|
|
31
|
+
const spec = options.systemctl;
|
|
32
|
+
if (spec.interpreter !== null || !exactPath(spec.path) || !/^[a-f0-9]{64}$/u.test(spec.sha256)
|
|
33
|
+
|| await realpath(spec.path) !== spec.path)
|
|
34
|
+
fail('systemctl must be a canonical pinned native executable');
|
|
35
|
+
const pathStat = lstatSync(spec.path);
|
|
36
|
+
if (!pathStat.isFile() || pathStat.nlink !== 1 || pathStat.size < 4 || pathStat.size > 268_435_456
|
|
37
|
+
|| (pathStat.mode & 0o022) !== 0 || (pathStat.uid !== 0 && pathStat.uid !== process.getuid?.()))
|
|
38
|
+
fail('unsafe systemctl executable');
|
|
39
|
+
const fd = openSync(spec.path, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
40
|
+
try {
|
|
41
|
+
const fdStat = fstatSync(fd);
|
|
42
|
+
if (fdStat.dev !== pathStat.dev || fdStat.ino !== pathStat.ino)
|
|
43
|
+
fail('systemctl inode changed');
|
|
44
|
+
const bytes = fdBytes(fd, fdStat.size);
|
|
45
|
+
if (!bytes.subarray(0, 4).equals(Buffer.from([0x7f, 0x45, 0x4c, 0x46])) || hash(bytes) !== spec.sha256)
|
|
46
|
+
fail('systemctl pin changed');
|
|
47
|
+
const uid = process.getuid?.();
|
|
48
|
+
if (uid === undefined)
|
|
49
|
+
fail('Linux user identity unavailable');
|
|
50
|
+
const runtime = `/run/user/${uid}`;
|
|
51
|
+
const request = { command: '/proc/self/fd/3', fd,
|
|
52
|
+
args: ['--user', ...args], env: { PATH: '/usr/bin:/bin', LANG: 'C', LC_ALL: 'C', SYSTEMD_PAGER: '', SYSTEMD_COLORS: '0',
|
|
53
|
+
XDG_RUNTIME_DIR: runtime, DBUS_SESSION_BUS_ADDRESS: `unix:path=${runtime}/bus` },
|
|
54
|
+
timeoutMs: options.timeoutMs ?? 10_000, ...(options.signal ? { signal: options.signal } : {}) };
|
|
55
|
+
if (!Number.isSafeInteger(request.timeoutMs) || request.timeoutMs < 1000 || request.timeoutMs > 60_000)
|
|
56
|
+
fail('invalid command timeout');
|
|
57
|
+
const result = await (options.run ?? defaultRun)(request);
|
|
58
|
+
options.signal?.throwIfAborted();
|
|
59
|
+
const finalStat = lstatSync(spec.path);
|
|
60
|
+
if (finalStat.dev !== fdStat.dev || finalStat.ino !== fdStat.ino || hash(fdBytes(fd, fdStat.size)) !== spec.sha256)
|
|
61
|
+
fail('systemctl changed after command');
|
|
62
|
+
if (result.error || result.status !== 0 || Buffer.byteLength(result.stdout) > 65_536)
|
|
63
|
+
fail(`systemctl ${args[0]} failed`);
|
|
64
|
+
return result.stdout;
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
closeSync(fd);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function defaultRun(request) {
|
|
71
|
+
const result = spawnSync(request.command, [...request.args], { env: request.env, encoding: 'utf8',
|
|
72
|
+
stdio: ['ignore', 'pipe', 'pipe', request.fd], timeout: request.timeoutMs, signal: request.signal, maxBuffer: 65_536 });
|
|
73
|
+
return { status: result.status, stdout: result.stdout ?? '', stderr: result.stderr ?? '',
|
|
74
|
+
...(result.error ? { error: result.error } : {}) };
|
|
75
|
+
}
|
|
76
|
+
export function parseRsiSystemdShow(source, keys = allKeys) {
|
|
77
|
+
if (Buffer.byteLength(source) > 65_536 || !source.endsWith('\n'))
|
|
78
|
+
fail('invalid systemctl show output');
|
|
79
|
+
const result = Object.create(null);
|
|
80
|
+
for (const line of source.trimEnd().split('\n')) {
|
|
81
|
+
const separator = line.indexOf('='), key = line.slice(0, separator);
|
|
82
|
+
if (separator < 0 || !keys.includes(key) || Object.hasOwn(result, key))
|
|
83
|
+
fail('invalid or duplicate supervisor property');
|
|
84
|
+
result[key] = line.slice(separator + 1);
|
|
85
|
+
}
|
|
86
|
+
if (Object.keys(result).length !== keys.length)
|
|
87
|
+
fail('missing supervisor property');
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
function normalizeExecStart(value) {
|
|
91
|
+
const match = value.match(/^(\{ path=[^\r\n]* ; argv\[\]=[^\r\n]* ; ignore_errors=(?:yes|no)) ; (?:start_time=[^\r\n]* )?\}$/u);
|
|
92
|
+
if (!match || value.split('{ path=').length !== 2)
|
|
93
|
+
fail('unsupported ExecStart representation');
|
|
94
|
+
return `${match[1]} ; }`;
|
|
95
|
+
}
|
|
96
|
+
export function assertRsiSystemdUnitStopped(status, unitName) {
|
|
97
|
+
if (status.Id !== unitName || !['loaded', 'not-found'].includes(status.LoadState)
|
|
98
|
+
|| status.ActiveState !== 'inactive' || status.SubState !== 'dead'
|
|
99
|
+
|| status.MainPID !== '0' || status.ControlPID !== '0' || status.ControlGroup !== ''
|
|
100
|
+
|| !['', '0'].includes(status.Job))
|
|
101
|
+
fail('target service is not fully stopped');
|
|
102
|
+
}
|
|
103
|
+
export async function readRsiSystemdUnitStatus(unitName, options) {
|
|
104
|
+
const fields = parseRsiSystemdShow(await command(['show', unitName, '--no-pager', ...statusKeys.map(key => `--property=${key}`)], options), statusKeys);
|
|
105
|
+
return fields;
|
|
106
|
+
}
|
|
107
|
+
/** Reads the currently loaded service for post-install and post-start comparison with the frozen Host grant. */
|
|
108
|
+
export async function readRsiSystemdUnitProperties(input, options) {
|
|
109
|
+
const { unitPath, unitName } = systemdServicePaths({ dshHome: input.dshHome, profile: input.profile,
|
|
110
|
+
...(options.home ? { home: options.home } : {}) });
|
|
111
|
+
const fields = parseRsiSystemdShow(await command(['show', unitName, '--no-pager', ...allKeys.map(key => `--property=${key}`)], options));
|
|
112
|
+
if (fields.Id !== unitName || fields.LoadState !== 'loaded' || fields.FragmentPath !== unitPath
|
|
113
|
+
|| fields.DropInPaths !== '' || fields.Type !== 'simple' || fields.KillMode !== 'control-group') {
|
|
114
|
+
fail('loaded unit differs from supported deployment');
|
|
115
|
+
}
|
|
116
|
+
fields.ExecStart = normalizeExecStart(fields.ExecStart);
|
|
117
|
+
return Object.fromEntries(unitKeys.map(key => [key, fields[key]]));
|
|
118
|
+
}
|
|
119
|
+
async function readUnit(path, maximum = 65_536) {
|
|
120
|
+
let stat;
|
|
121
|
+
try {
|
|
122
|
+
stat = await lstat(path);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
if (error.code === 'ENOENT')
|
|
126
|
+
return { bytes: null, mode: null };
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
if (!stat.isFile() || stat.nlink !== 1 || stat.uid !== process.getuid?.() || stat.size > maximum)
|
|
130
|
+
fail('unsafe unit file');
|
|
131
|
+
const bytes = await readFile(path);
|
|
132
|
+
const after = await lstat(path);
|
|
133
|
+
if (after.ino !== stat.ino || after.dev !== stat.dev || after.size !== stat.size)
|
|
134
|
+
fail('unit file changed during read');
|
|
135
|
+
return { bytes, mode: stat.mode & 0o777 };
|
|
136
|
+
}
|
|
137
|
+
async function syncDirectory(path) { const fd = await open(path, 'r'); try {
|
|
138
|
+
await fd.sync();
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await fd.close();
|
|
142
|
+
} }
|
|
143
|
+
async function atomicWrite(path, bytes, mode) {
|
|
144
|
+
const tmp = `${path}.rsi-${process.pid}-${createHash('sha256').update(String(Math.random())).digest('hex')}`;
|
|
145
|
+
const fd = await open(tmp, 'wx', mode);
|
|
146
|
+
try {
|
|
147
|
+
try {
|
|
148
|
+
await fd.writeFile(bytes);
|
|
149
|
+
await fd.chmod(mode);
|
|
150
|
+
await fd.sync();
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
await fd.close();
|
|
154
|
+
}
|
|
155
|
+
await rename(tmp, path);
|
|
156
|
+
await syncDirectory(dirname(path));
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
await unlink(tmp).catch(() => undefined);
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async function readJournal(path, unitPath, unitName) {
|
|
164
|
+
const unit = await readUnit(path, 262_144);
|
|
165
|
+
if (unit.bytes === null)
|
|
166
|
+
return null;
|
|
167
|
+
if (unit.mode !== 0o600 || unit.bytes.length > 262_144)
|
|
168
|
+
fail('unsafe recovery journal');
|
|
169
|
+
let value;
|
|
170
|
+
try {
|
|
171
|
+
value = JSON.parse(unit.bytes.toString('utf8'));
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
fail('invalid recovery journal');
|
|
175
|
+
}
|
|
176
|
+
if (value.schemaVersion !== 1 || value.unitPath !== unitPath || value.unitName !== unitName
|
|
177
|
+
|| Object.keys(value).sort().join() !== ['after', 'before', 'beforeMode', 'schemaVersion', 'unitName', 'unitPath'].sort().join()
|
|
178
|
+
|| typeof value.after !== 'string' || (value.before !== null && typeof value.before !== 'string')
|
|
179
|
+
|| (value.before === null ? value.beforeMode !== null : !Number.isInteger(value.beforeMode) || value.beforeMode < 0 || value.beforeMode > 0o777))
|
|
180
|
+
fail('recovery journal differs from target');
|
|
181
|
+
for (const encoded of [value.after, value.before])
|
|
182
|
+
if (encoded !== null && (encoded.length > 90_000
|
|
183
|
+
|| Buffer.from(encoded, 'base64').toString('base64') !== encoded))
|
|
184
|
+
fail('invalid recovery journal bytes');
|
|
185
|
+
return value;
|
|
186
|
+
}
|
|
187
|
+
async function restore(path, journalPath, journal, options) {
|
|
188
|
+
const current = await readUnit(path);
|
|
189
|
+
const before = journal.before === null ? null : Buffer.from(journal.before, 'base64');
|
|
190
|
+
const after = Buffer.from(journal.after, 'base64');
|
|
191
|
+
if (!equal(current.bytes, before) && !equal(current.bytes, after))
|
|
192
|
+
fail('unit changed outside capture; retain journal for reconciliation');
|
|
193
|
+
assertRsiSystemdUnitStopped(await readRsiSystemdUnitStatus(journal.unitName, options), journal.unitName);
|
|
194
|
+
if (!equal(current.bytes, before) || (before !== null && current.mode !== journal.beforeMode)) {
|
|
195
|
+
if (before === null) {
|
|
196
|
+
await unlink(path);
|
|
197
|
+
await syncDirectory(dirname(path));
|
|
198
|
+
}
|
|
199
|
+
else
|
|
200
|
+
await atomicWrite(path, before, journal.beforeMode);
|
|
201
|
+
}
|
|
202
|
+
await command(['daemon-reload'], options);
|
|
203
|
+
await unlink(journalPath);
|
|
204
|
+
await syncDirectory(dirname(journalPath));
|
|
205
|
+
}
|
|
206
|
+
/** Caller owns the DSH_HOME lifecycle lock and has stopped the target service. No command here can start it. */
|
|
207
|
+
export async function captureRsiSystemdUnitProperties(input, options) {
|
|
208
|
+
if (process.platform !== 'linux' || !exactPath(input.dshHome))
|
|
209
|
+
fail('Linux absolute DSH_HOME required');
|
|
210
|
+
const homeStat = await lstat(input.dshHome);
|
|
211
|
+
if (!homeStat.isDirectory() || homeStat.uid !== process.getuid?.() || (homeStat.mode & 0o077) !== 0
|
|
212
|
+
|| await realpath(input.dshHome) !== input.dshHome)
|
|
213
|
+
fail('DSH_HOME must be owner-private and canonical');
|
|
214
|
+
const { unitPath, unitName } = systemdServicePaths({ dshHome: input.dshHome, profile: input.profile,
|
|
215
|
+
...(options.home ? { home: options.home } : {}) });
|
|
216
|
+
const journalPath = join(input.dshHome, '.rsi-systemd-capture-journal.json');
|
|
217
|
+
const previous = await readJournal(journalPath, unitPath, unitName);
|
|
218
|
+
if (previous) {
|
|
219
|
+
const recoveryOptions = { ...options };
|
|
220
|
+
delete recoveryOptions.signal;
|
|
221
|
+
await restore(unitPath, journalPath, previous, recoveryOptions);
|
|
222
|
+
}
|
|
223
|
+
options.signal?.throwIfAborted();
|
|
224
|
+
const rendered = await renderDshSystemdService(input, { platform: 'linux',
|
|
225
|
+
...(options.home ? { home: options.home } : {}), ...(options.nodePath ? { nodePath: options.nodePath } : {}),
|
|
226
|
+
...(options.dshPath ? { dshPath: options.dshPath } : {}), ...(options.path ? { path: options.path } : {}),
|
|
227
|
+
...(options.environment ? { environment: options.environment } : {}) });
|
|
228
|
+
if (rendered.unitPath !== unitPath || rendered.unitName !== unitName)
|
|
229
|
+
fail('rendered unit path changed');
|
|
230
|
+
await mkdir(dirname(unitPath), { recursive: true, mode: 0o700 });
|
|
231
|
+
const actualUnitDirectory = await realpath(dirname(unitPath));
|
|
232
|
+
if (actualUnitDirectory !== join(await realpath(options.home ?? homedir()), '.config', 'systemd', 'user')
|
|
233
|
+
|| (await lstat(dirname(unitPath))).uid !== process.getuid?.())
|
|
234
|
+
fail('unit directory differs from user home');
|
|
235
|
+
assertRsiSystemdUnitStopped(await readRsiSystemdUnitStatus(unitName, options), unitName);
|
|
236
|
+
const before = await readUnit(unitPath), after = Buffer.from(rendered.source, 'utf8');
|
|
237
|
+
if (after.length > 65_536)
|
|
238
|
+
fail('rendered unit too large');
|
|
239
|
+
const journal = { schemaVersion: 1, unitPath, unitName,
|
|
240
|
+
before: before.bytes?.toString('base64') ?? null, beforeMode: before.mode, after: after.toString('base64') };
|
|
241
|
+
await atomicWrite(journalPath, Buffer.from(JSON.stringify(journal)), 0o600);
|
|
242
|
+
let properties, failure;
|
|
243
|
+
try {
|
|
244
|
+
await atomicWrite(unitPath, after, 0o600);
|
|
245
|
+
await command(['daemon-reload'], options);
|
|
246
|
+
const fields = parseRsiSystemdShow(await command(['show', unitName, '--no-pager', ...allKeys.map(key => `--property=${key}`)], options));
|
|
247
|
+
assertRsiSystemdUnitStopped(fields, unitName);
|
|
248
|
+
if (fields.LoadState !== 'loaded' || fields.FragmentPath !== unitPath || fields.DropInPaths !== ''
|
|
249
|
+
|| fields.Type !== 'simple' || fields.KillMode !== 'control-group')
|
|
250
|
+
fail('loaded unit differs from supported deployment');
|
|
251
|
+
fields.ExecStart = normalizeExecStart(fields.ExecStart);
|
|
252
|
+
properties = Object.fromEntries(unitKeys.map(key => [key, fields[key]]));
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
failure = error;
|
|
256
|
+
}
|
|
257
|
+
const recoveryOptions = { ...options };
|
|
258
|
+
delete recoveryOptions.signal;
|
|
259
|
+
try {
|
|
260
|
+
await restore(unitPath, journalPath, journal, recoveryOptions);
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
if (failure)
|
|
264
|
+
throw new AggregateError([failure, error], 'rsi systemd capture and recovery failed');
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
267
|
+
if (failure)
|
|
268
|
+
throw failure;
|
|
269
|
+
return properties;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=rsi-systemd-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsi-systemd-bootstrap.js","sourceRoot":"","sources":["../src/rsi-systemd-bootstrap.ts"],"names":[],"mappings":"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"}
|
package/lib/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/lib/sdk.js
CHANGED
|
@@ -976,14 +976,39 @@ export function renderLarkMessage(input) {
|
|
|
976
976
|
}),
|
|
977
977
|
};
|
|
978
978
|
}
|
|
979
|
+
if ('toolApprovalResult' in input) {
|
|
980
|
+
const result = input.toolApprovalResult;
|
|
981
|
+
const presentation = {
|
|
982
|
+
'allowed-once': { template: 'green', title: '已允许本次操作,任务继续中',
|
|
983
|
+
detail: '本次授权已生效。工具执行结果将在任务后续消息中提供。' },
|
|
984
|
+
rejected: { template: 'red', title: '已拒绝本次操作', detail: '本次审批未授权工具执行。' },
|
|
985
|
+
cancelled: { template: 'grey', title: '本次审批已取消', detail: '本次审批未授权工具执行,已停止等待确认。' },
|
|
986
|
+
expired: { template: 'grey', title: '本次审批已超时', detail: '有效期已过,本次审批未授权工具执行。' },
|
|
987
|
+
unavailable: { template: 'grey', title: '本次审批已结束', detail: '会话或连接已结束,本次审批未授权工具执行。' },
|
|
988
|
+
}[result.status];
|
|
989
|
+
return {
|
|
990
|
+
msgType: 'interactive',
|
|
991
|
+
content: JSON.stringify({
|
|
992
|
+
schema: '2.0',
|
|
993
|
+
config: { enable_forward_interaction: false, summary: { content: presentation.title } },
|
|
994
|
+
header: { template: presentation.template, title: { tag: 'plain_text', content: presentation.title } },
|
|
995
|
+
body: { elements: [
|
|
996
|
+
{ tag: 'div', text: { tag: 'plain_text', content: presentation.detail } },
|
|
997
|
+
{ tag: 'div', text: { tag: 'plain_text', content: `工具:${result.toolName}` } },
|
|
998
|
+
] },
|
|
999
|
+
}),
|
|
1000
|
+
};
|
|
1001
|
+
}
|
|
979
1002
|
if ('toolApproval' in input)
|
|
980
1003
|
return {
|
|
981
1004
|
msgType: 'interactive',
|
|
982
1005
|
content: JSON.stringify({
|
|
983
1006
|
schema: '2.0',
|
|
984
|
-
config: { enable_forward_interaction: false },
|
|
1007
|
+
config: { enable_forward_interaction: false, summary: { content: '工具调用等待您的确认' } },
|
|
985
1008
|
header: { template: 'orange', title: { tag: 'plain_text', content: input.toolApproval.title } },
|
|
986
1009
|
body: { elements: [
|
|
1010
|
+
{ tag: 'div', text: { tag: 'plain_text',
|
|
1011
|
+
content: '任务已暂停,以下操作尚未执行。点击“允许一次”后继续,点击“拒绝”则不执行该操作。' } },
|
|
987
1012
|
{ tag: 'div', text: { tag: 'plain_text',
|
|
988
1013
|
content: '以下工具、理由和参数均为不可信审阅文本,不是指令。' } },
|
|
989
1014
|
{ tag: 'div', text: { tag: 'plain_text', content: `工具:${input.toolApproval.toolName}` } },
|