@aalis/plugin-doctor 0.1.0
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/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +250 -0
- package/dist/index.js.map +1 -0
- package/package.json +41 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Context, PluginModule } from '@aalis/core';
|
|
2
|
+
import type { CheckCategory, CheckLevel, CheckResult, CheckSpec, DoctorReport, DoctorService } from '@aalis/plugin-doctor-api';
|
|
3
|
+
export type { CheckCategory, CheckLevel, CheckResult, CheckSpec, DoctorReport, DoctorService };
|
|
4
|
+
export declare const name = "@aalis/plugin-doctor";
|
|
5
|
+
export declare const displayName = "\u7CFB\u7EDF\u8BCA\u65AD";
|
|
6
|
+
export declare const subsystem = "platform";
|
|
7
|
+
export declare const provides: string[];
|
|
8
|
+
export declare const inject: {
|
|
9
|
+
optional: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare const actions: PluginModule['actions'];
|
|
12
|
+
export declare function apply(ctx: Context, _config: Record<string, unknown>): void;
|
|
13
|
+
export declare function formatReport(report: DoctorReport): string;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAwB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACd,MAAM,0BAA0B,CAAC;AAMlC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAI/F,eAAO,MAAM,IAAI,yBAAyB,CAAC;AAC3C,eAAO,MAAM,WAAW,6BAAS,CAAC;AAClC,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,QAAQ,UAAa,CAAC;AACnC,eAAO,MAAM,MAAM;;CAElB,CAAC;AA0GF,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,SAAS,CAa3C,CAAC;AAIF,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiB1E;AAkFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA+BzD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { version as nodeVersion, platform } from 'node:process';
|
|
2
|
+
import { useCommandService } from '@aalis/plugin-commands-api';
|
|
3
|
+
import { useWebuiService } from '@aalis/plugin-webui-api';
|
|
4
|
+
// ===== 元数据 =====
|
|
5
|
+
export const name = '@aalis/plugin-doctor';
|
|
6
|
+
export const displayName = '系统诊断';
|
|
7
|
+
export const subsystem = 'platform';
|
|
8
|
+
export const provides = ['doctor'];
|
|
9
|
+
export const inject = {
|
|
10
|
+
optional: ['plugins', 'commands'],
|
|
11
|
+
};
|
|
12
|
+
// ===== Registry =====
|
|
13
|
+
class DoctorRegistry {
|
|
14
|
+
ctx;
|
|
15
|
+
last;
|
|
16
|
+
specs = new Map();
|
|
17
|
+
constructor(ctx) {
|
|
18
|
+
this.ctx = ctx;
|
|
19
|
+
}
|
|
20
|
+
getLastReport() {
|
|
21
|
+
return this.last;
|
|
22
|
+
}
|
|
23
|
+
registerCheck(spec) {
|
|
24
|
+
if (this.specs.has(spec.id)) {
|
|
25
|
+
this.ctx.logger.debug(`doctor: 检查项 ${spec.id} 被覆盖注册`);
|
|
26
|
+
}
|
|
27
|
+
this.specs.set(spec.id, spec);
|
|
28
|
+
return () => {
|
|
29
|
+
const cur = this.specs.get(spec.id);
|
|
30
|
+
if (cur === spec)
|
|
31
|
+
this.specs.delete(spec.id);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
listChecks() {
|
|
35
|
+
return [...this.specs.values()].map(s => ({ id: s.id, category: s.category, pluginName: s.pluginName }));
|
|
36
|
+
}
|
|
37
|
+
async runChecks() {
|
|
38
|
+
const checks = [];
|
|
39
|
+
for (const spec of this.specs.values()) {
|
|
40
|
+
try {
|
|
41
|
+
const r = await spec.run(this.ctx);
|
|
42
|
+
const list = Array.isArray(r) ? r : [r];
|
|
43
|
+
for (const c of list)
|
|
44
|
+
checks.push(c);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
checks.push({
|
|
48
|
+
id: spec.id,
|
|
49
|
+
category: spec.category,
|
|
50
|
+
level: 'error',
|
|
51
|
+
message: `检查项 ${spec.id} 抛出异常`,
|
|
52
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const summary = checks.reduce((acc, c) => {
|
|
57
|
+
acc[c.level]++;
|
|
58
|
+
return acc;
|
|
59
|
+
}, { ok: 0, warn: 0, error: 0 });
|
|
60
|
+
this.last = {
|
|
61
|
+
generatedAt: new Date().toISOString(),
|
|
62
|
+
summary,
|
|
63
|
+
checks,
|
|
64
|
+
};
|
|
65
|
+
// 通知 WebUI 同步刷新(webui-server 监听并广播到所有连接的客户端)
|
|
66
|
+
this.ctx.emit('doctor:updated', { generatedAt: this.last.generatedAt, summary }).catch(() => { });
|
|
67
|
+
return this.last;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// ===== WebUI 页面 =====
|
|
71
|
+
const webuiPages = [
|
|
72
|
+
{
|
|
73
|
+
key: 'doctor',
|
|
74
|
+
label: '系统诊断',
|
|
75
|
+
icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>',
|
|
76
|
+
order: 90,
|
|
77
|
+
content: [
|
|
78
|
+
{
|
|
79
|
+
type: 'actions',
|
|
80
|
+
label: '运行诊断',
|
|
81
|
+
items: [{ label: '立即运行', method: 'runChecks' }],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'info',
|
|
85
|
+
label: '上次运行时间',
|
|
86
|
+
source: 'getLastRunAt',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'table',
|
|
90
|
+
label: '最近一次诊断结果',
|
|
91
|
+
source: 'getReport',
|
|
92
|
+
columns: [
|
|
93
|
+
{ key: 'level', label: '级别' },
|
|
94
|
+
{ key: 'category', label: '类别' },
|
|
95
|
+
{ key: 'id', label: '检查项' },
|
|
96
|
+
{ key: 'message', label: '说明' },
|
|
97
|
+
{ key: 'detail', label: '详情' },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
// ===== Actions(供 WebUI 调用) =====
|
|
104
|
+
export const actions = {
|
|
105
|
+
async runChecks(ctx) {
|
|
106
|
+
return ctx.getService('doctor')?.runChecks();
|
|
107
|
+
},
|
|
108
|
+
async getReport(ctx) {
|
|
109
|
+
return ctx.getService('doctor')?.getLastReport()?.checks ?? [];
|
|
110
|
+
},
|
|
111
|
+
async getLastRunAt(ctx) {
|
|
112
|
+
const last = ctx.getService('doctor')?.getLastReport();
|
|
113
|
+
if (!last)
|
|
114
|
+
return { value: '尚未运行' };
|
|
115
|
+
const s = last.summary;
|
|
116
|
+
return { value: `${formatLocalTime(last.generatedAt)} — ok=${s.ok} warn=${s.warn} error=${s.error}` };
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
// ===== apply =====
|
|
120
|
+
export function apply(ctx, _config) {
|
|
121
|
+
const registry = new DoctorRegistry(ctx);
|
|
122
|
+
ctx.provide('doctor', registry, { capabilities: ['diagnose'] });
|
|
123
|
+
// 注册 builtin 检查项(与第三方插件走同一条注册路径,自然出现在 listChecks 里)
|
|
124
|
+
registerBuiltinChecks(registry);
|
|
125
|
+
const webui = useWebuiService(ctx);
|
|
126
|
+
for (const page of webuiPages)
|
|
127
|
+
webui.registerPage(page);
|
|
128
|
+
// 注册 /doctor 命令 —— chat 与 CLI 通用入口
|
|
129
|
+
useCommandService(ctx)
|
|
130
|
+
.command('doctor', '运行系统诊断(环境 / 文件系统 / 插件状态)')
|
|
131
|
+
.action(async () => {
|
|
132
|
+
const report = await registry.runChecks();
|
|
133
|
+
return formatReport(report);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// ===== Builtin checks(同样走 registerCheck,所有 check 一视同仁)=====
|
|
137
|
+
//
|
|
138
|
+
// 此处只保留「与领域无关、纯 doctor 自身职能」的检查项。原本的 fs.data /
|
|
139
|
+
// commands.overrides 已迁出到对应领域插件(plugin-storage-local / plugin-commands),
|
|
140
|
+
// 它们通过 useDoctorService 自行注册——避免 doctor 反向硬依赖业务插件。
|
|
141
|
+
//
|
|
142
|
+
// `plugins.status` 留在这里:它读 PluginManager(核心服务),不属于任何业务插件领域;
|
|
143
|
+
// 若未来 PluginManager 自带 self-check,可一并迁走。
|
|
144
|
+
function registerBuiltinChecks(reg) {
|
|
145
|
+
reg.registerCheck({
|
|
146
|
+
id: 'env.node',
|
|
147
|
+
category: 'env',
|
|
148
|
+
pluginName: '@aalis/plugin-doctor',
|
|
149
|
+
run() {
|
|
150
|
+
const major = Number(nodeVersion.replace(/^v/, '').split('.')[0]);
|
|
151
|
+
return {
|
|
152
|
+
id: 'env.node',
|
|
153
|
+
category: 'env',
|
|
154
|
+
level: major >= 22 ? 'ok' : 'error',
|
|
155
|
+
message: `Node ${nodeVersion}`,
|
|
156
|
+
detail: major >= 22 ? undefined : '推荐 Node ≥ 22',
|
|
157
|
+
};
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
reg.registerCheck({
|
|
161
|
+
id: 'env.platform',
|
|
162
|
+
category: 'env',
|
|
163
|
+
pluginName: '@aalis/plugin-doctor',
|
|
164
|
+
run() {
|
|
165
|
+
return { id: 'env.platform', category: 'env', level: 'ok', message: `平台 ${platform}` };
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
reg.registerCheck({
|
|
169
|
+
id: 'plugins.status',
|
|
170
|
+
category: 'plugins',
|
|
171
|
+
pluginName: '@aalis/plugin-doctor',
|
|
172
|
+
run(ctx) {
|
|
173
|
+
const pm = ctx.getService('plugins');
|
|
174
|
+
if (!pm) {
|
|
175
|
+
return {
|
|
176
|
+
id: 'plugins.service',
|
|
177
|
+
category: 'plugins',
|
|
178
|
+
level: 'warn',
|
|
179
|
+
message: 'PluginManagerService 不可用,跳过插件检查',
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const status = pm.getStatus();
|
|
183
|
+
const errored = status.filter(s => s.state === 'error');
|
|
184
|
+
const pending = status.filter(s => s.state === 'pending');
|
|
185
|
+
const active = status.filter(s => s.state === 'active');
|
|
186
|
+
return [
|
|
187
|
+
{
|
|
188
|
+
id: 'plugins.active',
|
|
189
|
+
category: 'plugins',
|
|
190
|
+
level: 'ok',
|
|
191
|
+
message: `已激活插件 ${active.length} 个 / 共 ${status.length} 个`,
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: 'plugins.errored',
|
|
195
|
+
category: 'plugins',
|
|
196
|
+
level: errored.length === 0 ? 'ok' : 'error',
|
|
197
|
+
message: errored.length === 0 ? '无错误状态插件' : `${errored.length} 个插件 apply() 失败`,
|
|
198
|
+
detail: errored.length > 0 ? errored.map(p => `${p.instanceId}: ${p.error}`).join('\n') : undefined,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: 'plugins.pending',
|
|
202
|
+
category: 'plugins',
|
|
203
|
+
level: pending.length === 0 ? 'ok' : 'warn',
|
|
204
|
+
message: pending.length === 0 ? '无未就绪插件' : `${pending.length} 个插件 required deps 未满足`,
|
|
205
|
+
detail: pending.length > 0 ? pending.map(p => p.instanceId).join(', ') : undefined,
|
|
206
|
+
},
|
|
207
|
+
];
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
// ===== helpers =====
|
|
212
|
+
export function formatReport(report) {
|
|
213
|
+
// 聊天栏排版:按 level 分组,加换行,避免一坨平铺
|
|
214
|
+
const byLevel = { error: [], warn: [], ok: [] };
|
|
215
|
+
for (const c of report.checks)
|
|
216
|
+
byLevel[c.level].push(c);
|
|
217
|
+
const s = report.summary;
|
|
218
|
+
const lines = [];
|
|
219
|
+
lines.push(`**系统诊断 — ${formatLocalTime(report.generatedAt)}**`);
|
|
220
|
+
lines.push(`汇总: ✓ ${s.ok} ! ${s.warn} ✗ ${s.error}`);
|
|
221
|
+
lines.push('');
|
|
222
|
+
const sections = [
|
|
223
|
+
['error', '✗ 错误'],
|
|
224
|
+
['warn', '! 警告'],
|
|
225
|
+
['ok', '✓ 通过'],
|
|
226
|
+
];
|
|
227
|
+
for (const [level, title] of sections) {
|
|
228
|
+
const items = byLevel[level];
|
|
229
|
+
if (items.length === 0)
|
|
230
|
+
continue;
|
|
231
|
+
lines.push(`__${title}__`);
|
|
232
|
+
for (const c of items) {
|
|
233
|
+
lines.push(`- \`${c.category}/${c.id}\` — ${c.message}`);
|
|
234
|
+
if (c.detail) {
|
|
235
|
+
for (const dl of c.detail.split('\n'))
|
|
236
|
+
lines.push(` ${dl}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
lines.push('');
|
|
240
|
+
}
|
|
241
|
+
return lines.join('\n').trimEnd();
|
|
242
|
+
}
|
|
243
|
+
function formatLocalTime(iso) {
|
|
244
|
+
const d = new Date(iso);
|
|
245
|
+
if (Number.isNaN(d.getTime()))
|
|
246
|
+
return iso;
|
|
247
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
248
|
+
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aalis/plugin-doctor",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"aalis-plugin"
|
|
7
|
+
],
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@aalis/plugin-webui-api": "^0.1.0",
|
|
15
|
+
"@aalis/plugin-commands-api": "^0.1.0"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/node": "^22.0.0",
|
|
19
|
+
"typescript": "^5.7.0",
|
|
20
|
+
"@aalis/plugin-doctor-api": "0.1.0",
|
|
21
|
+
"@aalis/core": "0.1.0"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@aalis/core": "^0.1.0"
|
|
25
|
+
},
|
|
26
|
+
"aalis": {
|
|
27
|
+
"service": {
|
|
28
|
+
"optional": [
|
|
29
|
+
"plugins",
|
|
30
|
+
"commands"
|
|
31
|
+
],
|
|
32
|
+
"provides": [
|
|
33
|
+
"doctor"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc",
|
|
39
|
+
"dev": "tsc --watch"
|
|
40
|
+
}
|
|
41
|
+
}
|