@qing3a/flow-rpa-app 0.1.0 → 0.3.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/runner.js CHANGED
@@ -1,17 +1,22 @@
1
+ import { randomBytes } from 'node:crypto';
1
2
  import { existsSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
2
3
  import { join } from 'node:path';
3
4
  import { ExecError, runFlow } from '@qing3a/flow-rpa-engine/src/executor.js';
4
5
  import { snapshotFromText } from '@qing3a/flow-rpa-engine/src/export.js';
5
- import { fromFlowResult } from '@qing3a/flow-rpa-engine/src/record.js';
6
+ import { fromEvents } from '@qing3a/flow-rpa-engine/src/record.js';
6
7
  import { learnFromRun, SuggestionStore } from '@qing3a/flow-rpa-engine/src/learning.js';
7
- import { nowIso, RunStore } from '@qing3a/flow-rpa-engine/src/storage.js';
8
+ import { nowIso, RunStore, extractSink } from '@qing3a/flow-rpa-engine/src/storage.js';
8
9
  import { LocalPlatform } from '@qing3a/flow-rpa-engine/src/export.js';
9
10
  import { PerfGate } from '@qing3a/flow-rpa-engine/src/bench.js';
10
11
  import { CooldownGate, hostOf, SiteGate } from '@qing3a/flow-rpa-engine/src/gate.js';
12
+ import { PlatformClient } from '@qing3a/flow-rpa-engine/src/platform.js';
11
13
  import { FlowRegistry } from './registry.js';
12
- /** 生成 run_id(r_<毫秒时间戳>) */
14
+ /**
15
+ * 生成 run_id:r_<pid 36进制>_<毫秒>_<随机hex> —— 实例标识 + 时间戳 + 随机段
16
+ * (ARCHITECTURE #11 命名空间原则:多实例 pid 不同、同进程同毫秒随机段兜底,观察身份不碰撞)
17
+ */
13
18
  export function newRunId() {
14
- return `r_${Date.now()}`;
19
+ return `r_${process.pid.toString(36)}_${Date.now()}_${randomBytes(2).toString('hex')}`;
15
20
  }
16
21
  /**
17
22
  * D-S1:DOM 快照采集并落盘(snapshots/<runId>.json)。
@@ -104,7 +109,34 @@ export class MockPage {
104
109
  return snapshotFromText(this.url);
105
110
  }
106
111
  }
107
- /** 同步执行一个 run(构造驱动 → 解释执行 → 落盘 → 更新运行状态) */
112
+ /**
113
+ * 自动上报(自动注册闭环):平台已配置时,run 结束后自动 deliver + 上传观察包到 md-forge。
114
+ * 失败记台账 Failed(sync_pending_uploads / 启动 bootstrap 可重试);平台未配置 → 零开销 no-op。
115
+ */
116
+ export async function autoUploadRun(ctx, runId) {
117
+ if (ctx.config.platformUrl.length === 0)
118
+ return;
119
+ const rec = ctx.store.loadRun(runId);
120
+ if (!rec)
121
+ return;
122
+ const allRuns = ctx.store
123
+ .listRunIds()
124
+ .map((id) => ctx.store.loadRun(id))
125
+ .filter((r) => !!r && r.flowId === rec.flowId);
126
+ try {
127
+ const snapshot = ctx.store.loadSnapshot(runId);
128
+ const dir = ctx.platform.deliver(rec, allRuns, undefined, snapshot);
129
+ const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
130
+ const up = await client.uploadObservation(dir);
131
+ ctx.store.markUploaded(runId, true);
132
+ console.log(`[flow-rpa] 观察已自动上报: ${up.dir}(${up.status})`);
133
+ }
134
+ catch (e) {
135
+ ctx.store.markUploaded(runId, false, e instanceof Error ? e.message : String(e));
136
+ console.log(`[flow-rpa] 观察自动上报失败(台账 Failed,可重试): ${e instanceof Error ? e.message : String(e)}`);
137
+ }
138
+ }
139
+ /** 同步执行一个 run(构造驱动 → 解释执行 → 落盘 → 自动上报 → 更新运行状态) */
108
140
  export async function executeRun(ctx, args, runId) {
109
141
  const cached = ctx.registry.get(args.flowId);
110
142
  if (!cached) {
@@ -130,7 +162,14 @@ export async function executeRun(ctx, args, runId) {
130
162
  setEnvCheck.call(page, flow.envCheck);
131
163
  }
132
164
  // 变量插值:vars 原样传执行器({keyword} 等由执行器插值;等价 Rust run_flow(&flow, &mut page, &args.vars))
133
- const result = await runFlow(flow, page, args.vars);
165
+ // D-E2 接线(USAGE-ISSUES #10):注入 ExtractSink,save:true extract 落盘 extracted/<runId>/<stepId>.json
166
+ // D6 事件流:onStepEvent 收集每步事件(run.json 由事件派生)
167
+ const events = [];
168
+ const result = await runFlow(flow, page, args.vars, {
169
+ sink: extractSink(ctx.store),
170
+ runId,
171
+ onStepEvent: (ev) => events.push(ev),
172
+ });
134
173
  // D-S1:DOM 快照采集(真实浏览器分支;finalize 可能已关 tab → 捕获异常,失败不阻断 run 落盘)
135
174
  if (!ctx.config.mock) {
136
175
  await captureSnapshot(ctx, page, runId);
@@ -145,10 +184,13 @@ export async function executeRun(ctx, args, runId) {
145
184
  }
146
185
  }
147
186
  keywords.push(...Object.values(args.vars));
148
- const rec = fromFlowResult(runId, flow.id, version, result, nowIso(), keywords);
187
+ // D6:步骤事件流落盘(events.jsonl,append-only)→ run.json 由事件派生(读路径不变)
188
+ const startedAt = nowIso();
189
+ ctx.store.saveEvents(runId, events);
190
+ const rec = fromEvents(runId, flow.id, version, events, { status: result.status, error: result.error, startedAt, owner: args.owner, keywords });
149
191
  ctx.store.saveRun(rec); // 落盘失败不阻断
150
- // L2 学习:执行记录 → 结构化信号 → 改进建议
151
- learnFromRun(rec, ctx.suggestions);
192
+ // L2 学习:执行记录 → 结构化信号 → 改进建议(返回本次涉及的建议 id)
193
+ const sugIds = learnFromRun(rec, ctx.suggestions);
152
194
  // 端到端性能基准(质量门)
153
195
  const totalDuration = result.steps.reduce((a, s) => a + s.durationMs, 0);
154
196
  const perfCheck = ctx.perf.record(flow.id, totalDuration, result.steps.length);
@@ -157,6 +199,7 @@ export async function executeRun(ctx, args, runId) {
157
199
  status: result.status,
158
200
  error: result.error,
159
201
  perfNote: perfCheck.message,
202
+ owner: args.owner,
160
203
  };
161
204
  ctx.runs.set(runId, r);
162
205
  // D-C2(M5 半成品 #3 接通):run 结束后对带 cooldownKey 的步骤记账(key=flow#step#coolKey)
@@ -165,8 +208,37 @@ export async function executeRun(ctx, args, runId) {
165
208
  ctx.coolGate.record(`${flow.id}#${step.stepId}#${step.cooldownKey}`);
166
209
  }
167
210
  }
211
+ // 自动上报(自动注册闭环):平台已配置时 run 结束即上传观察包(失败进台账可重试)
212
+ await autoUploadRun(ctx, runId);
213
+ // 版本演进闭环:L2 建议自动上传平台(幂等;失败仅日志,不阻断 run)
214
+ if (ctx.config.platformUrl.length > 0 && sugIds.length > 0) {
215
+ await autoUploadSuggestions(ctx, flow.id, sugIds);
216
+ }
168
217
  return r;
169
218
  }
219
+ /** 版本演进闭环:把本次 run 涉及的建议上传 md-forge(POST /api/suggestions,幂等);失败仅日志 */
220
+ export async function autoUploadSuggestions(ctx, flowId, suggestionIds) {
221
+ const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
222
+ const known = new Set(suggestionIds);
223
+ const suggestions = ctx.suggestions.list(flowId).filter((s) => known.has(s.suggestionId));
224
+ for (const s of suggestions) {
225
+ try {
226
+ const up = await client.uploadSuggestion({
227
+ suggestion_id: s.suggestionId,
228
+ flow_id: s.flowId,
229
+ kind: s.kind,
230
+ step_id: s.stepId,
231
+ message: s.message,
232
+ reuse_count: s.reuseCount,
233
+ source: 'local',
234
+ });
235
+ console.log(`[flow-rpa] 建议已上报: ${s.suggestionId}(${up.status})`);
236
+ }
237
+ catch (e) {
238
+ console.log(`[flow-rpa] 建议上报失败: ${s.suggestionId} — ${e instanceof Error ? e.message : String(e)}`);
239
+ }
240
+ }
241
+ }
170
242
  /** 流程的目标站点 host(取首个 navigate 步骤的 url;无 navigate 返回 undefined —— 不节流 mock) */
171
243
  export function flowHost(ctx, flowId) {
172
244
  const cached = ctx.registry.get(flowId);
@@ -182,7 +254,27 @@ export function flowHost(ctx, flowId) {
182
254
  const queue = { running: false, pending: [] };
183
255
  /** 队列当前状态(自描述聚合用 D-S1;只读) */
184
256
  export function queueState() {
185
- return { running: queue.running, pending: queue.pending.length };
257
+ return { running: queue.running, pending: queue.pending.length, runningRunId: queue.runningRunId, runningOwner: queue.runningOwner };
258
+ }
259
+ /**
260
+ * D7 取消排队中的任务(执行中任务不支持——页面层 abort 留待阶段 4 后)。
261
+ * 返回结果文案(MCP 工具直接透传)。
262
+ */
263
+ export function cancelRun(ctx, runId) {
264
+ const idx = queue.pending.findIndex((p) => p.runId === runId);
265
+ if (idx !== -1) {
266
+ queue.pending.splice(idx, 1);
267
+ ctx.runs.set(runId, { runId, status: 'cancelled', error: undefined, perfNote: undefined });
268
+ return `已取消排队任务: ${runId}`;
269
+ }
270
+ if (queue.runningRunId === runId) {
271
+ return `任务执行中(${runId}),暂不支持取消(页面层 abort 留待后续)`;
272
+ }
273
+ const mem = ctx.runs.get(runId);
274
+ if (mem) {
275
+ return `任务已结束(${mem.status}),无法取消: ${runId}`;
276
+ }
277
+ return `执行记录不存在: ${runId}`;
186
278
  }
187
279
  /**
188
280
  * 启动异步 run:入串行 FIFO 队列。
@@ -190,6 +282,7 @@ export function queueState() {
190
282
  * 队列忙则拒绝(failed「队列忙」)。
191
283
  */
192
284
  export async function spawnRun(ctx, args, runId) {
285
+ const owner = args.owner && args.owner.length > 0 ? args.owner : 'local';
193
286
  const runTask = async () => {
194
287
  await executeRun(ctx, args, runId);
195
288
  };
@@ -206,24 +299,30 @@ export async function spawnRun(ctx, args, runId) {
206
299
  }
207
300
  // 队列空闲 + wait:true → 同步执行完再返回(等价 Rust execute_run)
208
301
  queue.running = true;
302
+ queue.runningRunId = runId;
303
+ queue.runningOwner = owner;
209
304
  try {
210
305
  await runTask();
211
306
  return ctx.runs.get(runId);
212
307
  }
213
308
  finally {
214
309
  queue.running = false;
310
+ queue.runningRunId = undefined;
311
+ queue.runningOwner = undefined;
215
312
  }
216
313
  }
217
314
  // wait:false → 立即返回 running(排队/后台执行)
218
315
  if (!queue.running) {
219
316
  queue.running = true;
317
+ queue.runningRunId = runId;
318
+ queue.runningOwner = owner;
220
319
  void runTask().then(drainQueue);
221
320
  }
222
321
  else {
223
- queue.pending.push(runTask);
322
+ queue.pending.push({ runId, owner, task: runTask });
224
323
  }
225
- ctx.runs.set(runId, { runId, status: 'running', error: undefined, perfNote: undefined });
226
- return { runId, status: 'running', error: undefined, perfNote: undefined };
324
+ ctx.runs.set(runId, { runId, status: 'running', error: undefined, perfNote: undefined, owner });
325
+ return { runId, status: 'running', error: undefined, perfNote: undefined, owner };
227
326
  }
228
327
  async function drainQueue() {
229
328
  // 循环取出 pending 依次执行;队列空时置 running=false
@@ -231,9 +330,13 @@ async function drainQueue() {
231
330
  const next = queue.pending.shift();
232
331
  if (!next) {
233
332
  queue.running = false;
333
+ queue.runningRunId = undefined;
334
+ queue.runningOwner = undefined;
234
335
  return;
235
336
  }
236
- await next();
337
+ queue.runningRunId = next.runId;
338
+ queue.runningOwner = next.owner;
339
+ await next.task();
237
340
  }
238
341
  }
239
342
  // ---- 单实例锁(D-R2) ----
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -35,6 +35,17 @@ export interface FlowMcpCtx {
35
35
  }
36
36
  /** 构造执行上下文(供 serveStdio 与测试复用) */
37
37
  export declare function buildCtx(flowsDir: string, dataDir: string, config: RunConfig, mode?: 'stdio' | 'http'): FlowMcpCtx;
38
+ /** 重试待上传台账(Pending/Failed)的观察包;返回成功数与失败列表(sync_pending_uploads 与启动 bootstrap 共用) */
39
+ export declare function syncUploads(ctx: FlowMcpCtx): Promise<{
40
+ ok: number;
41
+ failed: string[];
42
+ }>;
43
+ /**
44
+ * 启动自动注册(bootstrap):平台已配置时,
45
+ * 1) 健康探测(连接状态记录到日志/状态)2) 自动补传待上传台账。
46
+ * 平台不可达不阻断引擎启动(注册状态由 get_status platform.connected 反映)。
47
+ */
48
+ export declare function bootstrapPlatform(ctx: FlowMcpCtx): Promise<void>;
38
49
  /** 工具定义表(name/description/inputSchema → handler) */
39
50
  interface ToolDef {
40
51
  name: string;
@@ -51,9 +62,11 @@ interface ToolDef {
51
62
  }>;
52
63
  }>;
53
64
  }
54
- export declare function buildTools(ctx: FlowMcpCtx): ToolDef[];
65
+ /** D3 角色裁剪(ARCHITECTURE #10 红线 4 代码化):hunter 只暴露流程执行与建议处置工具 */
66
+ export declare const HUNTER_TOOL_NAMES: readonly string[];
67
+ export declare function buildTools(ctx: FlowMcpCtx, role?: 'owner' | 'hunter'): ToolDef[];
55
68
  /** 注册全部工具(tools/list + tools/call 两个 handler,SDK 1.30 setRequestHandler) */
56
- export declare function registerTools(server: Server, ctx: FlowMcpCtx): void;
69
+ export declare function registerTools(server: Server, ctx: FlowMcpCtx, role?: 'owner' | 'hunter'): void;
57
70
  /** 启动 MCP server(stdio 传输)。阻塞直到连接结束(EOF)→ 优雅退出。 */
58
71
  export declare function serveStdio(flowsDir: string, dataDir: string, config: RunConfig): Promise<void>;
59
72
  export {};
package/dist/server.js CHANGED
@@ -12,7 +12,7 @@ import { SiteGate, CooldownGate } from '@qing3a/flow-rpa-engine/src/gate.js';
12
12
  import { PerfGate } from '@qing3a/flow-rpa-engine/src/bench.js';
13
13
  import { collectStatus } from './status.js';
14
14
  import { FlowRegistry } from './registry.js';
15
- import { acquireInstanceLock, flowHost, newRunId, releaseInstanceLock, spawnRun } from './runner.js';
15
+ import { acquireInstanceLock, cancelRun, flowHost, newRunId, releaseInstanceLock, spawnRun } from './runner.js';
16
16
  import { readFileSync } from 'node:fs';
17
17
  /** 构造执行上下文(供 serveStdio 与测试复用) */
18
18
  export function buildCtx(flowsDir, dataDir, config, mode = 'stdio') {
@@ -33,8 +33,69 @@ export function buildCtx(flowsDir, dataDir, config, mode = 'stdio') {
33
33
  function text(text) {
34
34
  return { content: [{ type: 'text', text }] };
35
35
  }
36
- export function buildTools(ctx) {
37
- return [
36
+ /** 重试待上传台账(Pending/Failed)的观察包;返回成功数与失败列表(sync_pending_uploads 与启动 bootstrap 共用) */
37
+ export async function syncUploads(ctx) {
38
+ const pending = ctx.platform.pending();
39
+ if (pending.length === 0)
40
+ return { ok: 0, failed: [] };
41
+ let ok = 0;
42
+ const failed = [];
43
+ for (const runId of pending) {
44
+ const rec = ctx.store.loadRun(runId);
45
+ if (!rec)
46
+ continue;
47
+ const allRuns = ctx.store
48
+ .listRunIds()
49
+ .map((id) => ctx.store.loadRun(id))
50
+ .filter((r) => !!r && r.flowId === rec.flowId);
51
+ try {
52
+ // 配置了平台地址 → 真实上传(快照优先用落盘快照,避免空 textSummary 被平台拒);否则本地模拟(deliver)
53
+ if (ctx.config.platformUrl.length > 0) {
54
+ const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
55
+ const dir = ctx.platform.deliver(rec, allRuns, undefined, ctx.store.loadSnapshot(runId));
56
+ await client.uploadObservation(dir);
57
+ ctx.store.markUploaded(runId, true);
58
+ }
59
+ else {
60
+ ctx.platform.deliver(rec, allRuns);
61
+ }
62
+ ok++;
63
+ }
64
+ catch (e) {
65
+ // deliver 已把台账标 uploaded(本地导出语义),真实上传失败必须回写 failed(台账诚实性)
66
+ ctx.store.markUploaded(runId, false, e instanceof Error ? e.message : String(e));
67
+ failed.push(`${runId}: ${e instanceof Error ? e.message : String(e)}`);
68
+ }
69
+ }
70
+ return { ok, failed };
71
+ }
72
+ /**
73
+ * 启动自动注册(bootstrap):平台已配置时,
74
+ * 1) 健康探测(连接状态记录到日志/状态)2) 自动补传待上传台账。
75
+ * 平台不可达不阻断引擎启动(注册状态由 get_status platform.connected 反映)。
76
+ */
77
+ export async function bootstrapPlatform(ctx) {
78
+ if (ctx.config.platformUrl.length === 0)
79
+ return;
80
+ const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
81
+ const connected = await client.health();
82
+ console.log(`[flow-rpa] 平台注册探测: ${connected ? '已连接' : '不可达'}(${ctx.config.platformUrl})` +
83
+ (connected ? '' : '——引擎正常启动,观察上传将记台账 Failed 待重试'));
84
+ const r = await syncUploads(ctx);
85
+ if (r.ok > 0 || r.failed.length > 0) {
86
+ console.log(`[flow-rpa] 启动自动补传: 成功 ${r.ok}${r.failed.length > 0 ? `,失败 ${r.failed.length}(${r.failed.join('; ')})` : ''}`);
87
+ }
88
+ }
89
+ /** D3 角色裁剪(ARCHITECTURE #10 红线 4 代码化):hunter 只暴露流程执行与建议处置工具 */
90
+ export const HUNTER_TOOL_NAMES = [
91
+ 'run_flow',
92
+ 'get_run',
93
+ 'list_suggestions',
94
+ 'apply_suggestion',
95
+ 'dismiss_suggestion',
96
+ ];
97
+ export function buildTools(ctx, role = 'owner') {
98
+ const all = [
38
99
  {
39
100
  name: 'list_flows',
40
101
  description: '列出 flow-rpa 中可用的流程定义(id/name/version + inputs 参数声明,供 Agent 组装 vars)。无参数。',
@@ -58,13 +119,14 @@ export function buildTools(ctx) {
58
119
  },
59
120
  {
60
121
  name: 'run_flow',
61
- description: '执行流程,异步返回 run_id(流程含 30~60s 冷却,同步会撞 MCP 超时)。vars 为 {keyword} 等变量;wait=true 时同步执行(仅调试)。同站任务间隔 ≥10 分钟(server 侧强制),不足则拒绝;串行队列,wait:true 且队列忙则拒绝。',
122
+ description: '执行流程,异步返回 run_id(流程含 30~60s 冷却,同步会撞 MCP 超时)。vars 为 {keyword} 等变量;wait=true 时同步执行(仅调试)。同站任务间隔 ≥10 分钟(server 侧强制),不足则拒绝;串行队列,wait:true 且队列忙则拒绝。owner 为发起者标识(D7,缺省 local;多 Agent 问责用)。',
62
123
  inputSchema: {
63
124
  type: 'object',
64
125
  properties: {
65
126
  flowId: { type: 'string', description: '流程 id(flow.json 的 id 字段)' },
66
127
  vars: { type: 'object', additionalProperties: { type: 'string' }, description: '变量插值 {keyword} 等' },
67
128
  wait: { type: 'boolean', description: 'true=同步执行完返回(仅调试);缺省 false 异步排队' },
129
+ owner: { type: 'string', description: '发起者标识(D7;缺省 local)' },
68
130
  },
69
131
  required: ['flowId'],
70
132
  },
@@ -81,6 +143,7 @@ export function buildTools(ctx) {
81
143
  }
82
144
  }
83
145
  const wait = args.wait === true;
146
+ const owner = typeof args.owner === 'string' && args.owner.length > 0 ? args.owner : undefined;
84
147
  // 流程存在性检查:未知流程立即 failed(不等进队列)
85
148
  const cached = ctx.registry.get(flowId);
86
149
  if (!cached) {
@@ -104,27 +167,49 @@ export function buildTools(ctx) {
104
167
  }
105
168
  }
106
169
  const runId = newRunId();
107
- const result = await spawnRun(ctx, { flowId, vars, wait }, runId);
170
+ const result = await spawnRun(ctx, { flowId, vars, wait, owner }, runId);
108
171
  return text(JSON.stringify(result));
109
172
  },
110
173
  },
111
174
  {
112
175
  name: 'get_run',
113
- description: '查询执行记录(run.json 全量,含每步 verify 结果与耗时)。running 期间返回内存状态,完成后返回落盘记录。',
114
- inputSchema: { type: 'object', properties: { runId: { type: 'string' } }, required: ['runId'] },
176
+ description: '查询执行记录(run.json 全量,含每步 verify 结果与耗时)。running 期间返回内存状态,完成后返回落盘记录。owner 可选(D7:提供则只返回该 owner 的记录)。',
177
+ inputSchema: {
178
+ type: 'object',
179
+ properties: { runId: { type: 'string' }, owner: { type: 'string', description: '发起者过滤(D7;可选)' } },
180
+ required: ['runId'],
181
+ },
115
182
  handler: async (args) => {
116
183
  if (typeof args.runId !== 'string' || args.runId.length === 0) {
117
184
  return text('参数错误: runId 必填');
118
185
  }
186
+ const owner = typeof args.owner === 'string' && args.owner.length > 0 ? args.owner : undefined;
119
187
  const mem = ctx.runs.get(args.runId);
188
+ if (owner && mem && mem.owner !== owner) {
189
+ return text(`执行记录不存在: ${args.runId}(owner 不匹配)`);
190
+ }
120
191
  if (mem?.status === 'running')
121
192
  return text(JSON.stringify(mem));
122
193
  const rec = ctx.store.loadRun(args.runId);
123
- if (rec)
194
+ if (rec) {
195
+ if (owner && rec.owner !== owner)
196
+ return text(`执行记录不存在: ${args.runId}(owner 不匹配)`);
124
197
  return text(JSON.stringify(rec, null, 2));
198
+ }
125
199
  return text(`执行记录不存在: ${args.runId}(runs/ 目录下无对应文件)`);
126
200
  },
127
201
  },
202
+ {
203
+ name: 'cancel_run',
204
+ description: '取消排队中的任务(D7;执行中任务暂不支持——页面层 abort 留待后续)。返回取消结果。',
205
+ inputSchema: { type: 'object', properties: { runId: { type: 'string' } }, required: ['runId'] },
206
+ handler: async (args) => {
207
+ if (typeof args.runId !== 'string' || args.runId.length === 0) {
208
+ return text('参数错误: runId 必填');
209
+ }
210
+ return text(cancelRun(ctx, args.runId));
211
+ },
212
+ },
128
213
  {
129
214
  name: 'validate_flow',
130
215
  description: '校验流程定义(传 json 内容或 path 指向 flow.json),返回是否合法与错误信息。',
@@ -256,40 +341,13 @@ export function buildTools(ctx) {
256
341
  },
257
342
  {
258
343
  name: 'sync_pending_uploads',
259
- description: '重试上传台账中待上传(Pending/Failed)的观察包到本地模拟平台(断网重试入口)。',
344
+ description: '重试上传台账中待上传(Pending/Failed)的观察包到本地模拟平台(断网重试入口;启动时自动执行一次)。',
260
345
  inputSchema: { type: 'object', properties: {} },
261
346
  handler: async () => {
262
- const pending = ctx.platform.pending();
263
- if (pending.length === 0)
347
+ const r = await syncUploads(ctx);
348
+ if (r.ok === 0 && r.failed.length === 0)
264
349
  return text('没有待上传的观察包');
265
- let ok = 0;
266
- const failed = [];
267
- for (const runId of pending) {
268
- const rec = ctx.store.loadRun(runId);
269
- if (!rec)
270
- continue;
271
- const allRuns = ctx.store
272
- .listRunIds()
273
- .map((id) => ctx.store.loadRun(id))
274
- .filter((r) => !!r && r.flowId === rec.flowId);
275
- try {
276
- // M10 D-O1 接线:配置了平台地址 → 真实上传;否则本地模拟(deliver)
277
- if (ctx.config.platformUrl.length > 0) {
278
- const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
279
- const dir = ctx.platform.deliver(rec, allRuns);
280
- await client.uploadObservation(dir);
281
- ctx.store.markUploaded(runId, true);
282
- }
283
- else {
284
- ctx.platform.deliver(rec, allRuns);
285
- }
286
- ok++;
287
- }
288
- catch (e) {
289
- failed.push(`${runId}: ${e instanceof Error ? e.message : String(e)}`);
290
- }
291
- }
292
- return text(failed.length === 0 ? `已重试上传 ${ok} 个观察包` : `上传完成 ${ok} 个,失败 ${failed.length} 个: ${failed.join('; ')}`);
350
+ return text(r.failed.length === 0 ? `已重试上传 ${r.ok} 个观察包` : `上传完成 ${r.ok} 个,失败 ${r.failed.length} 个: ${r.failed.join('; ')}`);
293
351
  },
294
352
  },
295
353
  {
@@ -342,10 +400,14 @@ export function buildTools(ctx) {
342
400
  },
343
401
  },
344
402
  ];
403
+ // D3 角色裁剪:hunter 只暴露 HUNTER_TOOL_NAMES(ARCHITECTURE #10 红线 4)
404
+ if (role === 'hunter')
405
+ return all.filter((t) => HUNTER_TOOL_NAMES.includes(t.name));
406
+ return all;
345
407
  }
346
408
  /** 注册全部工具(tools/list + tools/call 两个 handler,SDK 1.30 setRequestHandler) */
347
- export function registerTools(server, ctx) {
348
- const tools = buildTools(ctx);
409
+ export function registerTools(server, ctx, role = 'owner') {
410
+ const tools = buildTools(ctx, role);
349
411
  const toolDefs = tools.map((t) => ({
350
412
  name: t.name,
351
413
  description: t.description,
@@ -373,8 +435,10 @@ export async function serveStdio(flowsDir, dataDir, config) {
373
435
  throw new Error('另一个 flow-rpa 实例正在运行(data/.lock 锁持有中);请先退出再启动');
374
436
  }
375
437
  const ctx = buildCtx(flowsDir, dataDir, config);
438
+ // 启动自动注册(平台已配置时:健康探测 + 自动补传待上传台账;不阻断启动)
439
+ void bootstrapPlatform(ctx).catch(() => undefined);
376
440
  const server = new Server({ name: 'flow-rpa', version: '0.1.0-ts' }, { capabilities: { tools: {} } });
377
- registerTools(server, ctx);
441
+ registerTools(server, ctx, config.role);
378
442
  const transport = new StdioServerTransport();
379
443
  await server.connect(transport);
380
444
  // D-R5:等连接关闭(EOF)→ 优雅退出
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}