@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/status.js
CHANGED
|
@@ -2,8 +2,10 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { listTargets } from '@qing3a/flow-rpa-engine/src/cdp/client.js';
|
|
5
|
-
import { PlatformClient } from '@qing3a/flow-rpa-engine/src/platform.js';
|
|
6
5
|
import { queueState } from './runner.js';
|
|
6
|
+
import { currentRotation, rotationDetail } from './session-rotation.js';
|
|
7
|
+
/** 兜底率回看窗口(最近 N 次 run;与 ANTI-BAN-PRINCIPLES §四 的「兜底率读法」同一口径) */
|
|
8
|
+
const FALLBACK_WINDOW_RUNS = 20;
|
|
7
9
|
/** HTML 转义(防注入) */
|
|
8
10
|
function esc(s) {
|
|
9
11
|
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
@@ -28,20 +30,64 @@ async function browserProbe(ctx) {
|
|
|
28
30
|
return false;
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
/**
|
|
34
|
+
* 兜底率聚合(T034-2 / S4):纯函数——给定「窗口内的 run id」与台账原文,算事件数/占比/种类。
|
|
35
|
+
* 台账行 = 一次含兜底的 run:`{at, runId, flowId, hits:[{stepId, kind, selector}]}`(runner 在 run
|
|
36
|
+
* 结束后追加;**0 兜底的 run 不写行**)。窗口外的行、坏行、空 hits 一律不计(旁路数据不污染主聚合)。
|
|
37
|
+
* 抽成纯函数是为了让「0 兜底 → 0%」「有兜底 → 正确计数」可被直测(不经 ctx/fs)。
|
|
38
|
+
*/
|
|
39
|
+
export function fallbackRateFrom(runIds, ledgerRaw) {
|
|
40
|
+
const window = new Set(runIds);
|
|
41
|
+
const withFallback = new Set();
|
|
42
|
+
const kinds = {};
|
|
43
|
+
let events = 0;
|
|
44
|
+
for (const line of ledgerRaw.split('\n')) {
|
|
45
|
+
if (line.trim() === '')
|
|
46
|
+
continue;
|
|
47
|
+
let entry;
|
|
48
|
+
try {
|
|
49
|
+
entry = JSON.parse(line);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
continue; // 坏行跳过(旁路数据不影响主聚合)
|
|
53
|
+
}
|
|
54
|
+
if (typeof entry.runId !== 'string' || !window.has(entry.runId))
|
|
55
|
+
continue;
|
|
56
|
+
const hits = Array.isArray(entry.hits) ? entry.hits : [];
|
|
57
|
+
if (hits.length === 0)
|
|
58
|
+
continue;
|
|
59
|
+
events += hits.length;
|
|
60
|
+
withFallback.add(entry.runId);
|
|
61
|
+
for (const hit of hits) {
|
|
62
|
+
const kind = hit !== null && typeof hit === 'object' && typeof hit.kind === 'string'
|
|
63
|
+
? hit.kind
|
|
64
|
+
: 'unknown';
|
|
65
|
+
kinds[kind] = (kinds[kind] ?? 0) + 1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const runsWithFallback = withFallback.size;
|
|
69
|
+
const rate = runIds.length > 0 ? runsWithFallback / runIds.length : 0;
|
|
70
|
+
// 「目标 0」是唯一文案源:状态页 HTML / status.json / get_status 三处同文
|
|
71
|
+
const detail = runIds.length === 0
|
|
72
|
+
? '最近 0 次 run(无运行记录):未观测到非拟人兜底——目标 0(B 类捷径,见 docs/ANTI-BAN-PRINCIPLES.md ②)'
|
|
73
|
+
: `最近 ${runIds.length} 次 run 兜底率 ${(rate * 100).toFixed(0)}%(${runsWithFallback}/${runIds.length} 次 run 发生兜底,事件 ${events} 次${events > 0 ? `:${Object.entries(kinds).map(([k, n]) => `${k}×${n}`).join('、')}` : ''})——目标 0(B 类捷径只应收敛、不新增)`;
|
|
74
|
+
return { windowRuns: runIds.length, events, runsWithFallback, rate, kinds, detail };
|
|
36
75
|
}
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
76
|
+
/**
|
|
77
|
+
* 兜底率聚合(T034-2 / S4,只读):窗口 = 最近 N 次 run(`data/runs/`),台账 = 旁路
|
|
78
|
+
* `data/behavior/fallback-events.jsonl`。台账缺失/损坏 → 视为 0 兜底(只读聚合,绝不因旁路
|
|
79
|
+
* 数据坏掉而让状态页失败)。
|
|
80
|
+
*/
|
|
81
|
+
function fallbackRate(ctx) {
|
|
82
|
+
const windowIds = ctx.store.listRunIds().reverse().slice(0, FALLBACK_WINDOW_RUNS);
|
|
83
|
+
let raw = '';
|
|
84
|
+
try {
|
|
85
|
+
raw = readFileSync(join(ctx.store.root, 'behavior', 'fallback-events.jsonl'), 'utf8');
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
raw = ''; // 无台账 = 从无兜底(不是错误态)
|
|
89
|
+
}
|
|
90
|
+
return fallbackRateFrom(windowIds, raw);
|
|
45
91
|
}
|
|
46
92
|
/** 应用(app 包)版本:读包根 package.json(src/ 或 dist/ → 上一级即包根) */
|
|
47
93
|
function appVersion() {
|
|
@@ -83,7 +129,10 @@ function lockState(ctx) {
|
|
|
83
129
|
/** 聚合引擎当前状态(自描述;/status.json 与 get_status 共用同一数据源) */
|
|
84
130
|
export async function collectStatus(ctx) {
|
|
85
131
|
const version = appVersion();
|
|
86
|
-
|
|
132
|
+
// T033-2(S5):读本轮运行观测(executeRun/doctor 刷新;只读,不改 ctx)
|
|
133
|
+
const rotation = currentRotation();
|
|
134
|
+
// T035-2(S6):流程列表带来源标注(list() 一次拿到,warnings 紧随其后同一轮扫描)
|
|
135
|
+
const flows = ctx.registry.list();
|
|
87
136
|
return {
|
|
88
137
|
version,
|
|
89
138
|
skillVersion: `v${version}`,
|
|
@@ -95,15 +144,12 @@ export async function collectStatus(ctx) {
|
|
|
95
144
|
},
|
|
96
145
|
queue: queueState(),
|
|
97
146
|
lock: lockState(ctx),
|
|
98
|
-
flows:
|
|
147
|
+
flows: flows.map((f) => ({ id: f.id, name: f.name, version: f.version, inputs: f.inputs, origin: f.origin })),
|
|
99
148
|
flowWarnings: ctx.registry.warnings(),
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
url: ctx.config.platformUrl,
|
|
105
|
-
connected: await platformProbe(ctx),
|
|
106
|
-
},
|
|
149
|
+
sessionRotation: { ...rotation, detail: rotationDetail(rotation) },
|
|
150
|
+
runs: { recent: ctx.store.listRunIds().length },
|
|
151
|
+
// T034-2(S4):兜底率只读呈现(读旁路台账,0 兜底 → 0%)
|
|
152
|
+
fallbacks: fallbackRate(ctx),
|
|
107
153
|
};
|
|
108
154
|
}
|
|
109
155
|
/** 生成状态页 HTML(内嵌数据,只读;数据源 = collectStatus) */
|
|
@@ -111,7 +157,6 @@ export async function renderStatusHtml(ctx) {
|
|
|
111
157
|
const s = await collectStatus(ctx);
|
|
112
158
|
const runs = recentRuns(ctx, 10);
|
|
113
159
|
const browser = s.browser;
|
|
114
|
-
const ledger = s.ledger;
|
|
115
160
|
const rows = runs
|
|
116
161
|
.map((r) => `<tr><td>${esc(r.runId)}</td><td>${esc(r.flowId)}</td><td class="st-${esc(r.status)}">${esc(r.status)}</td><td>${esc(r.startedAt)}</td><td>${esc(r.error ?? '')}</td></tr>`)
|
|
117
162
|
.join('\n');
|
|
@@ -119,48 +164,54 @@ export async function renderStatusHtml(ctx) {
|
|
|
119
164
|
? `<div class="card" style="color:#b35900"><strong>流程加载警告</strong>(${s.flowWarnings.length})<ul>${s.flowWarnings.map((w) => `<li>${esc(w)}</li>`).join('')}</ul></div>`
|
|
120
165
|
: '';
|
|
121
166
|
const flowItems = s.flows
|
|
122
|
-
.map((f) => `<li>${esc(f.id)}(v${f.version}): ${esc(f.name)}</
|
|
167
|
+
.map((f) => `<li>${esc(f.id)}(v${f.version}): ${esc(f.name)} <span style="color:#888">[来源: ${esc(f.origin)}]</span>${f.origin === 'builtin-modified'
|
|
168
|
+
? ' <span style="color:#b35900">⚠️ 与内置基线不一致(本地已改动)</span>'
|
|
169
|
+
: ''}</li>`)
|
|
123
170
|
.join('\n');
|
|
124
|
-
return `<!DOCTYPE html>
|
|
125
|
-
<html lang="zh">
|
|
126
|
-
<head>
|
|
127
|
-
<meta charset="utf-8">
|
|
128
|
-
<title>flow-rpa 状态页</title>
|
|
129
|
-
<style>
|
|
130
|
-
body { font-family: system-ui, sans-serif; margin: 2rem; color: #222; }
|
|
131
|
-
h1 { border-bottom: 2px solid #eee; padding-bottom: .5rem; }
|
|
132
|
-
.card { border: 1px solid #ddd; border-radius: 8px; padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
|
|
133
|
-
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
|
|
134
|
-
th, td { border: 1px solid #eee; padding: .4rem .6rem; text-align: left; }
|
|
135
|
-
.st-done { color: #1a7f37; } .st-failed { color: #cf222e; } .st-running { color: #9a6700; }
|
|
136
|
-
ul { margin: 0; padding-left: 1.2rem; }
|
|
137
|
-
.badge-up { color: #1a7f37; font-weight: bold; } .badge-down { color: #cf222e; font-weight: bold; }
|
|
138
|
-
</style>
|
|
139
|
-
</head>
|
|
140
|
-
<body>
|
|
141
|
-
<h1>flow-rpa 状态</h1>
|
|
142
|
-
<div class="card">
|
|
143
|
-
<strong>浏览器</strong>:<span class="${browser.connected ? 'badge-up' : 'badge-down'}">${browser.connected ? '运行中' : '未连接'}</span>
|
|
144
|
-
<span style="color:#888">(端口 ${browser.port})</span>
|
|
145
|
-
|
|
146
|
-
</div>
|
|
147
|
-
<div class="card">
|
|
148
|
-
<strong
|
|
149
|
-
<
|
|
150
|
-
</div>
|
|
151
|
-
|
|
152
|
-
<
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
<
|
|
160
|
-
|
|
161
|
-
</
|
|
162
|
-
</
|
|
163
|
-
|
|
171
|
+
return `<!DOCTYPE html>
|
|
172
|
+
<html lang="zh">
|
|
173
|
+
<head>
|
|
174
|
+
<meta charset="utf-8">
|
|
175
|
+
<title>flow-rpa 状态页</title>
|
|
176
|
+
<style>
|
|
177
|
+
body { font-family: system-ui, sans-serif; margin: 2rem; color: #222; }
|
|
178
|
+
h1 { border-bottom: 2px solid #eee; padding-bottom: .5rem; }
|
|
179
|
+
.card { border: 1px solid #ddd; border-radius: 8px; padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
|
|
180
|
+
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
|
|
181
|
+
th, td { border: 1px solid #eee; padding: .4rem .6rem; text-align: left; }
|
|
182
|
+
.st-done { color: #1a7f37; } .st-failed { color: #cf222e; } .st-running { color: #9a6700; }
|
|
183
|
+
ul { margin: 0; padding-left: 1.2rem; }
|
|
184
|
+
.badge-up { color: #1a7f37; font-weight: bold; } .badge-down { color: #cf222e; font-weight: bold; }
|
|
185
|
+
</style>
|
|
186
|
+
</head>
|
|
187
|
+
<body>
|
|
188
|
+
<h1>flow-rpa 状态</h1>
|
|
189
|
+
<div class="card">
|
|
190
|
+
<strong>浏览器</strong>:<span class="${browser.connected ? 'badge-up' : 'badge-down'}">${browser.connected ? '运行中' : '未连接'}</span>
|
|
191
|
+
<span style="color:#888">(端口 ${browser.port})</span>
|
|
192
|
+
<div style="margin-top:.4rem"><strong>会话轮换</strong>:<span class="${s.sessionRotation.enabled ? 'badge-up' : 'badge-down'}">${s.sessionRotation.enabled ? '已启用' : '未启用'}</span> <span style="color:#888">${esc(s.sessionRotation.detail)}</span></div>
|
|
193
|
+
</div>
|
|
194
|
+
<div class="card">
|
|
195
|
+
<strong>兜底率</strong>:<span class="${s.fallbacks.rate === 0 ? 'badge-up' : 'badge-down'}">${(s.fallbacks.rate * 100).toFixed(0)}%</span>
|
|
196
|
+
<span style="color:#888">${esc(s.fallbacks.detail)}</span>
|
|
197
|
+
</div>
|
|
198
|
+
<div class="card">
|
|
199
|
+
<strong>流程列表</strong>(${s.flows.length})
|
|
200
|
+
<ul>${flowItems || '<li>(无流程)</li>'}</ul>
|
|
201
|
+
</div>
|
|
202
|
+
${warnBlock}
|
|
203
|
+
<div class="card">
|
|
204
|
+
<strong>最近运行</strong>(${runs.length})
|
|
205
|
+
<table>
|
|
206
|
+
<tr><th>runId</th><th>flowId</th><th>status</th><th>startedAt</th><th>error</th></tr>
|
|
207
|
+
${rows || '<tr><td colspan="5">(无运行记录)</td></tr>'}
|
|
208
|
+
</table>
|
|
209
|
+
</div>
|
|
210
|
+
<div class="card" style="color:#888;font-size:.8rem">
|
|
211
|
+
只读状态页:无编辑/执行/管理动作。数据来源 data/(runs/、flows/)。
|
|
212
|
+
</div>
|
|
213
|
+
</body>
|
|
214
|
+
</html>
|
|
164
215
|
`;
|
|
165
216
|
}
|
|
166
217
|
//# sourceMappingURL=status.js.map
|
package/dist/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qing3a/flow-rpa-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"engines": { "node": ">=20" },
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "flow-rpa 应用壳(原 app crate):MCP server + CLI",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"typecheck": "tsc --noEmit"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@qing3a/flow-rpa-engine": "^0.
|
|
29
|
+
"@qing3a/flow-rpa-engine": "^0.7.0",
|
|
30
30
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
31
31
|
"zod": "^4.4.3"
|
|
32
32
|
}
|