@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.
@@ -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
- const hostConfig = () => caps.hostConfig.require();
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 allConfig = hostConfig().getAll();
141
- res.json({ ...allConfig, _schema: CORE_CONFIG_SCHEMA });
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
- const pm = getPluginMgr();
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 = hostConfig().getAll();
161
- const differs = (k) => !isDeepStrictEqual(updates[k], current[k]);
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
- hostConfig().set(key, updates[key]);
180
- // name / logLevel 都要重启才生效;值没变就不重启
181
- const restartNeeded = changed.length > 0;
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 app.saveConfig();
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
- const msg = err instanceof Error ? err.message : String(err);
195
- res.status(500).json({ error: msg });
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 = hostConfig().getPluginConfig(pluginName);
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 (!app || !pm) {
221
- res.status(500).json({ error: 'App 不可用' });
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 schema = pm.getPlugin(pluginName)?.definition?.configSchema;
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
- stored = { ...defaults, ...hostConfig().getPluginConfig(pluginName) };
238
- merged = { ...stored, ...newConfig };
239
- // 与 runtime config-sync 同一政策:有 schema 就裁掉未知键并 warn,避免 WebUI 把
240
- // 手滑字段写进 stored,而 YAML watch 路径却会裁掉——两边政策必须一致。
241
- if (schema && Object.keys(schema).length > 0) {
242
- const removed = [];
243
- merged = removeExtraFields(merged, schema, removed);
244
- if (removed.length > 0) {
245
- caps.logger?.warn(`配置同步:${pluginName} 裁掉 schema 外字段 [${removed.join(', ')}]`);
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
- await app.saveConfig();
278
- res.json({ ok: true, message: `插件 ${pluginName} 配置已更新` });
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
- try {
283
- const disabled = hostConfig().isPluginDisabled(pluginName);
284
- if (disabled) {
285
- res.status(409).json({ error: `插件 ${pluginName} 已禁用,配置未写入——先启用插件再修改配置` });
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 (!app || !pm) {
302
- res.status(500).json({ error: 'App 不可用' });
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
- await app.saveConfig();
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 (!app || !pm) {
327
- res.status(500).json({ error: 'App 不可用' });
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
- await app.saveConfig();
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
- // 重新扫描 packages/ 并加载新插件
473
+ // 经宿主 plugin-source 重新扫描并加载新插件
347
474
  expressApp.post('/api/plugins/scan', gate(), async (_req, res) => {
348
- const app = getApp();
349
- const pm = getPluginMgr();
350
- if (!app || !pm) {
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 app.rescanPlugins();
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 (!app || !pm) {
379
- res.status(500).json({ error: 'App 不可用' });
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
- hostConfig().setPluginConfig(instanceId, mergedConfig);
404
- await pm.register(sourceModule, mergedConfig, instanceId);
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
- await app.saveConfig();
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 (!app || !pm) {
419
- res.status(500).json({ error: 'App 不可用' });
556
+ if (!pm) {
557
+ res.status(500).json({ error: '插件管理服务不可用' });
420
558
  return;
421
559
  }
422
- // 实例删除编排:主实例保护 → unload(内部含级联重算)→ 移除配置条目。
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
- hostConfig().removePluginConfig(instanceId);
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 app.saveConfig();
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 app = getApp();
442
- const pm = getPluginMgr();
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 app.saveConfig();
449
- res.json({ ok: true, message: '配置已保存到磁盘' });
589
+ await doc.save();
590
+ res.json({ ok: true, message: '配置已保存' });
450
591
  }
451
592
  catch (err) {
452
- const msg = err instanceof Error ? err.message : String(err);
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;AA2B5C,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,CAoJN"}
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"}