@aalis/plugin-webui-server 0.12.0 → 0.13.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/auth.d.ts +3 -3
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +6 -3
- package/dist/auth.js.map +1 -1
- package/dist/client-discovery.d.ts +2 -1
- package/dist/client-discovery.d.ts.map +1 -1
- package/dist/client-discovery.js +4 -3
- package/dist/client-discovery.js.map +1 -1
- package/dist/index.d.ts +15 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -86
- package/dist/index.js.map +1 -1
- package/dist/routes/marketplace.d.ts +27 -24
- package/dist/routes/marketplace.d.ts.map +1 -1
- package/dist/routes/marketplace.js +114 -82
- package/dist/routes/marketplace.js.map +1 -1
- package/dist/routes/plugins.d.ts +22 -4
- package/dist/routes/plugins.d.ts.map +1 -1
- package/dist/routes/plugins.js +225 -85
- package/dist/routes/plugins.js.map +1 -1
- package/dist/routes/uploaded-files.d.ts.map +1 -1
- package/dist/routes/uploaded-files.js +19 -26
- package/dist/routes/uploaded-files.js.map +1 -1
- package/package.json +28 -25
package/dist/routes/plugins.js
CHANGED
|
@@ -1,14 +1,55 @@
|
|
|
1
1
|
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
import { isConfigSaveRefused } from '@aalis/api-host-config';
|
|
2
3
|
import { parseInstanceId } from '@aalis/core';
|
|
3
4
|
import { CORE_CONFIG_SCHEMA, cloneConfigObject, defaultsFrom, removeExtraFields, validateConfig, } from '@aalis/schema-config';
|
|
4
5
|
function errorMessage(err) {
|
|
5
6
|
return err instanceof Error ? err.message : String(err);
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* 落盘被拒后运行态怎样与文件对齐:插件配置与新建的实例随配置文件热重载(文件里没有配置段的后缀实例会被卸载);
|
|
10
|
+
* 启停、实例删除与服务偏好只在重启时按文件登记
|
|
11
|
+
*/
|
|
12
|
+
const RECONCILE = {
|
|
13
|
+
reload: '修好配置文件后会按文件内容重载',
|
|
14
|
+
restart: '修好配置文件后,重启时以文件内容为准',
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 管理动作改完运行态之后落盘;失败时回 `applied: true` 并返回 false:改动已在运行态生效、只是没写进文件,
|
|
18
|
+
* 调用方别当成「没改成」去重试。宿主拒写(配置文件有尚未生效的外部修改)回 409,之后以文件为准对账;
|
|
19
|
+
* 其它失败(权限、磁盘写满等)回 500,文件没变也不会触发重载,改动留在文档里,下一次成功保存时一并写入。
|
|
20
|
+
*/
|
|
21
|
+
export async function saveAfterApply(doc, res, reconcile) {
|
|
22
|
+
try {
|
|
23
|
+
await doc.save();
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
if (isConfigSaveRefused(err)) {
|
|
28
|
+
res.status(409).json({
|
|
29
|
+
error: `已在运行态生效,但未写入配置文件(${errorMessage(err)});${RECONCILE[reconcile]}`,
|
|
30
|
+
applied: true,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
res.status(500).json({
|
|
35
|
+
error: `已在运行态生效,但写入配置文件失败(${errorMessage(err)});改动保留在文档里,下次保存成功时一并写入`,
|
|
36
|
+
applied: true,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
7
42
|
/** 注册插件管理 + 全局配置相关 REST 路由 */
|
|
8
43
|
export function registerPluginRoutes(expressApp, caps, identify, gate, getAction) {
|
|
9
44
|
const getApp = () => caps.app.current;
|
|
10
45
|
const getPluginMgr = () => caps.plugins.current;
|
|
11
|
-
|
|
46
|
+
/** 配置文档由宿主提供;没有时读写文档的路由一律 503,与扫描、市场路由的缺席口径一致 */
|
|
47
|
+
const docOr503 = (res) => {
|
|
48
|
+
const doc = caps.hostConfig.current;
|
|
49
|
+
if (!doc)
|
|
50
|
+
res.status(503).json({ error: '宿主未提供配置文档(host-config),无法读写配置' });
|
|
51
|
+
return doc;
|
|
52
|
+
};
|
|
12
53
|
// 获取插件列表及状态
|
|
13
54
|
expressApp.get('/api/plugins', gate(), (_req, res) => {
|
|
14
55
|
const app = getApp();
|
|
@@ -55,6 +96,7 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
55
96
|
instanceId: p.instanceId,
|
|
56
97
|
displayName: p.displayName,
|
|
57
98
|
state: p.state,
|
|
99
|
+
slow: p.slow,
|
|
58
100
|
provides: p.provides ?? [],
|
|
59
101
|
// 完整能力声明含内置能力与 apply 别名;外部依赖闸与工具/指令可见性仍是各自独立的事实。
|
|
60
102
|
uses: p.uses,
|
|
@@ -137,8 +179,10 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
137
179
|
});
|
|
138
180
|
// 获取当前全局配置
|
|
139
181
|
expressApp.get('/api/config', gate(), (_req, res) => {
|
|
140
|
-
const
|
|
141
|
-
|
|
182
|
+
const doc = docOr503(res);
|
|
183
|
+
if (!doc)
|
|
184
|
+
return;
|
|
185
|
+
res.json({ ...doc.getAll(), _schema: CORE_CONFIG_SCHEMA });
|
|
142
186
|
});
|
|
143
187
|
// 更新全局配置字段
|
|
144
188
|
expressApp.put('/api/config', gate(), async (req, res) => {
|
|
@@ -148,17 +192,22 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
148
192
|
return;
|
|
149
193
|
}
|
|
150
194
|
const app = getApp();
|
|
151
|
-
|
|
152
|
-
if (!app || !pm) {
|
|
195
|
+
if (!app) {
|
|
153
196
|
res.status(500).json({ error: 'App 不可用' });
|
|
154
197
|
return;
|
|
155
198
|
}
|
|
199
|
+
const doc = docOr503(res);
|
|
200
|
+
if (!doc)
|
|
201
|
+
return;
|
|
156
202
|
// 可改的只有 CORE_CONFIG_SCHEMA 的键。内置前端(buildDraftFromSchema)会把 GET 到的整份配置连同
|
|
157
203
|
// _schema 原样回传,其中 plugins 等还可能是过期快照(插件配置页保存后不刷新全局 config),
|
|
158
204
|
// 所以不能按键报错:其余键一律不应用,但把真有改动的点名回给调用方——不静默吞掉却回复「已保存」。
|
|
159
205
|
const allowed = Object.keys(CORE_CONFIG_SCHEMA);
|
|
160
|
-
const current =
|
|
161
|
-
|
|
206
|
+
const current = doc.getAll();
|
|
207
|
+
// 文档里没写的核心键按 schema 默认值比较:内置前端把默认值回填进草稿后整份回传,不能据此判成改动(否则只改
|
|
208
|
+
// 名字也会把默认值写进文件并触发重启)
|
|
209
|
+
const currentOf = (k) => current[k] ?? CORE_CONFIG_SCHEMA[k]?.default;
|
|
210
|
+
const differs = (k) => !isDeepStrictEqual(updates[k], currentOf(k));
|
|
162
211
|
const ignored = Object.keys(updates).filter(k => k !== '_schema' && !allowed.includes(k) && differs(k));
|
|
163
212
|
const changed = allowed.filter(k => k in updates && differs(k));
|
|
164
213
|
// 与插件配置路径同一把尺子:类型不符的值(如 name 传数字)不落盘。select 的取值范围 validateConfig
|
|
@@ -175,32 +224,52 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
175
224
|
res.status(400).json({ error: invalid.join('; ') });
|
|
176
225
|
return;
|
|
177
226
|
}
|
|
227
|
+
const previous = Object.fromEntries(changed.map(k => [k, current[k]]));
|
|
178
228
|
for (const key of changed)
|
|
179
|
-
|
|
180
|
-
// name /
|
|
181
|
-
const restartNeeded = changed.
|
|
229
|
+
doc.set(key, updates[key]);
|
|
230
|
+
// logLevel 与 slowThresholdMs 只在启动时读取,改了才重启;name 由 /api/status 每次实时读文档,保存即生效
|
|
231
|
+
const restartNeeded = changed.some(k => k === 'logLevel' || k === 'slowThresholdMs');
|
|
182
232
|
const note = ignored.length > 0 ? `(已忽略不可修改的字段: ${ignored.join(', ')})` : '';
|
|
183
233
|
try {
|
|
184
|
-
await
|
|
185
|
-
if (restartNeeded) {
|
|
186
|
-
res.json({ ok: true, message: `全局配置已更新,正在重启应用以生效…${note}`, restart: true, ignored });
|
|
187
|
-
app.restart();
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
res.json({ ok: true, message: `全局配置已更新并保存${note}`, ignored });
|
|
191
|
-
}
|
|
234
|
+
await doc.save();
|
|
192
235
|
}
|
|
193
236
|
catch (err) {
|
|
194
|
-
|
|
195
|
-
|
|
237
|
+
// 拒写与写入失败都撤回文档里的改动,免得下一次任意保存把这次没存下的修改写进文件。
|
|
238
|
+
// logLevel / slowThresholdMs 要重启才生效,name 由状态接口读文档:撤回后都回到修改前,运行态不留改动
|
|
239
|
+
for (const key of changed)
|
|
240
|
+
doc.set(key, previous[key]);
|
|
241
|
+
res
|
|
242
|
+
.status(isConfigSaveRefused(err) ? 409 : 500)
|
|
243
|
+
.json({ error: `未写入配置文件(${errorMessage(err)}),本次修改已撤回` });
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (!restartNeeded) {
|
|
247
|
+
res.json({ ok: true, message: `全局配置已更新并保存${note}`, ignored });
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// 先发起重启再回复:宿主没注入重启策略时 restart() 同步抛错,据此回 restart:false,前端才不会进入等待重连
|
|
251
|
+
// 却永远等不到。发起之后的停机是异步的(core 先广播 app:restarting,何时停机由重启策略决定,Node 宿主延迟
|
|
252
|
+
// 500ms),这条回复来得及发出。已写进文件,重启失败不撤回:改动在下次启动时生效
|
|
253
|
+
try {
|
|
254
|
+
app.restart();
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
const reason = `全局配置已保存,但重启失败(${errorMessage(err)}),改动在下次启动时生效`;
|
|
258
|
+
caps.logger?.error(reason);
|
|
259
|
+
res.json({ ok: true, message: `${reason}${note}`, restart: false, ignored });
|
|
260
|
+
return;
|
|
196
261
|
}
|
|
262
|
+
res.json({ ok: true, message: `全局配置已更新,正在重启应用以生效…${note}`, restart: true, ignored });
|
|
197
263
|
});
|
|
198
264
|
// 获取单个插件的原始配置(未脱敏,给编辑器回写用)。
|
|
199
265
|
// 列表 GET /api/plugins 已把 schema.secret 换成固定掩码;本接口必须是原文,否则保存会把掩码写回。
|
|
200
266
|
expressApp.get('/api/plugins/:name/config', gate(), (req, res) => {
|
|
201
267
|
const pluginName = req.params.name;
|
|
268
|
+
const doc = docOr503(res);
|
|
269
|
+
if (!doc)
|
|
270
|
+
return;
|
|
202
271
|
try {
|
|
203
|
-
const pluginConfig =
|
|
272
|
+
const pluginConfig = doc.getPluginConfig(pluginName);
|
|
204
273
|
res.json({ name: pluginName, config: pluginConfig });
|
|
205
274
|
}
|
|
206
275
|
catch (err) {
|
|
@@ -215,34 +284,52 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
215
284
|
res.status(400).json({ error: 'config 字段必须是对象' });
|
|
216
285
|
return;
|
|
217
286
|
}
|
|
218
|
-
const app = getApp();
|
|
219
287
|
const pm = getPluginMgr();
|
|
220
|
-
if (!
|
|
221
|
-
res.status(500).json({ error: '
|
|
288
|
+
if (!pm) {
|
|
289
|
+
res.status(500).json({ error: '插件管理服务不可用' });
|
|
222
290
|
return;
|
|
223
291
|
}
|
|
292
|
+
const doc = docOr503(res);
|
|
293
|
+
if (!doc)
|
|
294
|
+
return;
|
|
224
295
|
// 补默认值再交给 updateConfig:后者是**整体替换**语义(core 的 orchestration/plugin.ts 里
|
|
225
296
|
// entry.config = newConfig 直接顶掉)。不补的话,PUT 一个部分对象就会把未列出的
|
|
226
297
|
// 字段从内存态和 yaml 里一起抹掉。默认值从 configSchema 派生(唯一声明来源)。
|
|
227
|
-
const
|
|
298
|
+
const entry = pm.getPlugin(pluginName);
|
|
299
|
+
const schema = entry?.definition?.configSchema;
|
|
228
300
|
const defaults = defaultsFrom(schema);
|
|
229
301
|
// 基线取「默认值叠已存值」而非裸默认值:defaultsFrom 只收录声明了 default 的键,
|
|
230
302
|
// 而 apiKey / accessToken 这类 secret 多数**没有** default(deepseek、embedding-openai、
|
|
231
303
|
// llm-openai、serper、onebot 皆是)。用裸 defaults 打底时,请求里没带 apiKey 就等于
|
|
232
304
|
// merged 里根本没有这个键,整体替换后用户的密钥从内存态与 yaml 一起消失。
|
|
233
305
|
// 叠上已存值后语义才是真正的部分更新:没提交的字段保持原样,要清空得显式传空串。
|
|
306
|
+
let docConfig;
|
|
234
307
|
let stored;
|
|
235
308
|
let merged;
|
|
309
|
+
const ignored = [];
|
|
310
|
+
const removed = [];
|
|
236
311
|
try {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
312
|
+
docConfig = doc.getPluginConfig(pluginName);
|
|
313
|
+
// 先铺文档里的原配置、缺的默认键追加到末尾:写回时保留配置文件里原有的键序
|
|
314
|
+
stored = { ...docConfig };
|
|
315
|
+
for (const [key, value] of Object.entries(defaults)) {
|
|
316
|
+
if (!Object.hasOwn(stored, key))
|
|
317
|
+
stored[key] = value;
|
|
318
|
+
}
|
|
319
|
+
const submitted = newConfig;
|
|
320
|
+
merged = { ...stored, ...submitted };
|
|
321
|
+
// 与宿主的配置同步同一政策(host-config 的 trimUnknownFields):宿主裁剪且有 schema 时裁掉未知键并 warn,
|
|
322
|
+
// 避免 WebUI 把手滑字段写进 stored,而 YAML watch 路径却会裁掉;宿主保留未知字段时这里也不裁。
|
|
323
|
+
// 被裁的字段按来源回给调用方,不静默吞掉却回复「已更新」:本次提交里的记 ignored(与 PUT /api/config
|
|
324
|
+
// 同一口径);文档里原有、本次没提交的不是用户这次写的,随整份写回从配置文件删掉,记 removed
|
|
325
|
+
if (doc.trimUnknownFields !== false && schema && Object.keys(schema).length > 0) {
|
|
326
|
+
const shape = schema;
|
|
327
|
+
for (const [key, value] of Object.entries(merged)) {
|
|
328
|
+
removeExtraFields({ [key]: value }, shape, Object.hasOwn(submitted, key) ? ignored : removed);
|
|
329
|
+
}
|
|
330
|
+
merged = removeExtraFields(merged, shape);
|
|
331
|
+
if (ignored.length + removed.length > 0) {
|
|
332
|
+
caps.logger?.warn(`配置同步:${pluginName} 裁掉 schema 外字段 [${[...ignored, ...removed].join(', ')}]`);
|
|
246
333
|
}
|
|
247
334
|
}
|
|
248
335
|
}
|
|
@@ -250,6 +337,8 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
250
337
|
res.status(400).json({ error: errorMessage(err) });
|
|
251
338
|
return;
|
|
252
339
|
}
|
|
340
|
+
const note = (ignored.length > 0 ? `(已忽略未声明的配置字段: ${ignored.join(', ')})` : '') +
|
|
341
|
+
(removed.length > 0 ? `(已从配置文件移除未声明的字段: ${removed.join(', ')})` : '');
|
|
253
342
|
// 保存前校验,拦新不追旧:只拒绝本次编辑**新引入**的 invalid(配错了)。
|
|
254
343
|
// 存量问题放行——否则带着历史脏值(或 schema 表达不了的多态字段,如 mcp-client
|
|
255
344
|
// 的 args 数组形态)的插件会在 WebUI 永久存不了任何字段;启动侧 config-sync
|
|
@@ -265,6 +354,15 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
265
354
|
});
|
|
266
355
|
return;
|
|
267
356
|
}
|
|
357
|
+
// 运行态与文档都已是这份配置:不重建插件(updateConfig 即 bounce,会连带重启依赖它所提供服务的下游)。
|
|
358
|
+
// 仍照常落盘:上一次保存可能写文件失败(500),文档与运行态已是新配置而文件没变,原样重试要能补写;
|
|
359
|
+
// 自写回不会触发 watch 重载。只认 active:error 态插件靠原样保存来重试激活,照旧走 updateConfig
|
|
360
|
+
if (entry?.state === 'active' && isDeepStrictEqual(merged, entry.config) && isDeepStrictEqual(merged, docConfig)) {
|
|
361
|
+
if (!(await saveAfterApply(doc, res, 'reload')))
|
|
362
|
+
return;
|
|
363
|
+
res.json({ ok: true, message: `插件 ${pluginName} 配置无改动,已写回配置文件${note}`, ignored, removed });
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
268
366
|
let success;
|
|
269
367
|
try {
|
|
270
368
|
success = await pm.updateConfig(pluginName, merged);
|
|
@@ -274,34 +372,40 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
274
372
|
return;
|
|
275
373
|
}
|
|
276
374
|
if (success) {
|
|
277
|
-
|
|
278
|
-
|
|
375
|
+
// 按新配置重新激活失败、转为 error:照样写入配置(原样再存即重试激活),但按实际状态回报
|
|
376
|
+
const after = pm.getPlugin(pluginName);
|
|
377
|
+
const failure = after?.state === 'error' ? (after.error ?? '详见日志') : undefined;
|
|
378
|
+
// 管理动作只改运行态;跨重启保留要本路由写文档并落盘
|
|
379
|
+
doc.setPluginConfig(pluginName, merged);
|
|
380
|
+
if (!(await saveAfterApply(doc, res, 'reload')))
|
|
381
|
+
return;
|
|
382
|
+
if (failure !== undefined) {
|
|
383
|
+
res.status(500).json({
|
|
384
|
+
error: `插件 ${pluginName} 按新配置重新激活失败,已转为 error 态(${failure});配置已写入配置文件${note}`,
|
|
385
|
+
});
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
res.json({ ok: true, message: `插件 ${pluginName} 配置已更新${note}`, ignored, removed });
|
|
279
389
|
}
|
|
280
|
-
else {
|
|
390
|
+
else if (pm.getPlugin(pluginName)?.state === 'disabled') {
|
|
281
391
|
// 插件被禁用时这里也会走到,但「不存在」会把用户引向错误方向——区分「禁用」与「真不存在」并给出下一步。
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
else {
|
|
288
|
-
res.status(404).json({ error: `插件 ${pluginName} 不存在` });
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
catch (err) {
|
|
292
|
-
res.status(400).json({ error: errorMessage(err) });
|
|
293
|
-
}
|
|
392
|
+
res.status(409).json({ error: `插件 ${pluginName} 已禁用,配置未写入——先启用插件再修改配置` });
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
res.status(404).json({ error: `插件 ${pluginName} 不存在` });
|
|
294
396
|
}
|
|
295
397
|
});
|
|
296
398
|
// 启用插件
|
|
297
399
|
expressApp.post('/api/plugins/:name/enable', gate(), async (req, res) => {
|
|
298
400
|
const pluginName = req.params.name;
|
|
299
|
-
const app = getApp();
|
|
300
401
|
const pm = getPluginMgr();
|
|
301
|
-
if (!
|
|
302
|
-
res.status(500).json({ error: '
|
|
402
|
+
if (!pm) {
|
|
403
|
+
res.status(500).json({ error: '插件管理服务不可用' });
|
|
303
404
|
return;
|
|
304
405
|
}
|
|
406
|
+
const doc = docOr503(res);
|
|
407
|
+
if (!doc)
|
|
408
|
+
return;
|
|
305
409
|
let success;
|
|
306
410
|
try {
|
|
307
411
|
success = await pm.enable(pluginName);
|
|
@@ -311,7 +415,18 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
311
415
|
return;
|
|
312
416
|
}
|
|
313
417
|
if (success) {
|
|
314
|
-
|
|
418
|
+
// 激活失败、转为 error:照样记为启用(重启时再激活),但按实际状态回报
|
|
419
|
+
const after = pm.getPlugin(pluginName);
|
|
420
|
+
const failure = after?.state === 'error' ? (after.error ?? '详见日志') : undefined;
|
|
421
|
+
doc.setPluginEnabled(pluginName, true);
|
|
422
|
+
if (!(await saveAfterApply(doc, res, 'restart')))
|
|
423
|
+
return;
|
|
424
|
+
if (failure !== undefined) {
|
|
425
|
+
res
|
|
426
|
+
.status(500)
|
|
427
|
+
.json({ error: `插件 ${pluginName} 激活失败,已转为 error 态(${failure});配置文件已记为启用` });
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
315
430
|
res.json({ ok: true, message: `插件 ${pluginName} 已启用` });
|
|
316
431
|
}
|
|
317
432
|
else {
|
|
@@ -321,12 +436,14 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
321
436
|
// 禁用插件
|
|
322
437
|
expressApp.post('/api/plugins/:name/disable', gate(), async (req, res) => {
|
|
323
438
|
const pluginName = req.params.name;
|
|
324
|
-
const app = getApp();
|
|
325
439
|
const pm = getPluginMgr();
|
|
326
|
-
if (!
|
|
327
|
-
res.status(500).json({ error: '
|
|
440
|
+
if (!pm) {
|
|
441
|
+
res.status(500).json({ error: '插件管理服务不可用' });
|
|
328
442
|
return;
|
|
329
443
|
}
|
|
444
|
+
const doc = docOr503(res);
|
|
445
|
+
if (!doc)
|
|
446
|
+
return;
|
|
330
447
|
let success;
|
|
331
448
|
try {
|
|
332
449
|
success = await pm.disable(pluginName);
|
|
@@ -336,23 +453,32 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
336
453
|
return;
|
|
337
454
|
}
|
|
338
455
|
if (success) {
|
|
339
|
-
|
|
456
|
+
// 仍在初始化、不响应 abort 的插件,宽限到期转 error 而非 disabled:照样记为禁用(重启时不再激活),但按实际状态回报
|
|
457
|
+
const stuck = pm.getPlugin(pluginName)?.state === 'error';
|
|
458
|
+
doc.setPluginEnabled(pluginName, false);
|
|
459
|
+
if (!(await saveAfterApply(doc, res, 'restart')))
|
|
460
|
+
return;
|
|
461
|
+
if (stuck) {
|
|
462
|
+
res
|
|
463
|
+
.status(500)
|
|
464
|
+
.json({ error: `插件 ${pluginName} 未在宽限内停止,已转为 error 态,详见日志;配置文件已记为禁用` });
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
340
467
|
res.json({ ok: true, message: `插件 ${pluginName} 已禁用` });
|
|
341
468
|
}
|
|
342
469
|
else {
|
|
343
470
|
res.status(404).json({ error: `插件 ${pluginName} 不在注册表或已处于终态,无法禁用` });
|
|
344
471
|
}
|
|
345
472
|
});
|
|
346
|
-
//
|
|
473
|
+
// 经宿主 plugin-source 重新扫描并加载新插件
|
|
347
474
|
expressApp.post('/api/plugins/scan', gate(), async (_req, res) => {
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
res.status(500).json({ error: 'App 不可用' });
|
|
475
|
+
const source = caps.source.current;
|
|
476
|
+
if (!source) {
|
|
477
|
+
res.status(503).json({ error: '宿主未提供插件来源,无法扫描' });
|
|
352
478
|
return;
|
|
353
479
|
}
|
|
354
480
|
try {
|
|
355
|
-
const loaded = await
|
|
481
|
+
const loaded = await source.rescan();
|
|
356
482
|
res.json({ ok: true, loaded, message: loaded.length > 0 ? `新加载 ${loaded.length} 个插件` : '无新插件' });
|
|
357
483
|
}
|
|
358
484
|
catch (err) {
|
|
@@ -373,12 +499,14 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
373
499
|
res.status(400).json({ error: 'suffix 只能包含字母、数字、下划线和连字符' });
|
|
374
500
|
return;
|
|
375
501
|
}
|
|
376
|
-
const app = getApp();
|
|
377
502
|
const pm = getPluginMgr();
|
|
378
|
-
if (!
|
|
379
|
-
res.status(500).json({ error: '
|
|
503
|
+
if (!pm) {
|
|
504
|
+
res.status(500).json({ error: '插件管理服务不可用' });
|
|
380
505
|
return;
|
|
381
506
|
}
|
|
507
|
+
const doc = docOr503(res);
|
|
508
|
+
if (!doc)
|
|
509
|
+
return;
|
|
382
510
|
// 实例创建编排(配置文件编排属管理面,内核只出 register 机制):
|
|
383
511
|
// 查同名 module → reusable/查重校验 → 合并默认配置写入 → register 激活。
|
|
384
512
|
const sourceModule = pm
|
|
@@ -399,27 +527,40 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
399
527
|
return;
|
|
400
528
|
}
|
|
401
529
|
const mergedConfig = { ...defaultsFrom(sourceModule.configSchema), ...config };
|
|
530
|
+
let registered;
|
|
402
531
|
try {
|
|
403
|
-
|
|
404
|
-
|
|
532
|
+
doc.setPluginConfig(instanceId, mergedConfig);
|
|
533
|
+
// 文档里残留的禁用标记(手改配置文件留下的)照旧生效:以禁用态登记
|
|
534
|
+
registered = await pm.register(sourceModule, mergedConfig, instanceId, {
|
|
535
|
+
disabled: doc.isPluginDisabled(instanceId),
|
|
536
|
+
});
|
|
405
537
|
}
|
|
406
538
|
catch (err) {
|
|
407
539
|
res.status(400).json({ error: errorMessage(err) });
|
|
408
540
|
return;
|
|
409
541
|
}
|
|
410
|
-
|
|
542
|
+
if (!registered) {
|
|
543
|
+
// 前面已查过重名与 reusable,走到这里的实际只有停机进行中:配置不落盘,免得下次启动按文件登记
|
|
544
|
+
doc.removePluginConfig(instanceId);
|
|
545
|
+
res.status(409).json({ error: `实例 ${instanceId} 未登记(停机中或被拒,见日志),配置未写入` });
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
if (!(await saveAfterApply(doc, res, 'reload')))
|
|
549
|
+
return;
|
|
411
550
|
res.json({ ok: true, instanceId, message: `已创建实例 ${instanceId}` });
|
|
412
551
|
});
|
|
413
552
|
// 删除插件多实例
|
|
414
553
|
expressApp.delete('/api/plugins/:instanceId/instance', gate(), async (req, res) => {
|
|
415
554
|
const instanceId = req.params.instanceId;
|
|
416
|
-
const app = getApp();
|
|
417
555
|
const pm = getPluginMgr();
|
|
418
|
-
if (!
|
|
419
|
-
res.status(500).json({ error: '
|
|
556
|
+
if (!pm) {
|
|
557
|
+
res.status(500).json({ error: '插件管理服务不可用' });
|
|
420
558
|
return;
|
|
421
559
|
}
|
|
422
|
-
|
|
560
|
+
const doc = docOr503(res);
|
|
561
|
+
if (!doc)
|
|
562
|
+
return;
|
|
563
|
+
// 实例删除编排:主实例保护 → unload(内部含级联重算)→ 移除配置条目与禁用标记(同名重建时不再以禁用态登记)。
|
|
423
564
|
const { suffix } = parseInstanceId(instanceId);
|
|
424
565
|
if (!suffix || !pm.getPlugin(instanceId)) {
|
|
425
566
|
res.status(400).json({ error: `无法删除(实例不存在或不允许删除主实例)` });
|
|
@@ -427,30 +568,29 @@ export function registerPluginRoutes(expressApp, caps, identify, gate, getAction
|
|
|
427
568
|
}
|
|
428
569
|
try {
|
|
429
570
|
await pm.unload(instanceId);
|
|
430
|
-
|
|
571
|
+
doc.removePluginConfig(instanceId);
|
|
572
|
+
doc.setPluginEnabled(instanceId, true);
|
|
431
573
|
}
|
|
432
574
|
catch (err) {
|
|
433
575
|
res.status(400).json({ error: errorMessage(err) });
|
|
434
576
|
return;
|
|
435
577
|
}
|
|
436
|
-
await
|
|
578
|
+
if (!(await saveAfterApply(doc, res, 'restart')))
|
|
579
|
+
return;
|
|
437
580
|
res.json({ ok: true, message: `已删除实例 ${instanceId}` });
|
|
438
581
|
});
|
|
439
|
-
//
|
|
582
|
+
// 保存配置文档:与其它落盘路由同一口径,宿主拒写回 409、其它失败回 500。宿主不持久化时 save 不写盘,
|
|
583
|
+
// 回执因此只说「已保存」,不说保存到磁盘
|
|
440
584
|
expressApp.post('/api/config/save', gate(), async (_req, res) => {
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
if (!app || !pm) {
|
|
444
|
-
res.status(500).json({ error: 'App 不可用' });
|
|
585
|
+
const doc = docOr503(res);
|
|
586
|
+
if (!doc)
|
|
445
587
|
return;
|
|
446
|
-
}
|
|
447
588
|
try {
|
|
448
|
-
await
|
|
449
|
-
res.json({ ok: true, message: '
|
|
589
|
+
await doc.save();
|
|
590
|
+
res.json({ ok: true, message: '配置已保存' });
|
|
450
591
|
}
|
|
451
592
|
catch (err) {
|
|
452
|
-
|
|
453
|
-
res.status(500).json({ error: msg });
|
|
593
|
+
res.status(isConfigSaveRefused(err) ? 409 : 500).json({ error: errorMessage(err) });
|
|
454
594
|
}
|
|
455
595
|
});
|
|
456
596
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/routes/plugins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/routes/plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploaded-files.d.ts","sourceRoot":"","sources":["../../src/routes/uploaded-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"uploaded-files.d.ts","sourceRoot":"","sources":["../../src/routes/uploaded-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAuB5C,6DAA6D;AAC7D,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,UAAU,0BAA0B;IAClC;;4DAEwD;IACxD,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,IAAI,SAAS,GAAG,SAAS,CAAC;CACpC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,OAAO,CAAC,OAAO,EAC3B,IAAI,EAAE,0BAA0B,EAChC,IAAI,EAAE,SAAS,GACd,IAAI,CAiJN"}
|