@qing3a/flow-rpa-app 0.5.12 → 0.7.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/README.md +16 -13
- package/dist/cli.d.ts +52 -19
- package/dist/cli.js +257 -93
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -20
- package/dist/config.js +23 -45
- package/dist/config.js.map +1 -1
- package/dist/gate-key.d.ts +65 -0
- package/dist/gate-key.js +93 -0
- package/dist/gate-key.js.map +1 -0
- package/dist/gate-runtime.d.ts +27 -0
- package/dist/gate-runtime.js +44 -0
- package/dist/gate-runtime.js.map +1 -0
- package/dist/http.js +1 -2
- package/dist/http.js.map +1 -1
- package/dist/main.js +12 -12
- package/dist/main.js.map +1 -1
- package/dist/registry.d.ts +33 -2
- package/dist/registry.js +94 -10
- package/dist/registry.js.map +1 -1
- package/dist/runner.d.ts +59 -14
- package/dist/runner.js +158 -76
- package/dist/runner.js.map +1 -1
- package/dist/server.d.ts +11 -21
- package/dist/server.js +36 -132
- package/dist/server.js.map +1 -1
- package/dist/session-rotation.d.ts +58 -0
- package/dist/session-rotation.js +61 -0
- package/dist/session-rotation.js.map +1 -0
- package/dist/status.d.ts +55 -15
- package/dist/status.js +116 -65
- package/dist/status.js.map +1 -1
- package/package.json +2 -2
- package/skill/flow-rpa-engine.md +159 -50
- package/starter/baseline.json +18 -0
- package/starter/liepin_search_resumes/flow.json +34 -10
package/dist/server.js
CHANGED
|
@@ -2,19 +2,19 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { parseFlow } from '@qing3a/flow-rpa-engine/src/validate.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { MIN_SAMPLE_THRESHOLD } from '@qing3a/flow-rpa-engine/src/export.js';
|
|
5
|
+
import { waitDurationLabel } from '@qing3a/flow-rpa-engine/src/gate.js';
|
|
6
|
+
import { MIN_SAMPLE_THRESHOLD, ObservationExporter } from '@qing3a/flow-rpa-engine/src/export.js';
|
|
8
7
|
import { RunStore } from '@qing3a/flow-rpa-engine/src/storage.js';
|
|
9
8
|
import { cleanTmpFiles, retireRuns } from '@qing3a/flow-rpa-engine/src/housekeeping.js';
|
|
10
9
|
import { SuggestionStore } from '@qing3a/flow-rpa-engine/src/learning.js';
|
|
11
|
-
import { LocalPlatform } from '@qing3a/flow-rpa-engine/src/export.js';
|
|
12
10
|
import { SiteGate, CooldownGate } from '@qing3a/flow-rpa-engine/src/gate.js';
|
|
13
11
|
import { PerfGate } from '@qing3a/flow-rpa-engine/src/bench.js';
|
|
14
12
|
import { BehaviorArchive } from '@qing3a/flow-rpa-engine/src/behavior.js';
|
|
15
13
|
import { collectStatus } from './status.js';
|
|
16
14
|
import { FlowRegistry } from './registry.js';
|
|
17
|
-
import { acquireInstanceLock, cancelRun, createFlowPatchApplier,
|
|
15
|
+
import { acquireInstanceLock, cancelRun, createFlowPatchApplier, newRunId, releaseInstanceLock, resumeRun, spawnRun } from './runner.js';
|
|
16
|
+
import { gateKeyLabel, reportGateFallback, resolveGateKey } from './gate-key.js';
|
|
17
|
+
import { observedRuntimeUrl } from './gate-runtime.js';
|
|
18
18
|
import { readFileSync } from 'node:fs';
|
|
19
19
|
/** 构造执行上下文(供 serveStdio 与测试复用) */
|
|
20
20
|
export function buildCtx(flowsDir, dataDir, config, mode = 'stdio') {
|
|
@@ -23,7 +23,7 @@ export function buildCtx(flowsDir, dataDir, config, mode = 'stdio') {
|
|
|
23
23
|
store: new RunStore(dataDir),
|
|
24
24
|
runs: new Map(),
|
|
25
25
|
suggestions: new SuggestionStore(dataDir),
|
|
26
|
-
platform: new
|
|
26
|
+
platform: new ObservationExporter(dataDir),
|
|
27
27
|
siteGate: new SiteGate(dataDir),
|
|
28
28
|
coolGate: new CooldownGate(dataDir),
|
|
29
29
|
perf: new PerfGate(dataDir),
|
|
@@ -38,63 +38,6 @@ export function buildCtx(flowsDir, dataDir, config, mode = 'stdio') {
|
|
|
38
38
|
function text(text) {
|
|
39
39
|
return { content: [{ type: 'text', text }] };
|
|
40
40
|
}
|
|
41
|
-
/** 重试待上传台账(Pending/Failed)的观察包;返回成功数与失败列表(sync_pending_uploads 与启动 bootstrap 共用) */
|
|
42
|
-
export async function syncUploads(ctx) {
|
|
43
|
-
const pending = ctx.platform.pending();
|
|
44
|
-
if (pending.length === 0)
|
|
45
|
-
return { ok: 0, failed: [] };
|
|
46
|
-
let ok = 0;
|
|
47
|
-
const failed = [];
|
|
48
|
-
for (const runId of pending) {
|
|
49
|
-
const rec = ctx.store.loadRun(runId);
|
|
50
|
-
if (!rec)
|
|
51
|
-
continue;
|
|
52
|
-
const allRuns = ctx.store
|
|
53
|
-
.listRunIds()
|
|
54
|
-
.map((id) => ctx.store.loadRun(id))
|
|
55
|
-
.filter((r) => !!r && r.flowId === rec.flowId);
|
|
56
|
-
try {
|
|
57
|
-
// 配置了平台地址 → 真实上传(快照优先用落盘快照,避免空 textSummary 被平台拒);否则本地模拟(deliver)
|
|
58
|
-
if (ctx.config.platformUrl.length > 0) {
|
|
59
|
-
const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
|
|
60
|
-
const dir = ctx.platform.deliver(rec, allRuns, undefined, ctx.store.loadSnapshot(runId));
|
|
61
|
-
await client.uploadObservation(dir);
|
|
62
|
-
ctx.store.markUploaded(runId, true);
|
|
63
|
-
// T020 P0-2:上传成功即删本地 outbox(Failed/Pending 保留供重试)
|
|
64
|
-
ctx.platform.removeObservation(dir);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
const dir = ctx.platform.deliver(rec, allRuns);
|
|
68
|
-
// 本地模拟模式:deliver 即「上传成功」(台账已 Uploaded)→ 删 outbox 暂存
|
|
69
|
-
ctx.platform.removeObservation(dir);
|
|
70
|
-
}
|
|
71
|
-
ok++;
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
// deliver 已把台账标 uploaded(本地导出语义),真实上传失败必须回写 failed(台账诚实性)
|
|
75
|
-
ctx.store.markUploaded(runId, false, e instanceof Error ? e.message : String(e));
|
|
76
|
-
failed.push(`${runId}: ${e instanceof Error ? e.message : String(e)}`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return { ok, failed };
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* 启动自动注册(bootstrap):平台已配置时,
|
|
83
|
-
* 1) 健康探测(连接状态记录到日志/状态)2) 自动补传待上传台账。
|
|
84
|
-
* 平台不可达不阻断引擎启动(注册状态由 get_status platform.connected 反映)。
|
|
85
|
-
*/
|
|
86
|
-
export async function bootstrapPlatform(ctx) {
|
|
87
|
-
if (ctx.config.platformUrl.length === 0)
|
|
88
|
-
return;
|
|
89
|
-
const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
|
|
90
|
-
const connected = await client.health();
|
|
91
|
-
console.log(`[flow-rpa] 平台注册探测: ${connected ? '已连接' : '不可达'}(${ctx.config.platformUrl})` +
|
|
92
|
-
(connected ? '' : '——引擎正常启动,观察上传将记台账 Failed 待重试'));
|
|
93
|
-
const r = await syncUploads(ctx);
|
|
94
|
-
if (r.ok > 0 || r.failed.length > 0) {
|
|
95
|
-
console.log(`[flow-rpa] 启动自动补传: 成功 ${r.ok}${r.failed.length > 0 ? `,失败 ${r.failed.length}(${r.failed.join('; ')})` : ''}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
41
|
/**
|
|
99
42
|
* T020 P0-2:启动清扫(serveStdio / serveHttp 共用)——清 data/ 下残留 *.tmp +
|
|
100
43
|
* 补扫超窗 run 归档/删除(异步,不阻塞启动);edge-profile/ 绝不清理;失败仅日志。
|
|
@@ -130,7 +73,7 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
130
73
|
const all = [
|
|
131
74
|
{
|
|
132
75
|
name: 'list_flows',
|
|
133
|
-
description: '列出 flow-rpa 中可用的流程定义(id/name/version + inputs
|
|
76
|
+
description: '列出 flow-rpa 中可用的流程定义(id/name/version + inputs 参数声明 + 来源标注,供 Agent 组装 vars)。无参数。',
|
|
134
77
|
inputSchema: { type: 'object', properties: {} },
|
|
135
78
|
handler: async () => {
|
|
136
79
|
const flows = ctx.registry.list();
|
|
@@ -138,10 +81,14 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
138
81
|
return text('没有可用的流程(flows/ 目录下无 flow.json)');
|
|
139
82
|
const lines = ['可用流程:'];
|
|
140
83
|
for (const f of flows) {
|
|
141
|
-
|
|
84
|
+
// T035-2(S6):来源标注(builtin / builtin-modified / local)——让「内置流程被本地改过」可见
|
|
85
|
+
lines.push(`- ${f.id}(v${f.version}): ${f.name} [来源: ${f.origin}]`);
|
|
86
|
+
if (f.origin === 'builtin-modified') {
|
|
87
|
+
lines.push(' ⚠️ 与内置基线不一致(本地已改动)——引擎按你的版本执行,不阻断;改回内置版本可删除本地改动');
|
|
88
|
+
}
|
|
142
89
|
if (f.inputs.length > 0) {
|
|
143
90
|
const decl = f.inputs
|
|
144
|
-
.map((i) => `${i.name}(${i.required ? '必填' : '可选'})${i.description ? `: ${i.description}` : ''}`)
|
|
91
|
+
.map((i) => `${i.name}(${i.required ? '必填' : '可选'}${i.default !== undefined ? `,缺省 ${i.default}` : ''})${i.description ? `: ${i.description}` : ''}`)
|
|
145
92
|
.join(';');
|
|
146
93
|
lines.push(` 参数: ${decl}`);
|
|
147
94
|
}
|
|
@@ -189,25 +136,37 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
189
136
|
return text(JSON.stringify({ status: 'failed', error: `流程不存在: ${flowId}` }));
|
|
190
137
|
}
|
|
191
138
|
// D-R6:vars 缺 required 的 input → 明确报错(Agent 组装 vars 的信息缺口收口)
|
|
192
|
-
const missing = (cached.flow.inputs ?? []).filter((i) => i.required === true && vars[i.name] === undefined);
|
|
139
|
+
const missing = (cached.flow.inputs ?? []).filter((i) => i.required === true && i.default === undefined && vars[i.name] === undefined);
|
|
193
140
|
if (missing.length > 0) {
|
|
194
141
|
return text(JSON.stringify({ status: 'failed', error: `缺少必填参数: ${missing[0].name}` }));
|
|
195
142
|
}
|
|
196
143
|
// 任务间同站闸门(防封铁律,server 侧强制)
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
144
|
+
// T035-1(S2):key 由 gate-key 三级解析——① 运行时实际 host(执行层在 run 起点把页面
|
|
145
|
+
// `location.href` 记成只读观测,此处取该流程的最近一次;真实 run 前会会话轮换,硬探浏览器
|
|
146
|
+
// 只会把上一次会话的残留站点错锚进来,故入口层不探测)→ ② 流程声明的全部 navigate host
|
|
147
|
+
// (取最后一个)→ ③ `flow:<id>` 维度兜底。**永远有 key**:「流程没有 navigate 步骤」
|
|
148
|
+
// 不再等于「静默无闸门」——它退到 flow 维度,照样受节流。
|
|
149
|
+
const gate = resolveGateKey(flowId, cached.flow.steps, { runtimeUrl: observedRuntimeUrl(flowId) });
|
|
150
|
+
if (gate.source === 'flow')
|
|
151
|
+
reportGateFallback(flowId);
|
|
152
|
+
{
|
|
153
|
+
const waitSecs = ctx.siteGate.acquire(gate.key);
|
|
200
154
|
if (typeof waitSecs === 'number') {
|
|
155
|
+
// 深度翻页冷却(上一个 run 翻过页)时把原因讲清——否则用户只看到「还需等待」不知为何变长
|
|
156
|
+
const penalty = ctx.siteGate.penaltyRemaining(gate.key);
|
|
157
|
+
const penaltyNote = penalty > 0 ? `(其中深度翻页冷却 ${waitDurationLabel(penalty)}:上一个 run 翻页较多,防封护栏)` : '';
|
|
201
158
|
return text(JSON.stringify({
|
|
202
159
|
status: 'failed',
|
|
203
160
|
// 节流窗口为随机值(15~70s),文案只报剩余等待
|
|
204
|
-
error: `同站节流:${
|
|
161
|
+
error: `同站节流:${gateKeyLabel(gate)} 还需等待 ${waitDurationLabel(waitSecs)}${penaltyNote}`,
|
|
205
162
|
}));
|
|
206
163
|
}
|
|
207
164
|
}
|
|
208
165
|
const runId = newRunId();
|
|
209
|
-
|
|
210
|
-
|
|
166
|
+
// T035-1:把已解析的闸门 key 传进执行层——同一 run 的 acquire 与 penalize 记同一个 key
|
|
167
|
+
const result = await spawnRun(ctx, { flowId, vars, wait, owner, gateKeyResolved: gate }, runId);
|
|
168
|
+
// T035-2(S6):来源标注只进工具面返回(run.json 落盘格式冻结,无 origin 字段)
|
|
169
|
+
return text(JSON.stringify({ ...result, origin: cached.origin }));
|
|
211
170
|
},
|
|
212
171
|
},
|
|
213
172
|
{
|
|
@@ -251,7 +210,7 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
251
210
|
},
|
|
252
211
|
{
|
|
253
212
|
name: 'resume_run',
|
|
254
|
-
description: '从暂停点继续执行(T015:人工接管场景——登录/验证码/确认弹窗命中后 run 进入 paused,用户处理完调用本工具继续;不重跑已完成步骤;执行中/非 paused 拒绝;暂停超时(缺省 5 分钟)转 failed)。',
|
|
213
|
+
description: '从暂停点继续执行(T015:人工接管场景——登录/验证码/确认弹窗命中后 run 进入 paused,用户处理完调用本工具继续;不重跑已完成步骤;执行中/非 paused 拒绝;暂停超时(缺省 5 分钟)转 failed)。T027/B2:login 暂停 resume 前预检登录态——仍在登录区拒绝(precheckRejected:true,run 保持 paused)并返回 pauseGuidance 指引,不消耗执行轮次;预检不可判定(浏览器不可达)放行走原路径。',
|
|
255
214
|
inputSchema: { type: 'object', properties: { runId: { type: 'string' } }, required: ['runId'] },
|
|
256
215
|
handler: async (args) => {
|
|
257
216
|
if (typeof args.runId !== 'string' || args.runId.length === 0) {
|
|
@@ -349,7 +308,7 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
349
308
|
},
|
|
350
309
|
{
|
|
351
310
|
name: 'export_observation',
|
|
352
|
-
description: '把一次执行记录导出为观察报告包(
|
|
311
|
+
description: '把一次执行记录导出为观察报告包(outbox/<flow>_v<version>_<run>/:stats.json 脱敏统计 + run.json + manifest.json + dom_snapshot.json + events.jsonl)。纯本地导出工件(T029:md-forge 上行已退役,可人工查看或经运营层传递)。dom_text 为可选页面文本快照。',
|
|
353
312
|
inputSchema: {
|
|
354
313
|
type: 'object',
|
|
355
314
|
properties: { runId: { type: 'string' }, domText: { type: 'string' } },
|
|
@@ -371,38 +330,13 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
371
330
|
const dir = ctx.platform.deliver(rec, allRuns, typeof args.domText === 'string' ? args.domText : undefined, snapshot);
|
|
372
331
|
const statsNote = allRuns.length < MIN_SAMPLE_THRESHOLD ? `(样本 ${allRuns.length} < 门槛 ${MIN_SAMPLE_THRESHOLD},统计通道未携带)` : '';
|
|
373
332
|
const snapNote = snapshot ? '(含编号元素快照)' : '';
|
|
374
|
-
|
|
375
|
-
let uploadNote = '';
|
|
376
|
-
if (ctx.config.platformUrl.length > 0) {
|
|
377
|
-
const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
|
|
378
|
-
try {
|
|
379
|
-
const up = await client.uploadObservation(dir);
|
|
380
|
-
uploadNote = ` 平台${up.status === 'accepted' ? '已接收' : '重复'}(${up.dir})`;
|
|
381
|
-
ctx.store.markUploaded(rec.runId, true);
|
|
382
|
-
}
|
|
383
|
-
catch (e) {
|
|
384
|
-
ctx.store.markUploaded(rec.runId, false, e instanceof Error ? e.message : String(e));
|
|
385
|
-
return text(`导出完成但上传失败: ${dir}(${e instanceof Error ? e.message : String(e)});台账已记 Failed,可 sync_pending_uploads 重试`);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
return text(`观察报告已导出: ${dir}${snapNote}${statsNote}${uploadNote}`);
|
|
333
|
+
return text(`观察报告已导出: ${dir}${snapNote}${statsNote}`);
|
|
389
334
|
}
|
|
390
335
|
catch (e) {
|
|
391
336
|
return text(`导出失败: ${e instanceof Error ? e.message : String(e)}`);
|
|
392
337
|
}
|
|
393
338
|
},
|
|
394
339
|
},
|
|
395
|
-
{
|
|
396
|
-
name: 'sync_pending_uploads',
|
|
397
|
-
description: '重试上传台账中待上传(Pending/Failed)的观察包到本地模拟平台(断网重试入口;启动时自动执行一次)。',
|
|
398
|
-
inputSchema: { type: 'object', properties: {} },
|
|
399
|
-
handler: async () => {
|
|
400
|
-
const r = await syncUploads(ctx);
|
|
401
|
-
if (r.ok === 0 && r.failed.length === 0)
|
|
402
|
-
return text('没有待上传的观察包');
|
|
403
|
-
return text(r.failed.length === 0 ? `已重试上传 ${r.ok} 个观察包` : `上传完成 ${r.ok} 个,失败 ${r.failed.length} 个: ${r.failed.join('; ')}`);
|
|
404
|
-
},
|
|
405
|
-
},
|
|
406
340
|
{
|
|
407
341
|
name: 'get_perf',
|
|
408
342
|
description: '查询端到端性能基准(各流程平均耗时/平均步骤数/样本数;质量门数据)。',
|
|
@@ -416,37 +350,9 @@ export function buildTools(ctx, role = 'owner') {
|
|
|
416
350
|
.join('\n'));
|
|
417
351
|
},
|
|
418
352
|
},
|
|
419
|
-
{
|
|
420
|
-
name: 'pkg_update',
|
|
421
|
-
description: '从 md-forge 平台更新流程包(flowId 可选;缺省更新全部已安装流程)。拉 manifest → 版本比对 → 下载 → 哈希校验 → 替换本地 flows/<name>/(软件包仅提示)。',
|
|
422
|
-
inputSchema: { type: 'object', properties: { flowId: { type: 'string' } } },
|
|
423
|
-
handler: async (args) => {
|
|
424
|
-
const client = new PlatformClient(ctx.config.platformUrl, ctx.config.platformToken);
|
|
425
|
-
if (ctx.config.platformUrl.length === 0) {
|
|
426
|
-
return text('pkg_update 未配置平台地址(启动时加 --platform-url <url> --platform-token <token>)');
|
|
427
|
-
}
|
|
428
|
-
const flowsDir = ctx.registry.flowsDirOf();
|
|
429
|
-
const targets = typeof args.flowId === 'string' && args.flowId.trim().length > 0
|
|
430
|
-
? [args.flowId.trim()]
|
|
431
|
-
: ctx.registry.list().map((f) => f.id);
|
|
432
|
-
if (targets.length === 0)
|
|
433
|
-
return text('没有已安装的流程(flows/ 下无 flow.json)');
|
|
434
|
-
const out = [];
|
|
435
|
-
for (const name of targets) {
|
|
436
|
-
try {
|
|
437
|
-
const r = await pkgUpdate(client, flowsDir, name);
|
|
438
|
-
out.push(`- ${r.name}: ${r.status}(本地 v${r.localVersion ?? '?'} → 平台 v${r.platformVersion ?? '?'},hash ${r.hash.slice(0, 8)})${r.message ? ` ${r.message}` : ''}`);
|
|
439
|
-
}
|
|
440
|
-
catch (e) {
|
|
441
|
-
out.push(`- ${name}: 错误 ${e instanceof Error ? e.message : String(e)}`);
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
return text(out.join('\n').trimEnd());
|
|
445
|
-
},
|
|
446
|
-
},
|
|
447
353
|
{
|
|
448
354
|
name: 'get_status',
|
|
449
|
-
description: '查询引擎当前状态(版本/skill
|
|
355
|
+
description: '查询引擎当前状态(版本/skill 版本/浏览器连接/队列/锁/流程列表)——调用流程前预检环境。无参数,返回与 /status.json 同构的 JSON。',
|
|
450
356
|
inputSchema: { type: 'object', properties: {} },
|
|
451
357
|
handler: async () => {
|
|
452
358
|
return text(JSON.stringify(await collectStatus(ctx), null, 2));
|
|
@@ -496,8 +402,6 @@ export async function serveStdio(flowsDir, dataDir, config) {
|
|
|
496
402
|
const origInfo = console.info;
|
|
497
403
|
console.log = (...args) => console.error('[flow-rpa]', ...args);
|
|
498
404
|
console.info = (...args) => console.error('[flow-rpa]', ...args);
|
|
499
|
-
// 启动自动注册(平台已配置时:健康探测 + 自动补传待上传台账;不阻断启动)
|
|
500
|
-
void bootstrapPlatform(ctx).catch(() => undefined);
|
|
501
405
|
// T020 P0-2:启动清扫(残留 tmp + 补扫超窗 run 归档/删除)
|
|
502
406
|
housekeepingStartup(ctx);
|
|
503
407
|
const server = new Server({ name: 'flow-rpa', version: '0.1.0-ts' }, { capabilities: { tools: {} } });
|
package/dist/server.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T033-2(ANTI-BAN-PRINCIPLES §五 S5):会话轮换状态 —— doctor 与真实运行配置**同源**。
|
|
3
|
+
*
|
|
4
|
+
* 由来(2026-09-10 复核):
|
|
5
|
+
* - `doctorReport()` 读的是 CLI 旗标 `opts.edgePath`,而真实运行配置 `configFromCli(opts)` 会经
|
|
6
|
+
* `defaultRunConfig()` → `defaultEdgePath()` **自动探测**系统 Edge。两边不同源 →
|
|
7
|
+
* doctor 报「Edge 未配置 ⚠️」是**误报**(实际跑起来会配好;远程用户碰到过这种误报)。
|
|
8
|
+
* - 反向:Edge 不在常见路径且未传 `--edge` → `edgePath=''` → `executeRun` 的
|
|
9
|
+
* **会话轮换被静默跳过**(`if (ctx.config.edgePath.length > 0)`),而 doctor 只给一个 ⚠️,
|
|
10
|
+
* 用户看不出「这次 run 不会轮换会话」。
|
|
11
|
+
*
|
|
12
|
+
* 本模块把「轮换是否启用 + 为什么」收敛成一个**只读观测**,三处共用同一判据:
|
|
13
|
+
* doctor 输出(before run)、run 日志(during run)、`get_status`(查询时)——
|
|
14
|
+
* 同一 `RunConfig` 输入必然得到同一结论,口径漂移不可能再发生。
|
|
15
|
+
*/
|
|
16
|
+
/** 观测到的 edgePath 来源(doctor 用三态呈现;explicit/detected 都算「已配置」) */
|
|
17
|
+
export type RotationReason =
|
|
18
|
+
/** 显式配置(CLI `--edge <路径>`) */
|
|
19
|
+
'explicit'
|
|
20
|
+
/** 自动探测到(本机常见安装路径,如 C:\Program Files (x86)\Microsoft\Edge\...) */
|
|
21
|
+
| 'detected'
|
|
22
|
+
/** 未配置(未传 --edge 且探测不到)→ 本次 run 不做会话轮换 */
|
|
23
|
+
| 'disabled';
|
|
24
|
+
/** 会话轮换观测(只读;无副作用) */
|
|
25
|
+
export interface RotationObservation {
|
|
26
|
+
/** 本次 run 是否会做会话轮换(判据与 executeRun 完全一致:edgePath 非空) */
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
/** edgePath 来源 */
|
|
29
|
+
reason: RotationReason;
|
|
30
|
+
/** 生效的 Edge 路径(disabled 时为空串) */
|
|
31
|
+
edgePath: string;
|
|
32
|
+
}
|
|
33
|
+
/** 观测会话轮换状态(纯函数:入参 = RunConfig 的 edgePath 与「是否 CLI 显式给了 --edge」) */
|
|
34
|
+
export declare function observeRotation(edgePath: string, explicitEdge: boolean): RotationObservation;
|
|
35
|
+
/** 观测是否「显式给出」。空串 `--edge ''` 不算显式(与 configFromCli 的判据一致) */
|
|
36
|
+
export declare function isExplicitEdge(edgePath: string | undefined): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 从生效配置判定来源:`config.edgePath` 与 `defaultEdgePath()` 相同 → 自动探测;不同 → 显式 `--edge`。
|
|
39
|
+
* (`configFromCli` 已把两种来源合并进同一个 `edgePath` 字段,来源只能靠「是否等于探测值」反推——
|
|
40
|
+
* 与 doctor 的 `opts.edgePath` 判据等价:显式值万一恰好等于探测值,两种口径都判「已启用」,不影响结论。)
|
|
41
|
+
*/
|
|
42
|
+
export declare function rotationFromConfig(edgePath: string, detectedPath: string): RotationObservation;
|
|
43
|
+
/** 刷新本轮运行观测(executeRun / doctor 调用;返回观测结果供日志用) */
|
|
44
|
+
export declare function setRotationObservation(obs: RotationObservation): RotationObservation;
|
|
45
|
+
/** 读本轮运行观测(只读;doctor / collectStatus / 测试用) */
|
|
46
|
+
export declare function currentRotation(): RotationObservation;
|
|
47
|
+
/** 测试用:复位观测(避免用例间串状态) */
|
|
48
|
+
export declare function resetRotationObservation(): void;
|
|
49
|
+
/**
|
|
50
|
+
* 会话轮换状态的一行日志(executeRun 每次真实 run 打一行;三态口径与 doctor 一致)。
|
|
51
|
+
* 形如 `会话轮换:已启用(edgePath=C:\...\msedge.exe)` 或
|
|
52
|
+
* `会话轮换:未启用(原因:未探测到 Edge,且未传 --edge)`。
|
|
53
|
+
*/
|
|
54
|
+
export declare function rotationLogLine(obs: RotationObservation): string;
|
|
55
|
+
/** 会话轮换状态的一句话(doctor / get_status 共用,避免两处文案漂移) */
|
|
56
|
+
export declare function rotationDetail(obs: RotationObservation): string;
|
|
57
|
+
/** Edge 存在性校验(doctor 提示用;只读探测,不拉起) */
|
|
58
|
+
export declare function edgePathExists(edgePath: string): boolean;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
/** 观测会话轮换状态(纯函数:入参 = RunConfig 的 edgePath 与「是否 CLI 显式给了 --edge」) */
|
|
3
|
+
export function observeRotation(edgePath, explicitEdge) {
|
|
4
|
+
if (edgePath.length === 0)
|
|
5
|
+
return { enabled: false, reason: 'disabled', edgePath: '' };
|
|
6
|
+
return { enabled: true, reason: explicitEdge ? 'explicit' : 'detected', edgePath };
|
|
7
|
+
}
|
|
8
|
+
/** 观测是否「显式给出」。空串 `--edge ''` 不算显式(与 configFromCli 的判据一致) */
|
|
9
|
+
export function isExplicitEdge(edgePath) {
|
|
10
|
+
return typeof edgePath === 'string' && edgePath.length > 0;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 从生效配置判定来源:`config.edgePath` 与 `defaultEdgePath()` 相同 → 自动探测;不同 → 显式 `--edge`。
|
|
14
|
+
* (`configFromCli` 已把两种来源合并进同一个 `edgePath` 字段,来源只能靠「是否等于探测值」反推——
|
|
15
|
+
* 与 doctor 的 `opts.edgePath` 判据等价:显式值万一恰好等于探测值,两种口径都判「已启用」,不影响结论。)
|
|
16
|
+
*/
|
|
17
|
+
export function rotationFromConfig(edgePath, detectedPath) {
|
|
18
|
+
if (edgePath.length === 0)
|
|
19
|
+
return { enabled: false, reason: 'disabled', edgePath: '' };
|
|
20
|
+
return { enabled: true, reason: detectedPath === edgePath ? 'detected' : 'explicit', edgePath };
|
|
21
|
+
}
|
|
22
|
+
/** 本轮运行观测(runner 在每次真实 run 前刷新;doctor 与 get_status 只读) */
|
|
23
|
+
let observation = { enabled: false, reason: 'disabled', edgePath: '' };
|
|
24
|
+
/** 刷新本轮运行观测(executeRun / doctor 调用;返回观测结果供日志用) */
|
|
25
|
+
export function setRotationObservation(obs) {
|
|
26
|
+
observation = obs;
|
|
27
|
+
return observation;
|
|
28
|
+
}
|
|
29
|
+
/** 读本轮运行观测(只读;doctor / collectStatus / 测试用) */
|
|
30
|
+
export function currentRotation() {
|
|
31
|
+
return observation;
|
|
32
|
+
}
|
|
33
|
+
/** 测试用:复位观测(避免用例间串状态) */
|
|
34
|
+
export function resetRotationObservation() {
|
|
35
|
+
observation = { enabled: false, reason: 'disabled', edgePath: '' };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 会话轮换状态的一行日志(executeRun 每次真实 run 打一行;三态口径与 doctor 一致)。
|
|
39
|
+
* 形如 `会话轮换:已启用(edgePath=C:\...\msedge.exe)` 或
|
|
40
|
+
* `会话轮换:未启用(原因:未探测到 Edge,且未传 --edge)`。
|
|
41
|
+
*/
|
|
42
|
+
export function rotationLogLine(obs) {
|
|
43
|
+
if (!obs.enabled)
|
|
44
|
+
return '会话轮换:未启用(原因:未探测到 Edge,且未传 --edge)';
|
|
45
|
+
const src = obs.reason === 'explicit' ? '显式配置 --edge' : '自动探测';
|
|
46
|
+
return `会话轮换:已启用(${src},edgePath=${obs.edgePath})`;
|
|
47
|
+
}
|
|
48
|
+
/** 会话轮换状态的一句话(doctor / get_status 共用,避免两处文案漂移) */
|
|
49
|
+
export function rotationDetail(obs) {
|
|
50
|
+
if (!obs.enabled) {
|
|
51
|
+
return '未配置 → 本次 run 不会做会话轮换(会话轮换依赖 Edge 可执行文件;传 --edge <路径> 或安装到默认路径)';
|
|
52
|
+
}
|
|
53
|
+
return obs.reason === 'explicit'
|
|
54
|
+
? `已启用(显式配置 --edge):${obs.edgePath}`
|
|
55
|
+
: `已启用(自动探测到):${obs.edgePath}`;
|
|
56
|
+
}
|
|
57
|
+
/** Edge 存在性校验(doctor 提示用;只读探测,不拉起) */
|
|
58
|
+
export function edgePathExists(edgePath) {
|
|
59
|
+
return edgePath.length > 0 && existsSync(edgePath);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=session-rotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-rotation.js","sourceRoot":"","sources":["../src/session-rotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAqCpC,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,YAAqB;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACtF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAA;AACpF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,QAA4B;IACzD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACtF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAA;AACjG,CAAC;AAED,0DAA0D;AAC1D,IAAI,WAAW,GAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AAE3F,kDAAkD;AAClD,MAAM,UAAU,sBAAsB,CAAC,GAAwB;IAC7D,WAAW,GAAG,GAAG,CAAA;IACjB,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,eAAe;IAC7B,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,wBAAwB;IACtC,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAwB;IACtD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,mCAAmC,CAAA;IAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,OAAO,YAAY,GAAG,aAAa,GAAG,CAAC,QAAQ,GAAG,CAAA;AACpD,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,GAAwB;IACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,gEAAgE,CAAA;IACzE,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;QAC9B,CAAC,CAAC,oBAAoB,GAAG,CAAC,QAAQ,EAAE;QACpC,CAAC,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAA;AAClC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;AACpD,CAAC"}
|
package/dist/status.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import type { FlowOrigin } from './registry.js';
|
|
1
2
|
import type { FlowMcpCtx } from './server.js';
|
|
2
3
|
/**
|
|
3
4
|
* M11e 只读状态页(D-P1/D-P2/D-P3)+ 自描述(EXECUTION-SPEC-STATUS D-S1)。
|
|
4
|
-
* - GET / 返回 HTML:流程列表 + 最近运行 + 浏览器 9222 状态
|
|
5
|
+
* - GET / 返回 HTML:流程列表 + 最近运行 + 浏览器 9222 状态
|
|
6
|
+
* - T029(0.6.0):platform/ledger 字段随 md-forge 退役移除
|
|
5
7
|
* - GET /status.json 返回 collectStatus 聚合的引擎状态 JSON(与状态页同一数据源)
|
|
8
|
+
* - T034-2(0.6.8):兜底率只读呈现(最近 N 次 run 的兜底事件数/占比,读旁路台账
|
|
9
|
+
* `data/behavior/fallback-events.jsonl`;控制台/状态输出同一文案含「目标 0」)
|
|
6
10
|
* - 只读铁律:无任何写操作端点(无编辑/执行/管理动作)
|
|
7
11
|
* - 数据来源:config/registry/store/gate/lock,不新增服务端状态(只读聚合)
|
|
8
12
|
*/
|
|
@@ -30,8 +34,8 @@ export interface StatusJson {
|
|
|
30
34
|
/** 单实例锁(data/.lock):held=当前进程持有;otherPid 存在=被其他实例持有 */
|
|
31
35
|
lock: {
|
|
32
36
|
held: boolean;
|
|
33
|
-
/** 当前运行模式(stdio / http
|
|
34
|
-
mode: 'stdio' | 'http';
|
|
37
|
+
/** 当前运行模式(stdio / http / cli——T026/B1 CLI 直跑) */
|
|
38
|
+
mode: 'stdio' | 'http' | 'cli';
|
|
35
39
|
pid?: number;
|
|
36
40
|
otherPid?: number;
|
|
37
41
|
ageMs: number;
|
|
@@ -44,26 +48,62 @@ export interface StatusJson {
|
|
|
44
48
|
name: string;
|
|
45
49
|
required: boolean;
|
|
46
50
|
description?: string;
|
|
51
|
+
default?: string;
|
|
47
52
|
}>;
|
|
53
|
+
/**
|
|
54
|
+
* T035-2(S6):流程来源标注(`builtin` / `builtin-modified` / `local`)。
|
|
55
|
+
* 「内置流程被本地改动过」从此在 get_status / 状态页一眼可见(此前无从区分)。
|
|
56
|
+
*/
|
|
57
|
+
origin: FlowOrigin;
|
|
48
58
|
}>;
|
|
49
59
|
/** D1 fail-loud:坏流程加载警告(registry.warnings;空数组 = 无警告) */
|
|
50
60
|
flowWarnings: string[];
|
|
61
|
+
/**
|
|
62
|
+
* T033-2(S5):会话轮换状态(只读观测,与 doctor / executeRun 同一判据)。
|
|
63
|
+
* `enabled=false` = 本次运行配置下不会做 run 前会话轮换(此前是静默跳过,只藏在代码分支里)。
|
|
64
|
+
*/
|
|
65
|
+
sessionRotation: {
|
|
66
|
+
/** 本次是否会做 run 前会话轮换(判据:edgePath 非空) */
|
|
67
|
+
enabled: boolean;
|
|
68
|
+
/** edgePath 来源:显式 --edge / 自动探测 / 未配置 */
|
|
69
|
+
reason: 'explicit' | 'detected' | 'disabled';
|
|
70
|
+
/** 生效的 Edge 路径(disabled 时为空串) */
|
|
71
|
+
edgePath: string;
|
|
72
|
+
/** 一句话口径(与 doctor 同一文案源 session-rotation.ts) */
|
|
73
|
+
detail: string;
|
|
74
|
+
};
|
|
51
75
|
runs: {
|
|
52
76
|
recent: number;
|
|
53
|
-
pendingUploads: number;
|
|
54
|
-
};
|
|
55
|
-
ledger: {
|
|
56
|
-
pending: number;
|
|
57
|
-
uploaded: number;
|
|
58
|
-
failed: number;
|
|
59
|
-
};
|
|
60
|
-
/** 平台配置(脱敏口径:不含 token)+ 注册连通状态(health 探测) */
|
|
61
|
-
platform: {
|
|
62
|
-
configured: boolean;
|
|
63
|
-
url: string;
|
|
64
|
-
connected: boolean;
|
|
65
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* T034-2(S4):兜底率只读呈现(数据源 = `data/behavior/fallback-events.jsonl` 旁路台账
|
|
80
|
+
* + `data/runs/` 的 run 列表;**不新增落盘格式、不改 run.json**)。
|
|
81
|
+
* 「非拟人捷径(B 类)应为 0 次」是目标;>0 必须能解释原因。
|
|
82
|
+
*/
|
|
83
|
+
fallbacks: FallbackRate;
|
|
84
|
+
}
|
|
85
|
+
/** 兜底率(B 类非拟人捷径;T034-2 / S4) */
|
|
86
|
+
export interface FallbackRate {
|
|
87
|
+
/** 回看窗口(最近 N 次 run;不足 N 次即实际 run 数) */
|
|
88
|
+
windowRuns: number;
|
|
89
|
+
/** 窗口内台账记录的兜底事件总数(一个 run 可有多条) */
|
|
90
|
+
events: number;
|
|
91
|
+
/** 窗口内发生过兜底的 run 数 */
|
|
92
|
+
runsWithFallback: number;
|
|
93
|
+
/** 兜底率 = runsWithFallback / windowRuns(0~1;窗口为空 → 0) */
|
|
94
|
+
rate: number;
|
|
95
|
+
/** 兜底种类计数(kind → 次数;用于解释「>0 是什么」) */
|
|
96
|
+
kinds: Record<string, number>;
|
|
97
|
+
/** 一句话口径(含「目标 0」,状态页/JSON/控制台共用同一文案源) */
|
|
98
|
+
detail: string;
|
|
66
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* 兜底率聚合(T034-2 / S4):纯函数——给定「窗口内的 run id」与台账原文,算事件数/占比/种类。
|
|
102
|
+
* 台账行 = 一次含兜底的 run:`{at, runId, flowId, hits:[{stepId, kind, selector}]}`(runner 在 run
|
|
103
|
+
* 结束后追加;**0 兜底的 run 不写行**)。窗口外的行、坏行、空 hits 一律不计(旁路数据不污染主聚合)。
|
|
104
|
+
* 抽成纯函数是为了让「0 兜底 → 0%」「有兜底 → 正确计数」可被直测(不经 ctx/fs)。
|
|
105
|
+
*/
|
|
106
|
+
export declare function fallbackRateFrom(runIds: readonly string[], ledgerRaw: string): FallbackRate;
|
|
67
107
|
/** 聚合引擎当前状态(自描述;/status.json 与 get_status 共用同一数据源) */
|
|
68
108
|
export declare function collectStatus(ctx: FlowMcpCtx): Promise<StatusJson>;
|
|
69
109
|
/** 生成状态页 HTML(内嵌数据,只读;数据源 = collectStatus) */
|