@aalis/plugin-workflow 0.12.1 → 0.14.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.js CHANGED
@@ -2,41 +2,33 @@
2
2
  // @aalis/plugin-workflow — DAG 工作流引擎
3
3
  //
4
4
  // 订阅 'trigger:fired' 事件 + 内置 cron/interval/event 触发器,
5
- // 按 DAG 执行节点,结果存 data/workflow-runs.json,
6
- // 定义存 workspace/workflows/*.yaml。
5
+ // 按 DAG 执行节点,结果存 data:/workflow-runs.json,
6
+ // 定义存 workspace:/workflows/*.yaml。
7
7
  // ============================================================
8
- import { createStorageGateway } from '@aalis/api-storage';
9
- import { useToolService } from '@aalis/api-tools';
10
- import { useWebuiService } from '@aalis/api-webui';
8
+ import { cronEngine } from '@aalis/api-cron-engine';
9
+ import { hooks } from '@aalis/api-hooks';
10
+ import { createStorageGateway, isStorageUri, storage } from '@aalis/api-storage';
11
+ import { tools } from '@aalis/api-tools';
12
+ import { webuiServer } from '@aalis/api-webui';
13
+ import { workflow } from '@aalis/api-workflow';
14
+ import { config, definePlugin, events, lifecycle, logger, optional, provide } from '@aalis/core';
11
15
  import { parse, stringify } from 'yaml';
12
16
  import { runDag, validateGraph } from './engine.js';
13
17
  import { normalizeDef, WorkflowLoader } from './loader.js';
14
18
  import { RunStore } from './persistence.js';
15
19
  import { TriggerManager } from './triggers.js';
16
- // ─── 元数据 ───
17
- export const name = '@aalis/plugin-workflow';
18
- export const displayName = '工作流';
19
- export const subsystem = 'workflow';
20
- export const provides = ['workflow'];
21
- export const inject = {
22
- required: ['cron-engine'],
23
- optional: ['tools', 'storage', 'webui'],
24
- };
25
- export const extends_ = {
26
- events: ['workflow:run:start', 'workflow:run:done', 'workflow:run:error', 'workflow:node:done', 'trigger:fired'],
27
- };
28
- export const configSchema = {
20
+ const configSchema = {
29
21
  defsDir: {
30
22
  type: 'string',
31
23
  label: '工作流定义目录',
32
24
  default: 'workspace:/workflows',
33
- description: '加载存储下的 *.yaml 定义(storage URI,也兼容旧【workspace/workflows】);AI 通过 workflow_define 创建的定义也写入此处。',
25
+ description: '加载存储下的 *.yaml 定义(storage URI);AI 通过 workflow_define 创建的定义也写入此处。',
34
26
  },
35
27
  runsFile: {
36
28
  type: 'string',
37
29
  label: '运行历史文件',
38
30
  default: 'data:/workflow-runs.json',
39
- description: '保存最近 N 条运行实例(storage URI,也兼容旧【data/workflow-runs.json】)。',
31
+ description: '保存最近 N 条运行实例(storage URI)。',
40
32
  },
41
33
  maxRuns: {
42
34
  type: 'number',
@@ -124,7 +116,7 @@ const webuiPages = [
124
116
  ],
125
117
  },
126
118
  ];
127
- // ─── 工具函数(与 actions 共享) ───
119
+ // ─── 工具函数(与页面动作共享) ───
128
120
  function triggerSummary(t) {
129
121
  switch (t.type) {
130
122
  case 'cron':
@@ -162,47 +154,43 @@ function fmtDuration(ms) {
162
154
  const s = Math.floor((ms % 60_000) / 1000);
163
155
  return `${m}m${s}s`;
164
156
  }
165
- export const actions = {
166
- async workflowStats(ctx) {
167
- const svc = ctx.getService('workflow');
168
- if (!svc)
169
- return { value: 0, hint: 'workflow 服务未就绪' };
170
- const defs = svc.listWorkflows();
157
+ /**
158
+ * once 记账读不出时本次运行不安排 once:定义或启用一个 once 的回执据此如实说明(AI 工具与页面动作同一口径)。
159
+ * manualRun 是各自那一面手动执行的说法;不持久化的定义重启后就没了,「重启恢复」只对写了文件的定义成立。
160
+ */
161
+ function onceSkippedNote(def, persist, onceLedgerReadable, manualRun) {
162
+ if (def.trigger.type !== 'once' || def.enabled === false || onceLedgerReadable)
163
+ return undefined;
164
+ return `once 记账读取失败(见日志),本次运行不会触发;可用${manualRun}手动执行${persist ? ',修复运行历史文件后重启恢复' : ''}`;
165
+ }
166
+ /**
167
+ * 页面动作:处理函数是闭包,直接用本次激活构造的 WorkflowService,
168
+ * 不再按名回查容器(查到的可能是别人提供的同名服务)。
169
+ */
170
+ function registerWebuiActions(webui, service, onceLedgerReadable) {
171
+ webui.registerAction('workflowStats', async () => {
172
+ const defs = service.listWorkflows();
171
173
  const enabled = defs.filter(d => d.enabled !== false).length;
172
- const runs = svc.listRuns(200);
174
+ const runs = service.listRuns(200);
173
175
  const last24h = runs.filter(r => Date.now() - r.startedAt < 86_400_000);
174
176
  const failed24h = last24h.filter(r => r.status === 'failed' || r.status === 'cancelled').length;
175
177
  return {
176
178
  value: defs.length,
177
179
  hint: `启用 ${enabled} · 24h 运行 ${last24h.length} · 失败 ${failed24h}`,
178
180
  };
179
- },
180
- async listWorkflowsTable(ctx) {
181
- const svc = ctx.getService('workflow');
182
- if (!svc)
183
- return [];
184
- const runs = svc.listRuns(200);
185
- const lastByWf = new Map();
186
- for (const r of runs) {
187
- const prev = lastByWf.get(r.workflowId) ?? 0;
188
- if (r.startedAt > prev)
189
- lastByWf.set(r.workflowId, r.startedAt);
190
- }
191
- return svc.listWorkflows().map(d => ({
181
+ });
182
+ webui.registerAction('listWorkflowsTable', async () => {
183
+ return service.listWorkflows().map(d => ({
192
184
  id: d.id,
193
185
  name: d.name ?? d.id,
194
186
  trigger: triggerSummary(d.trigger),
195
187
  nodeCount: d.nodes.length,
196
188
  enabled: d.enabled === false ? '⏸ 禁用' : '✅ 启用',
197
189
  description: d.description ?? '',
198
- lastRun: lastByWf.get(d.id) ?? 0,
199
190
  }));
200
- },
201
- async listRunsTable(ctx) {
202
- const svc = ctx.getService('workflow');
203
- if (!svc)
204
- return [];
205
- return svc.listRuns(50).map(r => {
191
+ });
192
+ webui.registerAction('listRunsTable', async () => {
193
+ return service.listRuns(50).map(r => {
206
194
  const dur = (r.finishedAt ?? Date.now()) - r.startedAt;
207
195
  const statusIcon = r.status === 'success' ? '✅' : r.status === 'failed' ? '❌' : r.status === 'cancelled' ? '⏹' : '⏳';
208
196
  return {
@@ -215,13 +203,10 @@ export const actions = {
215
203
  error: r.error ?? '',
216
204
  };
217
205
  });
218
- },
219
- async triggerWorkflow(ctx, args) {
220
- const svc = ctx.getService('workflow');
221
- if (!svc)
222
- return { ok: false, error: 'workflow 服务未就绪' };
206
+ });
207
+ webui.registerAction('triggerWorkflow', async (args) => {
223
208
  try {
224
- const run = await svc.runWorkflow(String(args.id), {}, 'manual:webui');
209
+ const run = await service.runWorkflow(String(args.id), {}, 'manual:webui');
225
210
  return {
226
211
  ok: true,
227
212
  runId: run.runId,
@@ -233,42 +218,30 @@ export const actions = {
233
218
  catch (err) {
234
219
  return { ok: false, error: err instanceof Error ? err.message : String(err) };
235
220
  }
236
- },
237
- async toggleWorkflow(ctx, args) {
238
- const svc = ctx.getService('workflow');
239
- if (!svc)
240
- return { ok: false, error: 'workflow 服务未就绪' };
241
- const def = svc.getWorkflow(String(args.id));
221
+ });
222
+ webui.registerAction('toggleWorkflow', async (args) => {
223
+ const def = service.getWorkflow(String(args.id));
242
224
  if (!def)
243
225
  return { ok: false, error: '工作流不存在' };
244
226
  const next = { ...def, enabled: def.enabled === false };
245
227
  try {
246
- await svc.defineWorkflow(next, { persist: true });
247
- return { ok: true, enabled: next.enabled };
228
+ await service.defineWorkflow(next, { persist: true });
229
+ const note = onceSkippedNote(next, true, onceLedgerReadable(), '「立即运行」');
230
+ return { ok: true, enabled: next.enabled, ...(note ? { message: `已启用;${note}` } : {}) };
248
231
  }
249
232
  catch (err) {
250
233
  return { ok: false, error: err instanceof Error ? err.message : String(err) };
251
234
  }
252
- },
253
- async getWorkflowYaml(ctx, args) {
254
- const svc = ctx.getService('workflow');
255
- if (!svc)
256
- return { error: 'workflow 服务未就绪' };
257
- const def = svc.getWorkflow(String(args.id));
235
+ });
236
+ webui.registerAction('getWorkflowYaml', async (args) => {
237
+ const def = service.getWorkflow(String(args.id));
258
238
  if (!def)
259
239
  return { error: '工作流不存在' };
260
240
  return { id: def.id, yaml: stringify(def) };
261
- },
262
- async removeWorkflow(ctx, args) {
263
- const svc = ctx.getService('workflow');
264
- if (!svc)
265
- return { ok: false, error: 'workflow 服务未就绪' };
266
- const ok = await svc.removeWorkflow(String(args.id));
267
- return { ok, message: ok ? '已删除' : '不存在' };
268
- },
269
- async newWorkflowDraft() {
270
- return {
271
- yaml: `id: my-workflow
241
+ });
242
+ webui.registerAction('removeWorkflow', async (args) => (await service.removeWorkflow(String(args.id))) ? { ok: true } : { ok: false, error: '工作流不存在' });
243
+ webui.registerAction('newWorkflowDraft', async () => ({
244
+ yaml: `id: my-workflow
272
245
  name: 示例工作流
273
246
  description: 描述这个工作流的作用
274
247
  trigger:
@@ -282,13 +255,9 @@ nodes:
282
255
  platform: internal
283
256
  content: "{{vars.greeting}}, world!"
284
257
  `,
285
- persist: true,
286
- };
287
- },
288
- async upsertWorkflowYaml(ctx, args) {
289
- const svc = ctx.getService('workflow');
290
- if (!svc)
291
- return { ok: false, error: 'workflow 服务未就绪' };
258
+ persist: true,
259
+ }));
260
+ webui.registerAction('upsertWorkflowYaml', async (args) => {
292
261
  const yamlText = String(args.yaml ?? '').trim();
293
262
  if (!yamlText)
294
263
  return { ok: false, error: 'yaml 不能为空' };
@@ -302,45 +271,77 @@ nodes:
302
271
  const def = normalizeDef(raw, `wf-${Date.now()}`);
303
272
  if (!def)
304
273
  return { ok: false, error: '定义不合法:缺少 trigger 或 nodes' };
274
+ const persist = args.persist !== false;
305
275
  try {
306
- await svc.defineWorkflow(def, { persist: args.persist !== false });
307
- return { ok: true, id: def.id, nodes: def.nodes.length };
276
+ await service.defineWorkflow(def, { persist });
277
+ const note = onceSkippedNote(def, persist, onceLedgerReadable(), '「立即运行」');
278
+ return { ok: true, id: def.id, nodes: def.nodes.length, ...(note ? { message: `已保存;${note}` } : {}) };
308
279
  }
309
280
  catch (err) {
310
281
  return { ok: false, error: err instanceof Error ? err.message : String(err) };
311
282
  }
312
- },
313
- };
314
- function toUri(input, fallback) {
315
- const s = String(input ?? '').trim();
283
+ });
284
+ }
285
+ /** 路径配置只接受 storage URI;未设、留空或非字符串用默认值,其它写法(如相对路径 workspace/workflows)拒绝激活。 */
286
+ function resolveUri(key, input, fallback) {
287
+ const s = typeof input === 'string' ? input.trim() : '';
316
288
  if (!s)
317
289
  return fallback;
318
- if (s.includes(':/'))
319
- return s;
320
- const cleaned = s.replace(/^\.?\/+/, '');
321
- const idx = cleaned.indexOf('/');
322
- return idx > 0 ? `${cleaned.slice(0, idx)}:/${cleaned.slice(idx + 1)}` : `${cleaned}:/`;
290
+ if (!isStorageUri(s)) {
291
+ throw new Error(`plugin-workflow 配置错误: ${key}="${s}" 不是 storage URI,请写成 <根名>:/<路径>(如 ${fallback}),或删掉该键使用默认值`);
292
+ }
293
+ return s;
323
294
  }
324
295
  function resolveConfig(raw) {
325
296
  return {
326
- defsDir: toUri(typeof raw.defsDir === 'string' ? raw.defsDir : '', 'workspace:/workflows'),
327
- runsFile: toUri(typeof raw.runsFile === 'string' ? raw.runsFile : '', 'data:/workflow-runs.json'),
297
+ defsDir: resolveUri('defsDir', raw.defsDir, 'workspace:/workflows'),
298
+ runsFile: resolveUri('runsFile', raw.runsFile, 'data:/workflow-runs.json'),
328
299
  maxRuns: typeof raw.maxRuns === 'number' && raw.maxRuns > 0 ? raw.maxRuns : 200,
329
300
  enableTools: raw.enableTools !== false,
330
301
  };
331
302
  }
332
- // ─── apply ───
333
- export async function apply(ctx, rawConfig) {
334
- const config = resolveConfig(rawConfig);
335
- const logger = ctx.logger.child('workflow');
336
- const storage = createStorageGateway(ctx);
337
- const loader = new WorkflowLoader(storage, config.defsDir, logger);
303
+ // ─── 插件入口 ───
304
+ const uses = {
305
+ /** cron / interval 触发器共享的整分钟 tick 与表达式解析 */
306
+ cronEngine,
307
+ /** 定义(*.yaml)与运行历史的持久化出口 */
308
+ storage: optional(storage),
309
+ /** tool 节点的执行入口,兼 AI 工具面的登记口 */
310
+ tools: optional(tools),
311
+ /** 工作流页与页面动作的登记口;无 WebUI 时引擎照常运行 */
312
+ webui: optional(webuiServer),
313
+ events,
314
+ /** agent 节点经 'agent:turn:after' 捕获本轮回复 */
315
+ hooks,
316
+ lifecycle,
317
+ logger,
318
+ config,
319
+ provide,
320
+ };
321
+ export default definePlugin({
322
+ name: '@aalis/plugin-workflow',
323
+ displayName: '工作流',
324
+ subsystem: 'workflow',
325
+ extends: {
326
+ events: ['workflow:run:start', 'workflow:run:done', 'workflow:run:error', 'workflow:node:done', 'trigger:fired'],
327
+ },
328
+ configSchema,
329
+ provides: [workflow],
330
+ uses,
331
+ apply: run,
332
+ });
333
+ async function run(caps) {
334
+ const { events, hooks, lifecycle, provide, tools, webui } = caps;
335
+ const config = resolveConfig(caps.config);
336
+ const logger = caps.logger.child('workflow');
337
+ const storageGateway = createStorageGateway(caps.storage);
338
+ const loader = new WorkflowLoader(storageGateway, config.defsDir, logger);
338
339
  const scanned = await loader.loadAll();
339
- const runStore = new RunStore(storage, config.runsFile, config.maxRuns, logger);
340
+ const runStore = new RunStore(storageGateway, config.runsFile, config.maxRuns, logger);
340
341
  await runStore.init();
341
342
  const cancelTokens = new Map();
342
343
  // ── 触发管理器:内部 cron/interval/event 监听 ──
343
- const triggers = new TriggerManager(ctx, logger, (workflowId, source, payload) => {
344
+ const triggers = new TriggerManager({ cronEngine: caps.cronEngine, events, logger }, (workflowId, source, payload) => {
344
345
  // 异步触发,不阻塞触发源;event 触发的 payload({args})作为 vars 注入,{{vars.X}} 才读得到
345
346
  runById(workflowId, payload ?? {}, source).catch(err => {
346
347
  logger.error(`触发执行 workflow=${workflowId} source=${source} 失败: ${err instanceof Error ? err.message : err}`);
@@ -353,7 +354,7 @@ export async function apply(ctx, rawConfig) {
353
354
  for (const def of loader.list())
354
355
  triggers.register(def);
355
356
  // ── 订阅外部 trigger:fired(来自 scheduler / 其他触发源)──
356
- ctx.on('trigger:fired', info => {
357
+ events.on('trigger:fired', info => {
357
358
  if (!info?.workflowId)
358
359
  return;
359
360
  runById(info.workflowId, info.payload ?? {}, info.source ?? `trigger:${info.type}`).catch(err => {
@@ -381,15 +382,16 @@ export async function apply(ctx, rawConfig) {
381
382
  nodes: def.nodes.map(n => ({ id: n.id, type: n.type, status: 'pending' })),
382
383
  };
383
384
  runStore.add(run);
384
- await ctx.emit('workflow:run:start', run);
385
+ await events.emit('workflow:run:start', run);
385
386
  logger.info(`run=${runId} 启动 (trigger=${triggerSource})`);
386
387
  try {
387
388
  const result = await runDag({
388
- ctx,
389
+ tools,
390
+ events,
391
+ hooks,
389
392
  logger,
390
393
  def,
391
394
  runId,
392
- triggerSource,
393
395
  vars,
394
396
  // 运行时身份:经 workflow_run 工具触发时以 actor 透传【调用者】授权身份,使工作流
395
397
  // 内部工具与 agent/send_message 节点按【调用者】的权限等级过 authority 闸(而非匿名
@@ -406,7 +408,7 @@ export async function apply(ctx, rawConfig) {
406
408
  const idx = run.nodes.findIndex(n => n.id === info.id);
407
409
  if (idx >= 0)
408
410
  run.nodes[idx] = info;
409
- ctx.emit('workflow:node:done', { runId, node: info }).catch(() => { });
411
+ events.emit('workflow:node:done', { runId, node: info }).catch(() => { });
410
412
  },
411
413
  });
412
414
  run.status = result.status;
@@ -415,11 +417,11 @@ export async function apply(ctx, rawConfig) {
415
417
  run.finishedAt = Date.now();
416
418
  runStore.update(run);
417
419
  if (result.status === 'success') {
418
- await ctx.emit('workflow:run:done', run);
420
+ await events.emit('workflow:run:done', run);
419
421
  logger.info(`run=${runId} 完成 (${run.finishedAt - run.startedAt}ms)`);
420
422
  }
421
423
  else {
422
- await ctx.emit('workflow:run:error', run);
424
+ await events.emit('workflow:run:error', run);
423
425
  logger.warn(`run=${runId} ${result.status}: ${result.error ?? ''}`);
424
426
  }
425
427
  }
@@ -428,7 +430,7 @@ export async function apply(ctx, rawConfig) {
428
430
  run.error = err instanceof Error ? err.message : String(err);
429
431
  run.finishedAt = Date.now();
430
432
  runStore.update(run);
431
- await ctx.emit('workflow:run:error', run);
433
+ await events.emit('workflow:run:error', run);
432
434
  logger.error(`run=${runId} 异常: ${run.error}`);
433
435
  }
434
436
  finally {
@@ -459,9 +461,11 @@ export async function apply(ctx, rawConfig) {
459
461
  logger.info(`workflow 已定义: ${def.id} (持久化=${opts?.persist !== false})`);
460
462
  },
461
463
  async removeWorkflow(id) {
464
+ // 先删文件,删不掉就抛错、触发器与 once 记账原样保留:先清账的话,重启后定义被重新载入,过期 once 会重放
465
+ const had = await loader.removeDef(id);
462
466
  triggers.unregister(id);
463
467
  runStore.clearOnceFired(id); // 定义没了,once 记账不留孤儿:同 id 重建算新工作流
464
- return await loader.removeDef(id);
468
+ return had;
465
469
  },
466
470
  async runWorkflow(id, vars, source, caller) {
467
471
  return await runById(id, vars ?? {}, source ?? 'manual', caller);
@@ -480,20 +484,21 @@ export async function apply(ctx, rawConfig) {
480
484
  return runStore.list(limit, workflowId);
481
485
  },
482
486
  };
483
- ctx.provide('workflow', service);
487
+ provide(workflow, service);
484
488
  // ── AI 工具 ──
485
- if (config.enableTools && ctx.getService('tools')) {
486
- registerTools(ctx, service);
489
+ // tools 晚上线也无妨:登记口在提供者缺席时先挂账,上线后自动补挂
490
+ if (config.enableTools) {
491
+ registerTools(tools, service, () => runStore.onceLedgerReadable());
487
492
  }
488
493
  // ── WebUI ──
489
- const webui = useWebuiService(ctx);
490
494
  for (const page of webuiPages)
491
495
  webui.registerPage(page);
496
+ registerWebuiActions(webui, service, () => runStore.onceLedgerReadable());
492
497
  // ── 清理 ──
493
- ctx.onDispose(async () => {
498
+ lifecycle.onDispose(async () => {
494
499
  triggers.dispose();
495
- // 先置 cancelled 再清表:只 clear 的话在飞 run 仍持有自己的 token 引用,会继续用已 dispose 的
496
- // ctx 跑完剩余节点、emit 事件,并把结果写回旧 RunStore 的历史快照
500
+ // 先置 cancelled 再清表:只 clear 的话在飞 run 仍持有自己的 token 引用,会继续跑完剩余
501
+ // 节点、发事件,并把结果写回旧 RunStore 的历史快照
497
502
  for (const t of cancelTokens.values())
498
503
  t.cancelled = true;
499
504
  cancelTokens.clear();
@@ -503,8 +508,8 @@ export async function apply(ctx, rawConfig) {
503
508
  logger.info(`工作流插件已启动 (${loader.list().length} 个定义已加载)`);
504
509
  }
505
510
  // ─── AI 工具注册 ───
506
- function registerTools(ctx, service) {
507
- const tools = useToolService(ctx);
511
+ /** onceLedgerReadable:once 记账读不出时本次运行不安排 once,workflow_define 的回执据此如实说明 */
512
+ function registerTools(tools, service, onceLedgerReadable) {
508
513
  tools.registerGroup({ name: 'workflow', label: '工作流', description: '定义、运行、查询自主工作流(DAG)' });
509
514
  tools.register({
510
515
  // 编排定义/触发/删除:可定义向任意 sessionId 发消息/跑 agent 的工作流,挡住不受信任访客经
@@ -542,13 +547,21 @@ function registerTools(ctx, service) {
542
547
  const def = normalizeDef(raw, `wf-${Date.now()}`);
543
548
  if (!def)
544
549
  return JSON.stringify({ error: '定义不合法:缺少 trigger 或 nodes' });
550
+ const persist = args.persist !== false;
545
551
  try {
546
- await service.defineWorkflow(def, { persist: args.persist !== false });
552
+ await service.defineWorkflow(def, { persist });
547
553
  }
548
554
  catch (e) {
549
555
  return JSON.stringify({ error: e instanceof Error ? e.message : String(e) });
550
556
  }
551
- return JSON.stringify({ ok: true, id: def.id, nodes: def.nodes.length, trigger: def.trigger.type });
557
+ const note = onceSkippedNote(def, persist, onceLedgerReadable(), ' workflow_run ');
558
+ return JSON.stringify({
559
+ ok: true,
560
+ id: def.id,
561
+ nodes: def.nodes.length,
562
+ trigger: def.trigger.type,
563
+ ...(note ? { note } : {}),
564
+ });
552
565
  },
553
566
  });
554
567
  tools.register({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { StorageService } from '@aalis/api-storage';
1
+ import { type StorageService } from '@aalis/api-storage';
2
2
  import type { WorkflowDef } from '@aalis/api-workflow';
3
3
  import type { Logger } from '@aalis/core';
4
4
  /** 把 raw YAML 对象规范化为 WorkflowDef;返回 null 表示非法 */
@@ -8,6 +8,8 @@ export declare class WorkflowLoader {
8
8
  private dirUri;
9
9
  private logger;
10
10
  private loaded;
11
+ /** 本次激活里确认有文件的 id(loadAll 载入的、saveDef 写过的):只有它们删不掉文件时会在重启后被重新载入 */
12
+ private onDisk;
11
13
  constructor(storage: StorageService, dirUri: string, logger: Logger);
12
14
  list(): WorkflowDef[];
13
15
  get(id: string): WorkflowDef | undefined;
@@ -15,7 +17,10 @@ export declare class WorkflowLoader {
15
17
  loadAll(): Promise<boolean>;
16
18
  /** 保存定义到存储(覆盖) */
17
19
  saveDef(def: WorkflowDef): Promise<void>;
18
- /** 从内存与存储删除 */
20
+ /**
21
+ * 从存储与内存删除。确认有文件的定义删不掉文件(不是「不存在」)时抛错、内存不动——否则重启后定义又被载入;
22
+ * 只在内存里的定义与不存在的 id 删文件失败(如 storage 不在场、根不可删)只记 warn,照常从内存移除
23
+ */
19
24
  removeDef(id: string): Promise<boolean>;
20
25
  /** 仅放入内存(用于动态注册不持久化) */
21
26
  putMemory(def: WorkflowDef): void;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiBjF;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkC;gBAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMnE,IAAI,IAAI,WAAW,EAAE;IAIrB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC,+DAA+D;IACzD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAmCjC,kBAAkB;IACZ,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,eAAe;IACT,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc7C,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAGlC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiBjF;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkC;IAChD,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAqB;gBAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMnE,IAAI,IAAI,WAAW,EAAE;IAIrB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC,+DAA+D;IACzD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAmCjC,kBAAkB;IACZ,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C;;;OAGG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7C,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAGlC"}