@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.
@@ -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
+ }