@coralai/sps-cli 0.50.0 → 0.50.1
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/dist/console/index.d.ts.map +1 -1
- package/dist/console/index.js +6 -3
- package/dist/console/index.js.map +1 -1
- package/dist/console/routes/chat.d.ts +10 -9
- package/dist/console/routes/chat.d.ts.map +1 -1
- package/dist/console/routes/chat.js +73 -153
- package/dist/console/routes/chat.js.map +1 -1
- package/dist/console/routes/system.d.ts +5 -2
- package/dist/console/routes/system.d.ts.map +1 -1
- package/dist/console/routes/system.js +33 -237
- package/dist/console/routes/system.js.map +1 -1
- package/dist/core/checklist.d.ts +1 -1
- package/dist/core/state.d.ts +1 -1
- package/dist/engines/MonitorEngine.d.ts +1 -1
- package/dist/engines/SchedulerEngine.d.ts +1 -1
- package/dist/engines/StageEngine.d.ts +1 -1
- package/dist/interfaces/RepoBackend.d.ts +1 -1
- package/dist/interfaces/TaskBackend.d.ts +1 -1
- package/dist/providers/GitLabRepoBackend.d.ts +1 -1
- package/dist/providers/MarkdownTaskBackend.d.ts +1 -1
- package/dist/services/SystemService.d.ts +67 -0
- package/dist/services/SystemService.d.ts.map +1 -0
- package/dist/services/SystemService.js +278 -0
- package/dist/services/SystemService.js.map +1 -0
- package/dist/services/container.d.ts +10 -13
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +30 -3
- package/dist/services/container.js.map +1 -1
- package/dist/shared/types.d.ts +90 -5
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +9 -0
- package/dist/shared/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,263 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module console/routes/system
|
|
3
|
-
* @description
|
|
3
|
+
* @description System REST —— 走 SystemService
|
|
4
|
+
*
|
|
5
|
+
* @layer console
|
|
4
6
|
*/
|
|
5
|
-
import { spawn } from 'node:child_process';
|
|
6
|
-
import { createHash } from 'node:crypto';
|
|
7
|
-
import { chmodSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
8
|
-
import { dirname, resolve } from 'node:path';
|
|
9
7
|
import { Hono } from 'hono';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
if (!value)
|
|
14
|
-
return '';
|
|
15
|
-
if (value.length <= 6)
|
|
16
|
-
return '****';
|
|
17
|
-
return value.slice(0, 4) + '****';
|
|
18
|
-
}
|
|
19
|
-
const SECRET_KEY_PATTERNS = [
|
|
20
|
-
/_TOKEN$/,
|
|
21
|
-
/_KEY$/,
|
|
22
|
-
/_SECRET$/,
|
|
23
|
-
/_PASSWORD$/,
|
|
24
|
-
/_PASS$/,
|
|
25
|
-
/^(ANTHROPIC|OPENAI|CLAUDE|PLANE|TRELLO|MATRIX)_/,
|
|
26
|
-
];
|
|
27
|
-
function isSecret(key) {
|
|
28
|
-
return SECRET_KEY_PATTERNS.some((p) => p.test(key));
|
|
29
|
-
}
|
|
30
|
-
export function createSystemRoute(version, startedAt) {
|
|
8
|
+
import { toHttpStatus, toProblemJson } from '../../shared/errors.js';
|
|
9
|
+
import { sendResult } from '../lib/resultToJson.js';
|
|
10
|
+
export function createSystemRoute(system) {
|
|
31
11
|
const app = new Hono();
|
|
32
12
|
app.get('/info', (c) => {
|
|
33
|
-
return c.json(
|
|
34
|
-
version,
|
|
35
|
-
nodeVersion: process.version,
|
|
36
|
-
startedAt: startedAt.toISOString(),
|
|
37
|
-
uptimeMs: Date.now() - startedAt.getTime(),
|
|
38
|
-
platform: process.platform,
|
|
39
|
-
pid: process.pid,
|
|
40
|
-
});
|
|
13
|
+
return c.json(system.info());
|
|
41
14
|
});
|
|
42
|
-
app.get('/env', (c) => {
|
|
43
|
-
|
|
44
|
-
return c.json({ path: ENV_PATH, exists: false, entries: [] });
|
|
45
|
-
}
|
|
46
|
-
const raw = readFileSync(ENV_PATH, 'utf-8');
|
|
47
|
-
const entries = [];
|
|
48
|
-
for (const line of raw.split('\n')) {
|
|
49
|
-
const t = line.trim();
|
|
50
|
-
if (!t || t.startsWith('#'))
|
|
51
|
-
continue;
|
|
52
|
-
const m = t.match(/^(?:export\s+)?([A-Z_][A-Z0-9_]*)=["']?(.*?)["']?\s*$/);
|
|
53
|
-
if (!m)
|
|
54
|
-
continue;
|
|
55
|
-
const key = m[1] ?? '';
|
|
56
|
-
const value = m[2] ?? '';
|
|
57
|
-
const masked = isSecret(key);
|
|
58
|
-
entries.push({ key, value: masked ? maskSecret(value) : value, masked });
|
|
59
|
-
}
|
|
60
|
-
return c.json({ path: ENV_PATH, exists: true, entries });
|
|
15
|
+
app.get('/env', async (c) => {
|
|
16
|
+
return sendResult(c, await system.readEnv());
|
|
61
17
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* Values NOT masked (for editing). UI should warn user before showing.
|
|
65
|
-
*/
|
|
66
|
-
app.get('/env/raw', (c) => {
|
|
67
|
-
if (!existsSync(ENV_PATH)) {
|
|
68
|
-
return c.json({ path: ENV_PATH, exists: false, content: '', etag: '' });
|
|
69
|
-
}
|
|
70
|
-
const content = readFileSync(ENV_PATH, 'utf-8');
|
|
71
|
-
const etag = createHash('sha256').update(content).digest('hex').slice(0, 16);
|
|
72
|
-
return c.json({ path: ENV_PATH, exists: true, content, etag });
|
|
18
|
+
app.get('/env/raw', async (c) => {
|
|
19
|
+
return sendResult(c, await system.readEnvRaw());
|
|
73
20
|
});
|
|
74
|
-
/**
|
|
75
|
-
* PATCH /api/system/env — Overwrite ~/.coral/env with body.content.
|
|
76
|
-
* Optimistic lock via body.etag (or If-Match). Keeps file mode 0600.
|
|
77
|
-
* Creates ~/.coral/ directory if missing.
|
|
78
|
-
*/
|
|
79
21
|
app.patch('/env', async (c) => {
|
|
80
22
|
const body = (await c.req.json().catch(() => null));
|
|
81
23
|
if (!body || typeof body.content !== 'string') {
|
|
82
24
|
return c.json({ type: 'validation', title: 'content required', status: 422 }, 422);
|
|
83
25
|
}
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (existsSync(ENV_PATH)) {
|
|
91
|
-
if (!ifMatch) {
|
|
92
|
-
return c.json({ type: 'validation', title: 'etag required', status: 422 }, 422);
|
|
93
|
-
}
|
|
94
|
-
if (ifMatch !== currentEtag) {
|
|
95
|
-
return c.json({
|
|
96
|
-
type: 'conflict',
|
|
97
|
-
title: 'etag mismatch',
|
|
98
|
-
status: 409,
|
|
99
|
-
detail: 'env changed since you loaded it; reload and try again',
|
|
100
|
-
currentEtag,
|
|
101
|
-
}, 409);
|
|
26
|
+
const etag = body.etag ?? c.req.header('If-Match');
|
|
27
|
+
const r = await system.writeEnv(body.content, etag);
|
|
28
|
+
if (!r.ok) {
|
|
29
|
+
const problem = toProblemJson(r.error);
|
|
30
|
+
if (r.error.code === 'ENV_ETAG_MISMATCH' && r.error.details?.currentEtag) {
|
|
31
|
+
problem.currentEtag = r.error.details.currentEtag;
|
|
102
32
|
}
|
|
33
|
+
return c.json(problem, toHttpStatus(r.error));
|
|
103
34
|
}
|
|
104
|
-
|
|
105
|
-
mkdirSync(dirname(ENV_PATH), { recursive: true });
|
|
106
|
-
writeFileSync(ENV_PATH, body.content);
|
|
107
|
-
chmodSync(ENV_PATH, 0o600);
|
|
108
|
-
}
|
|
109
|
-
catch (err) {
|
|
110
|
-
return c.json({
|
|
111
|
-
type: 'internal',
|
|
112
|
-
title: 'write failed',
|
|
113
|
-
status: 500,
|
|
114
|
-
detail: err instanceof Error ? err.message : String(err),
|
|
115
|
-
}, 500);
|
|
116
|
-
}
|
|
117
|
-
const newEtag = createHash('sha256').update(body.content).digest('hex').slice(0, 16);
|
|
118
|
-
return c.json({ etag: newEtag });
|
|
35
|
+
return c.json(r.value);
|
|
119
36
|
});
|
|
120
|
-
/**
|
|
121
|
-
* GET /api/system/latest-version — Fetch latest npm version for self-update check.
|
|
122
|
-
* Spawns `npm view @coralai/sps-cli version`. 10s timeout.
|
|
123
|
-
*/
|
|
124
37
|
app.get('/latest-version', async (c) => {
|
|
125
|
-
|
|
126
|
-
const child = spawn('npm', ['view', '@coralai/sps-cli', 'version'], {
|
|
127
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
128
|
-
});
|
|
129
|
-
let stdout = '';
|
|
130
|
-
let stderr = '';
|
|
131
|
-
const timer = setTimeout(() => {
|
|
132
|
-
try {
|
|
133
|
-
child.kill('SIGKILL');
|
|
134
|
-
}
|
|
135
|
-
catch { /* noop */ }
|
|
136
|
-
r({ ok: false, error: 'npm view timeout (10s)' });
|
|
137
|
-
}, 10_000);
|
|
138
|
-
child.stdout?.on('data', (d) => (stdout += d.toString()));
|
|
139
|
-
child.stderr?.on('data', (d) => (stderr += d.toString()));
|
|
140
|
-
child.on('close', (code) => {
|
|
141
|
-
clearTimeout(timer);
|
|
142
|
-
if (code === 0)
|
|
143
|
-
r({ ok: true, version: stdout.trim() });
|
|
144
|
-
else
|
|
145
|
-
r({ ok: false, error: stderr.trim() || `npm exit ${code}` });
|
|
146
|
-
});
|
|
147
|
-
child.on('error', (err) => {
|
|
148
|
-
clearTimeout(timer);
|
|
149
|
-
r({ ok: false, error: err.message });
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
if (!result.ok) {
|
|
153
|
-
return c.json({ type: 'internal', title: 'version check failed', status: 500, detail: result.error }, 500);
|
|
154
|
-
}
|
|
155
|
-
return c.json({ current: version, latest: result.version, upToDate: version === result.version });
|
|
38
|
+
return sendResult(c, await system.latestVersion());
|
|
156
39
|
});
|
|
157
|
-
/**
|
|
158
|
-
* POST /api/system/upgrade — Run `npm i -g @coralai/sps-cli@latest`.
|
|
159
|
-
* Safety: refuses if any project has a running pipeline (supervisor.pid alive).
|
|
160
|
-
* Streams stdout/stderr back as plain text (user must refresh to re-bind new version).
|
|
161
|
-
*/
|
|
162
40
|
app.post('/upgrade', async (c) => {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
.filter((e) => e.isDirectory())
|
|
169
|
-
.map((e) => e.name);
|
|
170
|
-
for (const name of names) {
|
|
171
|
-
const pidFile = resolve(projectsDir, name, 'runtime', 'supervisor.pid');
|
|
172
|
-
if (!existsSync(pidFile))
|
|
173
|
-
continue;
|
|
174
|
-
try {
|
|
175
|
-
const pid = Number.parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
|
|
176
|
-
if (pid > 0) {
|
|
177
|
-
try {
|
|
178
|
-
process.kill(pid, 0);
|
|
179
|
-
runningProjects.push(name);
|
|
180
|
-
}
|
|
181
|
-
catch { /* dead */ }
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
catch { /* ignore */ }
|
|
41
|
+
const r = await system.upgrade();
|
|
42
|
+
if (!r.ok) {
|
|
43
|
+
const problem = toProblemJson(r.error);
|
|
44
|
+
if (r.error.details?.projects) {
|
|
45
|
+
problem.projects = r.error.details.projects;
|
|
185
46
|
}
|
|
47
|
+
return c.json(problem, toHttpStatus(r.error));
|
|
186
48
|
}
|
|
187
|
-
|
|
188
|
-
return c.json({
|
|
189
|
-
type: 'conflict',
|
|
190
|
-
title: 'pipelines running',
|
|
191
|
-
status: 409,
|
|
192
|
-
detail: `Stop pipelines first: ${runningProjects.join(', ')}`,
|
|
193
|
-
projects: runningProjects,
|
|
194
|
-
}, 409);
|
|
195
|
-
}
|
|
196
|
-
// Run npm i -g (streams output, returns combined log)
|
|
197
|
-
const result = await new Promise((r) => {
|
|
198
|
-
const child = spawn('npm', ['i', '-g', '@coralai/sps-cli@latest'], {
|
|
199
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
200
|
-
});
|
|
201
|
-
let output = '';
|
|
202
|
-
const timer = setTimeout(() => {
|
|
203
|
-
try {
|
|
204
|
-
child.kill('SIGKILL');
|
|
205
|
-
}
|
|
206
|
-
catch { /* noop */ }
|
|
207
|
-
r({ ok: false, output: output + '\n[timeout 120s]' });
|
|
208
|
-
}, 120_000);
|
|
209
|
-
child.stdout?.on('data', (d) => (output += d.toString()));
|
|
210
|
-
child.stderr?.on('data', (d) => (output += d.toString()));
|
|
211
|
-
child.on('close', (code) => {
|
|
212
|
-
clearTimeout(timer);
|
|
213
|
-
r({ ok: code === 0, output });
|
|
214
|
-
});
|
|
215
|
-
child.on('error', (err) => {
|
|
216
|
-
clearTimeout(timer);
|
|
217
|
-
r({ ok: false, output: output + `\n[spawn error: ${err.message}]` });
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
return c.json({ ok: result.ok, output: result.output });
|
|
49
|
+
return c.json(r.value);
|
|
221
50
|
});
|
|
222
|
-
app.get('/doctor/all', (c) => {
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
.filter((e) => e.isDirectory())
|
|
228
|
-
.map((e) => e.name);
|
|
229
|
-
for (const name of names) {
|
|
230
|
-
const issues = [];
|
|
231
|
-
const dir = resolve(projectsDir, name);
|
|
232
|
-
if (!existsSync(resolve(dir, 'conf')))
|
|
233
|
-
issues.push('missing conf');
|
|
234
|
-
if (!existsSync(resolve(dir, 'cards')))
|
|
235
|
-
issues.push('missing cards/');
|
|
236
|
-
const runtime = resolve(dir, 'runtime');
|
|
237
|
-
if (existsSync(runtime)) {
|
|
238
|
-
const markers = readdirSync(runtime).filter((f) => /worker-(?:worker-)?\d+-current\.json$/.test(f));
|
|
239
|
-
for (const mf of markers) {
|
|
240
|
-
try {
|
|
241
|
-
const stat = statSync(resolve(runtime, mf));
|
|
242
|
-
const ageMin = Math.floor((Date.now() - stat.mtimeMs) / 60000);
|
|
243
|
-
if (ageMin > 60)
|
|
244
|
-
issues.push(`stale marker ${mf} (${ageMin}m)`);
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
/* ignore */
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
report.push({ project: name, issues, ok: issues.length === 0 });
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return c.json({ data: report });
|
|
51
|
+
app.get('/doctor/all', async (c) => {
|
|
52
|
+
const r = await system.doctorAll();
|
|
53
|
+
if (!r.ok)
|
|
54
|
+
return sendResult(c, r);
|
|
55
|
+
return c.json({ data: r.value });
|
|
255
56
|
});
|
|
256
|
-
/**
|
|
257
|
-
* POST /api/client-errors — Front-end error telemetry sink.
|
|
258
|
-
* Accepts { message, stack, url, ua, ts } and writes to server log.
|
|
259
|
-
* No persistence, just log for now. Limits body to 8KB to prevent abuse.
|
|
260
|
-
*/
|
|
57
|
+
/** 前端错误日志:服务 stderr only,不进 Service */
|
|
261
58
|
app.post('/client-errors', async (c) => {
|
|
262
59
|
const raw = await c.req.text().catch(() => '');
|
|
263
60
|
if (raw.length > 8192) {
|
|
@@ -270,7 +67,6 @@ export function createSystemRoute(version, startedAt) {
|
|
|
270
67
|
catch {
|
|
271
68
|
return c.json({ type: 'validation', title: 'invalid JSON', status: 422 }, 422);
|
|
272
69
|
}
|
|
273
|
-
// Log to stderr via simple structured line — server log collection reads stderr
|
|
274
70
|
const line = [
|
|
275
71
|
`[client-error]`,
|
|
276
72
|
body.ts ?? new Date().toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/console/routes/system.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/console/routes/system.ts"],"names":[],"mappings":"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"}
|
package/dist/core/checklist.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - parseChecklist 每次读卡时调用(毫秒级成本),不缓存
|
|
13
13
|
* - 只统计顶级项目,嵌套子项不递归(见 v0.42 设计决策 #6)
|
|
14
14
|
*/
|
|
15
|
-
import type { ChecklistStats } from '../
|
|
15
|
+
import type { ChecklistStats } from '../shared/types.js';
|
|
16
16
|
/**
|
|
17
17
|
* Parse a markdown body for the "## 检查清单" section and return progress stats.
|
|
18
18
|
* Returns `undefined` when the section is missing entirely (so callers can
|
package/dist/core/state.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ACPSessionRecord } from '../models/acp.js';
|
|
2
|
-
import type { CardState } from '../
|
|
2
|
+
import type { CardState } from '../shared/types.js';
|
|
3
3
|
export interface WorkerSlotState {
|
|
4
4
|
status: 'idle' | 'active' | 'merging' | 'resolving' | 'releasing';
|
|
5
5
|
seq: number | null;
|
|
@@ -22,7 +22,7 @@ import type { RepoBackend } from '../interfaces/RepoBackend.js';
|
|
|
22
22
|
import type { TaskBackend } from '../interfaces/TaskBackend.js';
|
|
23
23
|
import type { ProcessSupervisor } from '../manager/supervisor.js';
|
|
24
24
|
import type { WorkerManager } from '../manager/worker-manager.js';
|
|
25
|
-
import type { CommandResult } from '../
|
|
25
|
+
import type { CommandResult } from '../shared/types.js';
|
|
26
26
|
/**
|
|
27
27
|
* MonitorEngine performs anomaly detection and health checks.
|
|
28
28
|
*
|
|
@@ -20,7 +20,7 @@ import type { ProjectContext } from '../core/context.js';
|
|
|
20
20
|
import type { ProjectPipelineAdapter } from '../core/projectPipelineAdapter.js';
|
|
21
21
|
import type { Notifier } from '../interfaces/Notifier.js';
|
|
22
22
|
import type { TaskBackend } from '../interfaces/TaskBackend.js';
|
|
23
|
-
import type { CommandResult } from '../
|
|
23
|
+
import type { CommandResult } from '../shared/types.js';
|
|
24
24
|
export declare class SchedulerEngine {
|
|
25
25
|
private ctx;
|
|
26
26
|
private taskBackend;
|
|
@@ -22,7 +22,7 @@ import type { Notifier } from '../interfaces/Notifier.js';
|
|
|
22
22
|
import type { RepoBackend } from '../interfaces/RepoBackend.js';
|
|
23
23
|
import type { TaskBackend } from '../interfaces/TaskBackend.js';
|
|
24
24
|
import type { WorkerManager } from '../manager/worker-manager.js';
|
|
25
|
-
import type { CommandResult } from '../
|
|
25
|
+
import type { CommandResult } from '../shared/types.js';
|
|
26
26
|
/**
|
|
27
27
|
* StageEngine — generic engine that handles any pipeline stage.
|
|
28
28
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @layer interface
|
|
14
14
|
* @boundedContext repository-operations
|
|
15
15
|
*/
|
|
16
|
-
import type { MrStatus } from '../
|
|
16
|
+
import type { MrStatus } from '../shared/types.js';
|
|
17
17
|
export interface RepoBackend {
|
|
18
18
|
ensureCleanBase(repoDir: string, baseBranch: string): Promise<void>;
|
|
19
19
|
ensureBranch(repoDir: string, branchName: string, baseBranch: string): Promise<void>;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @layer interface
|
|
14
14
|
* @boundedContext task-management
|
|
15
15
|
*/
|
|
16
|
-
import type { Card, CardState } from '../
|
|
16
|
+
import type { Card, CardState } from '../shared/types.js';
|
|
17
17
|
export interface TaskBackend {
|
|
18
18
|
listAll(): Promise<Card[]>;
|
|
19
19
|
listByState(state: CardState): Promise<Card[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProjectConfig } from '../core/config.js';
|
|
2
2
|
import type { RepoBackend } from '../interfaces/RepoBackend.js';
|
|
3
|
-
import type { MrStatus } from '../
|
|
3
|
+
import type { MrStatus } from '../shared/types.js';
|
|
4
4
|
export declare class GitLabRepoBackend implements RepoBackend {
|
|
5
5
|
private readonly gitlabUrl;
|
|
6
6
|
private readonly projectId;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProjectConfig } from '../core/config.js';
|
|
2
2
|
import type { TaskBackend } from '../interfaces/TaskBackend.js';
|
|
3
|
-
import type { Card, CardState } from '../
|
|
3
|
+
import type { Card, CardState } from '../shared/types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Markdown-based TaskBackend.
|
|
6
6
|
*
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Clock } from '../infra/clock.js';
|
|
2
|
+
import type { FileSystem } from '../infra/filesystem.js';
|
|
3
|
+
import type { ProcessSpawner } from '../infra/spawn.js';
|
|
4
|
+
import { type DomainError } from '../shared/errors.js';
|
|
5
|
+
import { type Result } from '../shared/result.js';
|
|
6
|
+
export interface SystemInfo {
|
|
7
|
+
readonly version: string;
|
|
8
|
+
readonly nodeVersion: string;
|
|
9
|
+
readonly startedAt: string;
|
|
10
|
+
readonly uptimeMs: number;
|
|
11
|
+
readonly platform: string;
|
|
12
|
+
readonly pid: number;
|
|
13
|
+
}
|
|
14
|
+
export interface EnvEntry {
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly value: string;
|
|
17
|
+
readonly masked: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface EnvListing {
|
|
20
|
+
readonly path: string;
|
|
21
|
+
readonly exists: boolean;
|
|
22
|
+
readonly entries: EnvEntry[];
|
|
23
|
+
}
|
|
24
|
+
export interface EnvRaw {
|
|
25
|
+
readonly path: string;
|
|
26
|
+
readonly exists: boolean;
|
|
27
|
+
readonly content: string;
|
|
28
|
+
readonly etag: string;
|
|
29
|
+
}
|
|
30
|
+
export interface LatestVersion {
|
|
31
|
+
readonly current: string;
|
|
32
|
+
readonly latest: string;
|
|
33
|
+
readonly upToDate: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface UpgradeResult {
|
|
36
|
+
readonly ok: boolean;
|
|
37
|
+
readonly output: string;
|
|
38
|
+
}
|
|
39
|
+
export interface DoctorReport {
|
|
40
|
+
readonly project: string;
|
|
41
|
+
readonly issues: string[];
|
|
42
|
+
readonly ok: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface SystemServiceDeps {
|
|
45
|
+
readonly fs: FileSystem;
|
|
46
|
+
readonly clock: Clock;
|
|
47
|
+
readonly spawner: ProcessSpawner;
|
|
48
|
+
readonly version: string;
|
|
49
|
+
readonly startedAt: Date;
|
|
50
|
+
}
|
|
51
|
+
export declare class SystemService {
|
|
52
|
+
private readonly deps;
|
|
53
|
+
constructor(deps: SystemServiceDeps);
|
|
54
|
+
info(): SystemInfo;
|
|
55
|
+
readEnv(): Promise<Result<EnvListing, DomainError>>;
|
|
56
|
+
readEnvRaw(): Promise<Result<EnvRaw, DomainError>>;
|
|
57
|
+
writeEnv(content: string, etag: string | undefined): Promise<Result<{
|
|
58
|
+
etag: string;
|
|
59
|
+
}, DomainError>>;
|
|
60
|
+
latestVersion(): Promise<Result<LatestVersion, DomainError>>;
|
|
61
|
+
/** 执行 npm i -g —— pipeline 在跑时拒绝以保证原子性。 */
|
|
62
|
+
upgrade(): Promise<Result<UpgradeResult, DomainError>>;
|
|
63
|
+
doctorAll(): Promise<Result<DoctorReport[], DomainError>>;
|
|
64
|
+
/** 列出当前在跑 pipeline 的项目名 —— upgrade 前置检查用 */
|
|
65
|
+
private listRunningPipelines;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=SystemService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemService.d.ts","sourceRoot":"","sources":["../../src/services/SystemService.ts"],"names":[],"mappings":"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"}
|