ysagc-agent 0.9.13 → 0.9.15
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/agent.d.ts +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +39 -1
- package/dist/agent.js.map +1 -1
- package/dist/browser.d.ts +69 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +276 -22
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +47 -0
- package/dist/cli.js.map +1 -1
- package/dist/executor.d.ts +14 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +25 -0
- package/dist/executor.js.map +1 -1
- package/dist/protocol.d.ts +48 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +69 -9
- package/dist/security.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +23 -6
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -33,6 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.DEVICE_PRESETS = void 0;
|
|
37
|
+
exports.resolveViewport = resolveViewport;
|
|
38
|
+
exports.setBrowserLiveSink = setBrowserLiveSink;
|
|
36
39
|
exports.disposeBrowser = disposeBrowser;
|
|
37
40
|
exports.closeStaticServer = closeStaticServer;
|
|
38
41
|
exports.localFileToHttp = localFileToHttp;
|
|
@@ -66,6 +69,77 @@ const DEFAULT_VW = 1440;
|
|
|
66
69
|
const DEFAULT_VH = 900;
|
|
67
70
|
/** 取文本的上限:整页 innerText 可能几十万字,别一股脑塞进上下文 */
|
|
68
71
|
const MAX_TEXT_CHARS = Math.max(2000, Number(process.env.YSAGC_BROWSER_MAX_TEXT || 12000));
|
|
72
|
+
/**
|
|
73
|
+
* 实时画面(CDP screencast)的推流参数。
|
|
74
|
+
*
|
|
75
|
+
* 帧是**按变化推送**的(页面不动就不产生帧),但滚动/动画期间会很密,
|
|
76
|
+
* 所以再加一道时间节流:默认最快 4 帧/秒、质量 50、最长边 1024。
|
|
77
|
+
* 这个组合在「看得清」和「不把用户上行带宽吃满」之间取的中间值 ——
|
|
78
|
+
* 帧是 base64 后经 Agent → 平台 → 浏览器三段转发,单帧必须小。
|
|
79
|
+
*/
|
|
80
|
+
const SCREENCAST_INTERVAL_MS = Math.max(60, Number(process.env.YSAGC_SCREENCAST_INTERVAL_MS || 250));
|
|
81
|
+
const SCREENCAST_QUALITY = Math.max(20, Math.min(90, Number(process.env.YSAGC_SCREENCAST_QUALITY || 50)));
|
|
82
|
+
const SCREENCAST_MAX_EDGE = Math.max(320, Number(process.env.YSAGC_SCREENCAST_MAX_EDGE || 1024));
|
|
83
|
+
const UA_DESKTOP = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36';
|
|
84
|
+
const UA_IOS = 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1';
|
|
85
|
+
const UA_ANDROID = 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Mobile Safari/537.36';
|
|
86
|
+
const UA_IPAD = 'Mozilla/5.0 (iPad; CPU OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1';
|
|
87
|
+
/**
|
|
88
|
+
* 设备预设。
|
|
89
|
+
* 测移动端页面不能只是「把窗口改窄」:真正影响渲染的是 UA(服务端按 UA 出不同模板)
|
|
90
|
+
* 和 devicePixelRatio(图片/图标按 DPR 取不同尺寸),所以三者一起模拟。
|
|
91
|
+
*/
|
|
92
|
+
exports.DEVICE_PRESETS = {
|
|
93
|
+
desktop: { mode: 'desktop', width: DEFAULT_VW, height: DEFAULT_VH, dsf: 1, mobile: false, touch: false, ua: UA_DESKTOP },
|
|
94
|
+
// iPhone 14/15 的逻辑分辨率
|
|
95
|
+
mobile: { mode: 'mobile', width: 390, height: 844, dsf: 3, mobile: true, touch: true, ua: UA_IOS },
|
|
96
|
+
// 安卓常见尺寸(Pixel 8)
|
|
97
|
+
android: { mode: 'android', width: 412, height: 915, dsf: 2.625, mobile: true, touch: true, ua: UA_ANDROID },
|
|
98
|
+
tablet: { mode: 'tablet', width: 820, height: 1180, dsf: 2, mobile: true, touch: true, ua: UA_IPAD },
|
|
99
|
+
};
|
|
100
|
+
/** 把「预设名 / 显式宽高」解析成一个完整视口描述;无法识别时回退桌面 */
|
|
101
|
+
function resolveViewport(args, base) {
|
|
102
|
+
const cur = base || exports.DEVICE_PRESETS.desktop;
|
|
103
|
+
const key = String(args.device || '').trim().toLowerCase();
|
|
104
|
+
let vp = key && exports.DEVICE_PRESETS[key] ? { ...exports.DEVICE_PRESETS[key] } : { ...cur };
|
|
105
|
+
if (!key && args.mobile === true && !cur.mobile)
|
|
106
|
+
vp = { ...exports.DEVICE_PRESETS.mobile };
|
|
107
|
+
if (!key && args.mobile === false && cur.mobile)
|
|
108
|
+
vp = { ...exports.DEVICE_PRESETS.desktop };
|
|
109
|
+
const w = Number(args.width);
|
|
110
|
+
const h = Number(args.height);
|
|
111
|
+
const s = Number(args.scale);
|
|
112
|
+
if (Number.isFinite(w) && w >= 200 && w <= 4096) {
|
|
113
|
+
vp.width = Math.round(w);
|
|
114
|
+
vp.mode = key || 'custom';
|
|
115
|
+
}
|
|
116
|
+
if (Number.isFinite(h) && h >= 200 && h <= 4096) {
|
|
117
|
+
vp.height = Math.round(h);
|
|
118
|
+
vp.mode = key || 'custom';
|
|
119
|
+
}
|
|
120
|
+
if (Number.isFinite(s) && s >= 0.5 && s <= 4)
|
|
121
|
+
vp.dsf = s;
|
|
122
|
+
if (typeof args.userAgent === 'string' && args.userAgent.trim()) {
|
|
123
|
+
vp.ua = args.userAgent.trim();
|
|
124
|
+
vp.mode = key || 'custom';
|
|
125
|
+
}
|
|
126
|
+
return vp;
|
|
127
|
+
}
|
|
128
|
+
let liveSink = null;
|
|
129
|
+
/**
|
|
130
|
+
* 设置/清空实时画面消费端。
|
|
131
|
+
* 平台侧「面板打开」时注入,面板关闭时清空 —— 没有观众就不推流,
|
|
132
|
+
* 否则每次浏览器操作都会白白上传几 MB 的 JPEG 到平台再转发给没人看的页面。
|
|
133
|
+
*/
|
|
134
|
+
function setBrowserLiveSink(sink) {
|
|
135
|
+
liveSink = sink;
|
|
136
|
+
if (!session)
|
|
137
|
+
return;
|
|
138
|
+
if (sink)
|
|
139
|
+
void startScreencast(session);
|
|
140
|
+
else
|
|
141
|
+
void stopScreencast(session);
|
|
142
|
+
}
|
|
69
143
|
let session = null;
|
|
70
144
|
let starting = null;
|
|
71
145
|
function sleep(ms) { return new Promise((r) => setTimeout(r, ms)); }
|
|
@@ -183,14 +257,97 @@ async function launch() {
|
|
|
183
257
|
}
|
|
184
258
|
catch { /* ignore */ }
|
|
185
259
|
};
|
|
186
|
-
const s = {
|
|
260
|
+
const s = {
|
|
261
|
+
proc, port, wsUrl: page.webSocketDebuggerUrl, browserWs, send,
|
|
262
|
+
onEvent: (cb) => listeners.push(cb), close,
|
|
263
|
+
viewport: { ...exports.DEVICE_PRESETS.desktop }, url: '', title: '',
|
|
264
|
+
};
|
|
187
265
|
await send('Page.enable');
|
|
188
266
|
await send('Runtime.enable');
|
|
189
|
-
await
|
|
190
|
-
|
|
191
|
-
|
|
267
|
+
await applyViewport(s, s.viewport).catch(() => { });
|
|
268
|
+
// 实时画面:帧到达就 ack + 转发给消费端。
|
|
269
|
+
// ack 必须对**每一帧**都发(包括被节流丢掉的),否则 CDP 会认为消费端卡住而停推。
|
|
270
|
+
let lastFrameAt = 0;
|
|
271
|
+
s.onEvent((method, params) => {
|
|
272
|
+
if (method !== 'Page.screencastFrame')
|
|
273
|
+
return;
|
|
274
|
+
void send('Page.screencastFrameAck', { sessionId: params?.sessionId }).catch(() => { });
|
|
275
|
+
const sink = liveSink;
|
|
276
|
+
if (!sink)
|
|
277
|
+
return;
|
|
278
|
+
const now = Date.now();
|
|
279
|
+
if (now - lastFrameAt < SCREENCAST_INTERVAL_MS)
|
|
280
|
+
return;
|
|
281
|
+
lastFrameAt = now;
|
|
282
|
+
const meta = params?.metadata || {};
|
|
283
|
+
try {
|
|
284
|
+
sink.frame({
|
|
285
|
+
data: String(params?.data || ''),
|
|
286
|
+
format: 'jpeg',
|
|
287
|
+
// 报**CSS 视口尺寸**而不是图片像素尺寸:移动端模拟下图片是 866×1922 这种
|
|
288
|
+
// devicePixel 尺寸(视口 412×915 × pageScaleFactor),直接显示给用户会莫名其妙 ——
|
|
289
|
+
// 用户关心的是「模拟的这台设备是多少 CSS 像素」。两者宽高比一致,面板缩放不受影响。
|
|
290
|
+
width: s.viewport.width || Math.round(Number(meta.deviceWidth) || 0),
|
|
291
|
+
height: s.viewport.height || Math.round(Number(meta.deviceHeight) || 0),
|
|
292
|
+
mode: s.viewport.mode,
|
|
293
|
+
url: s.url,
|
|
294
|
+
title: s.title,
|
|
295
|
+
ts: now,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
catch { /* 消费端异常不能影响浏览器会话 */ }
|
|
299
|
+
});
|
|
192
300
|
return s;
|
|
193
301
|
}
|
|
302
|
+
/** 把视口/设备模拟套到页面上(UA 与 DPR 一起改,移动端模板才会真的生效) */
|
|
303
|
+
async function applyViewport(s, vp) {
|
|
304
|
+
await s.send('Emulation.setDeviceMetricsOverride', {
|
|
305
|
+
width: vp.width,
|
|
306
|
+
height: vp.height,
|
|
307
|
+
deviceScaleFactor: vp.dsf,
|
|
308
|
+
mobile: vp.mobile,
|
|
309
|
+
screenWidth: vp.width,
|
|
310
|
+
screenHeight: vp.height,
|
|
311
|
+
}).catch(() => { });
|
|
312
|
+
await s.send('Emulation.setUserAgentOverride', { userAgent: vp.ua }).catch(() => { });
|
|
313
|
+
await s.send('Emulation.setTouchEmulationEnabled', vp.touch ? { enabled: true, maxTouchPoints: 5 } : { enabled: false })
|
|
314
|
+
.catch(() => { });
|
|
315
|
+
s.viewport = vp;
|
|
316
|
+
}
|
|
317
|
+
async function startScreencast(s) {
|
|
318
|
+
await s.send('Page.startScreencast', {
|
|
319
|
+
format: 'jpeg',
|
|
320
|
+
quality: SCREENCAST_QUALITY,
|
|
321
|
+
maxWidth: SCREENCAST_MAX_EDGE,
|
|
322
|
+
maxHeight: SCREENCAST_MAX_EDGE,
|
|
323
|
+
everyNthFrame: 1,
|
|
324
|
+
}).catch(() => { });
|
|
325
|
+
}
|
|
326
|
+
async function stopScreencast(s) {
|
|
327
|
+
await s.send('Page.stopScreencast').catch(() => { });
|
|
328
|
+
}
|
|
329
|
+
/** 刷新会话里记的页面身份(标题/地址),实时画面与状态消息都要用 */
|
|
330
|
+
async function refreshPageInfo(s) {
|
|
331
|
+
const info = await evalJs(s, '({ title: document.title, url: location.href })')
|
|
332
|
+
.catch(() => ({ title: s.title, url: s.url }));
|
|
333
|
+
s.title = String(info?.title || '');
|
|
334
|
+
s.url = String(info?.url || '');
|
|
335
|
+
return { title: s.title, url: s.url };
|
|
336
|
+
}
|
|
337
|
+
/** 把当前页面身份 + 视口推给面板(打开/换设备/关闭时各推一次) */
|
|
338
|
+
function pushState(s, extra = {}) {
|
|
339
|
+
const sink = liveSink;
|
|
340
|
+
if (!sink)
|
|
341
|
+
return;
|
|
342
|
+
try {
|
|
343
|
+
sink.state({
|
|
344
|
+
active: !!s,
|
|
345
|
+
...(s ? { mode: s.viewport.mode, width: s.viewport.width, height: s.viewport.height, url: s.url, title: s.title } : {}),
|
|
346
|
+
...extra,
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
catch { /* ignore */ }
|
|
350
|
+
}
|
|
194
351
|
async function getSession() {
|
|
195
352
|
if (session) {
|
|
196
353
|
// 进程还活着吗?死了就重建
|
|
@@ -200,7 +357,13 @@ async function getSession() {
|
|
|
200
357
|
}
|
|
201
358
|
if (!starting) {
|
|
202
359
|
starting = launch()
|
|
203
|
-
.then((s) => {
|
|
360
|
+
.then((s) => {
|
|
361
|
+
session = s;
|
|
362
|
+
// 会话是新建的:如果平台面板已经开着,立刻开始推流(否则要等下次开关面板才出画面)
|
|
363
|
+
if (liveSink)
|
|
364
|
+
void startScreencast(s);
|
|
365
|
+
return s;
|
|
366
|
+
})
|
|
204
367
|
.finally(() => { starting = null; });
|
|
205
368
|
}
|
|
206
369
|
return starting;
|
|
@@ -234,6 +397,8 @@ function disposeBrowser() {
|
|
|
234
397
|
idleTimer = null;
|
|
235
398
|
}
|
|
236
399
|
if (session) {
|
|
400
|
+
// 先告诉面板「浏览器没了」,否则它会一直停在最后一帧上,看起来像卡住了
|
|
401
|
+
pushState(null, { reason: 'closed' });
|
|
237
402
|
session.close();
|
|
238
403
|
session = null;
|
|
239
404
|
}
|
|
@@ -383,6 +548,30 @@ async function waitSettled(s, extraMs = 600) {
|
|
|
383
548
|
}
|
|
384
549
|
await sleep(extraMs);
|
|
385
550
|
}
|
|
551
|
+
/** 一次触摸点击(移动端视口下的 click) */
|
|
552
|
+
async function tapAt(s, x, y) {
|
|
553
|
+
const point = { x, y, radiusX: 12, radiusY: 12, force: 1, id: 1 };
|
|
554
|
+
await s.send('Input.dispatchTouchEvent', { type: 'touchStart', touchPoints: [point] }).catch(() => { });
|
|
555
|
+
await sleep(60);
|
|
556
|
+
await s.send('Input.dispatchTouchEvent', { type: 'touchEnd', touchPoints: [] }).catch(() => { });
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* 一次触摸滑动(移动端视口下的 scroll)。
|
|
560
|
+
* deltaY > 0 表示「看下面的内容」→ 手指往上滑,所以位移取负。
|
|
561
|
+
* 分几步移动是为了让页面上的惯性滚动 / touchmove 监听真的被触发。
|
|
562
|
+
*/
|
|
563
|
+
async function swipeAt(s, x, y, deltaY) {
|
|
564
|
+
const steps = 6;
|
|
565
|
+
const stepY = Math.round(-deltaY / steps);
|
|
566
|
+
let cy = y;
|
|
567
|
+
await s.send('Input.dispatchTouchEvent', { type: 'touchStart', touchPoints: [{ x, y: cy, radiusX: 12, radiusY: 12, force: 1, id: 1 }] }).catch(() => { });
|
|
568
|
+
for (let i = 0; i < steps; i += 1) {
|
|
569
|
+
cy += stepY;
|
|
570
|
+
await s.send('Input.dispatchTouchEvent', { type: 'touchMove', touchPoints: [{ x, y: cy, radiusX: 12, radiusY: 12, force: 1, id: 1 }] }).catch(() => { });
|
|
571
|
+
await sleep(16);
|
|
572
|
+
}
|
|
573
|
+
await s.send('Input.dispatchTouchEvent', { type: 'touchEnd', touchPoints: [] }).catch(() => { });
|
|
574
|
+
}
|
|
386
575
|
/** 把「选择器 / 可见文字」统一解析成一个元素引用(返回可执行表达式用的查找代码) */
|
|
387
576
|
function finderExpr(selector, text) {
|
|
388
577
|
const sel = JSON.stringify(String(selector || ''));
|
|
@@ -413,7 +602,8 @@ async function browserTool(ctx, args) {
|
|
|
413
602
|
return {
|
|
414
603
|
ok: false,
|
|
415
604
|
error: '缺少 action。可用:open(打开网址)/ click(点击)/ type(输入)/ press(按键)/ scroll(滚动)'
|
|
416
|
-
+ '/ text(取页面文本)/ html(取某元素 HTML)/ screenshot(截图)/
|
|
605
|
+
+ '/ text(取页面文本)/ html(取某元素 HTML)/ screenshot(截图)/ viewport(切换 PC/手机视口)'
|
|
606
|
+
+ '/ wait(等待元素出现)/ back(后退)/ eval(执行 JS)/ close(关掉浏览器)',
|
|
417
607
|
};
|
|
418
608
|
}
|
|
419
609
|
try {
|
|
@@ -424,7 +614,29 @@ async function browserTool(ctx, args) {
|
|
|
424
614
|
// 每次浏览器操作都续一次空闲计时:任务在跑就别回收,任务结束几分钟后自动收掉
|
|
425
615
|
touchBrowserIdleTimer();
|
|
426
616
|
const s = await getSession();
|
|
427
|
-
if (action === 'open') {
|
|
617
|
+
if (action === 'open' || action === 'viewport') {
|
|
618
|
+
// 视口先于导航生效:UA 决定服务端吐哪套模板,导航之后再改就得重载一次
|
|
619
|
+
const vp = resolveViewport(args, s.viewport);
|
|
620
|
+
await applyViewport(s, vp);
|
|
621
|
+
if (action === 'viewport') {
|
|
622
|
+
if (args.reload === true) {
|
|
623
|
+
await s.send('Page.reload', {}, NAV_TIMEOUT_MS).catch(() => { });
|
|
624
|
+
await waitSettled(s);
|
|
625
|
+
}
|
|
626
|
+
const info = await refreshPageInfo(s);
|
|
627
|
+
pushState(s);
|
|
628
|
+
return {
|
|
629
|
+
ok: true,
|
|
630
|
+
result: {
|
|
631
|
+
...info,
|
|
632
|
+
viewport: { mode: vp.mode, width: vp.width, height: vp.height, mobile: vp.mobile },
|
|
633
|
+
note: vp.mobile
|
|
634
|
+
? `已切到${vp.mode === 'tablet' ? '平板' : '手机'}视口 ${vp.width}×${vp.height}(UA 与触摸事件也已按移动端模拟)。`
|
|
635
|
+
+ (args.reload === true ? '页面已重新加载。' : '页面已按新视口重排;若站点按 UA 出模板,可加 reload:true 重新加载。')
|
|
636
|
+
: `已切回桌面视口 ${vp.width}×${vp.height}。`,
|
|
637
|
+
},
|
|
638
|
+
};
|
|
639
|
+
}
|
|
428
640
|
const raw = String(args.url || '').trim();
|
|
429
641
|
let url = raw;
|
|
430
642
|
let localNote = '';
|
|
@@ -443,8 +655,19 @@ async function browserTool(ctx, args) {
|
|
|
443
655
|
}
|
|
444
656
|
await s.send('Page.navigate', { url }, NAV_TIMEOUT_MS);
|
|
445
657
|
await waitSettled(s);
|
|
446
|
-
const info = await
|
|
447
|
-
|
|
658
|
+
const info = await refreshPageInfo(s);
|
|
659
|
+
pushState(s);
|
|
660
|
+
return {
|
|
661
|
+
ok: true,
|
|
662
|
+
result: {
|
|
663
|
+
...info,
|
|
664
|
+
viewport: { mode: vp.mode, width: vp.width, height: vp.height, mobile: vp.mobile },
|
|
665
|
+
note: `页面已打开(${vp.mobile ? `${vp.mode} 移动端视口 ${vp.width}×${vp.height}` : `桌面视口 ${vp.width}×${vp.height}`})。`
|
|
666
|
+
+ '接下来用 click/type/scroll 操作它,用 text 或 screenshot 看结果。'
|
|
667
|
+
+ '要测手机端效果就先 open 时带 device:"mobile"(或 android/tablet),'
|
|
668
|
+
+ '已经开着页面则用 action:"viewport" 切换。' + localNote,
|
|
669
|
+
},
|
|
670
|
+
};
|
|
448
671
|
}
|
|
449
672
|
if (action === 'wait') {
|
|
450
673
|
const deadline = Date.now() + Math.min(Number(args.timeoutMs) || 10000, 60000);
|
|
@@ -469,14 +692,24 @@ async function browserTool(ctx, args) {
|
|
|
469
692
|
if (!box) {
|
|
470
693
|
return { ok: false, error: `没找到要点的元素:${args.selector ? `选择器 ${args.selector}` : `文字「${args.text}」`}(可能还没渲染出来,可以先用 action=wait 等它出现)` };
|
|
471
694
|
}
|
|
472
|
-
//
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
695
|
+
// 用真实输入事件(而不是 el.click()):canvas / 拖拽 / 依赖事件坐标的组件只认真实输入。
|
|
696
|
+
// 移动端视口下必须发触摸事件 —— 很多移动页面只监听 touchstart,
|
|
697
|
+
// 只发鼠标事件会「点了没反应」,这是移动端测试最容易踩的坑。
|
|
698
|
+
const px = Math.round(box.x);
|
|
699
|
+
const py = Math.round(box.y);
|
|
700
|
+
if (s.viewport.touch) {
|
|
701
|
+
await tapAt(s, px, py);
|
|
702
|
+
}
|
|
703
|
+
else {
|
|
704
|
+
const common = { x: px, y: py, button: 'left', clickCount: 1 };
|
|
705
|
+
await s.send('Input.dispatchMouseEvent', { type: 'mouseMoved', ...common });
|
|
706
|
+
await s.send('Input.dispatchMouseEvent', { type: 'mousePressed', ...common });
|
|
707
|
+
await s.send('Input.dispatchMouseEvent', { type: 'mouseReleased', ...common });
|
|
708
|
+
}
|
|
477
709
|
await sleep(Math.max(200, Number(args.timeoutMs) || 500));
|
|
478
|
-
const after = await
|
|
479
|
-
|
|
710
|
+
const after = await refreshPageInfo(s);
|
|
711
|
+
pushState(s);
|
|
712
|
+
return { ok: true, result: { clicked: box.tag, at: { x: px, y: py }, ...after } };
|
|
480
713
|
}
|
|
481
714
|
if (action === 'type') {
|
|
482
715
|
const value = String(args.value ?? args.text ?? '');
|
|
@@ -514,21 +747,37 @@ async function browserTool(ctx, args) {
|
|
|
514
747
|
await s.send('Input.dispatchKeyEvent', { type: 'keyDown', ...k });
|
|
515
748
|
await s.send('Input.dispatchKeyEvent', { type: 'keyUp', ...k });
|
|
516
749
|
await sleep(Math.max(200, Number(args.timeoutMs) || 600));
|
|
517
|
-
|
|
750
|
+
const info = await refreshPageInfo(s);
|
|
751
|
+
pushState(s);
|
|
752
|
+
return { ok: true, result: { pressed: key, ...info } };
|
|
518
753
|
}
|
|
519
754
|
if (action === 'scroll') {
|
|
520
755
|
const deltaY = Number(args.deltaY ?? 600);
|
|
756
|
+
const before = await evalJs(s, 'Math.round(window.scrollY)').catch(() => 0);
|
|
521
757
|
if (args.selector) {
|
|
522
758
|
const expr = finderExpr(String(args.selector));
|
|
523
759
|
await evalJs(s, `(() => { const el = ${expr}; if (el) el.scrollIntoView({ block: 'center' }); })()`);
|
|
524
760
|
}
|
|
761
|
+
else if (s.viewport.touch) {
|
|
762
|
+
// 移动端:真手指滑动。滚轮事件在触摸模拟下不一定被页面处理,
|
|
763
|
+
// 而「上滑看下面」正是用户在这个视口里唯一会做的动作。
|
|
764
|
+
await swipeAt(s, Math.round(s.viewport.width / 2), Math.round(s.viewport.height * 0.7), deltaY);
|
|
765
|
+
}
|
|
525
766
|
else {
|
|
526
767
|
await s.send('Input.dispatchMouseEvent', {
|
|
527
|
-
type: 'mouseWheel', x:
|
|
768
|
+
type: 'mouseWheel', x: s.viewport.width / 2, y: s.viewport.height / 2, deltaX: 0, deltaY,
|
|
528
769
|
});
|
|
529
770
|
}
|
|
530
771
|
await sleep(400);
|
|
531
|
-
|
|
772
|
+
let pos = await evalJs(s, '({ y: Math.round(window.scrollY), max: Math.round(document.documentElement.scrollHeight - window.innerHeight) })');
|
|
773
|
+
// 滑动没生效(页面用了自定义滚动容器 / 惯性被拦)时兜一层脚本滚动,
|
|
774
|
+
// 让「往下看」这件事不至于因为输入模拟差异而彻底失败。
|
|
775
|
+
if (!args.selector && deltaY && Math.abs(pos.y - before) < 2) {
|
|
776
|
+
await evalJs(s, `window.scrollBy(0, ${Math.round(deltaY)})`).catch(() => { });
|
|
777
|
+
await sleep(200);
|
|
778
|
+
pos = await evalJs(s, '({ y: Math.round(window.scrollY), max: Math.round(document.documentElement.scrollHeight - window.innerHeight) })');
|
|
779
|
+
}
|
|
780
|
+
pushState(s);
|
|
532
781
|
return { ok: true, result: { scrolledTo: pos.y, maxScroll: pos.max, atBottom: pos.y >= pos.max - 2 } };
|
|
533
782
|
}
|
|
534
783
|
if (action === 'text') {
|
|
@@ -566,7 +815,9 @@ async function browserTool(ctx, args) {
|
|
|
566
815
|
if (action === 'back') {
|
|
567
816
|
await evalJs(s, 'history.back()');
|
|
568
817
|
await waitSettled(s);
|
|
569
|
-
|
|
818
|
+
const info = await refreshPageInfo(s);
|
|
819
|
+
pushState(s);
|
|
820
|
+
return { ok: true, result: info };
|
|
570
821
|
}
|
|
571
822
|
if (action === 'screenshot') {
|
|
572
823
|
const full = args.full_page === true;
|
|
@@ -586,15 +837,18 @@ async function browserTool(ctx, args) {
|
|
|
586
837
|
await node_fs_1.promises.writeFile(abs, buf);
|
|
587
838
|
const MAX = 1200000;
|
|
588
839
|
const relOut = path.relative(ctx.root, abs).split(path.sep).join('/');
|
|
840
|
+
const vpInfo = { mode: s.viewport.mode, width: s.viewport.width, height: s.viewport.height, mobile: s.viewport.mobile };
|
|
841
|
+
const vpNote = vpInfo.mobile ? `(当前是${vpInfo.mode}移动端视口 ${vpInfo.width}×${vpInfo.height})` : `(当前是桌面视口 ${vpInfo.width}×${vpInfo.height})`;
|
|
589
842
|
if (buf.length > MAX) {
|
|
590
|
-
return { ok: true, result: { path: relOut, bytes: buf.length, too_large: true, note: `截图已存到 ${relOut},但体积超过回传上限,本次没把图片给模型看。可改用 action=text 取文本,或缩小视口。` } };
|
|
843
|
+
return { ok: true, result: { path: relOut, bytes: buf.length, viewport: vpInfo, too_large: true, note: `截图已存到 ${relOut},但体积超过回传上限,本次没把图片给模型看。可改用 action=text 取文本,或缩小视口。` } };
|
|
591
844
|
}
|
|
592
845
|
return {
|
|
593
846
|
ok: true,
|
|
594
847
|
result: {
|
|
595
848
|
path: relOut, bytes: buf.length, mime: 'image/jpeg',
|
|
596
849
|
image_base64: buf.toString('base64'),
|
|
597
|
-
|
|
850
|
+
viewport: vpInfo,
|
|
851
|
+
note: `这是当前页面的截图${vpNote}(同一浏览器会话),据此判断渲染结果。`,
|
|
598
852
|
},
|
|
599
853
|
};
|
|
600
854
|
}
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA4BA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8XD;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA4BA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8XD;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyiBvD"}
|
package/dist/cli.js
CHANGED
|
@@ -489,6 +489,25 @@ async function runSelfTest() {
|
|
|
489
489
|
const masked = (0, security_1.maskSecrets)('Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.sig');
|
|
490
490
|
return !masked.includes('eyJhbGci') && masked.includes('***');
|
|
491
491
|
});
|
|
492
|
+
// 普通源码/散文不能被当成密钥值:模型读到被改坏的源码就没法照着改,
|
|
493
|
+
// 而且平台侧会把「含脱敏内容」的文件标成不可一键还原。
|
|
494
|
+
sync('maskSecrets leaves ordinary source and prose alone', () => {
|
|
495
|
+
const samples = [
|
|
496
|
+
'// 只存 token 数字,不存任何内容',
|
|
497
|
+
"import { auth } from '../../middleware/auth';",
|
|
498
|
+
'/** 改 user_id 并保存其连接 token 以便下次重连认证。 */',
|
|
499
|
+
'session: req.session',
|
|
500
|
+
'password: process.env.DB_PASSWORD',
|
|
501
|
+
'secret: WX_MOBILE_APPSECRET',
|
|
502
|
+
'const token = String(req.headers.authorization).replace(/^Bearer /i, "");',
|
|
503
|
+
];
|
|
504
|
+
return samples.every((s) => (0, security_1.maskSecrets)(s) === s);
|
|
505
|
+
});
|
|
506
|
+
sync('maskSecrets still redacts literal key=value credentials', () => {
|
|
507
|
+
const masked = (0, security_1.maskSecrets)('password=Lzh102600@\napi_key: "a1b2c3d4e5f6g7h8"');
|
|
508
|
+
return !masked.includes('Lzh102600@') && !masked.includes('a1b2c3d4e5f6g7h8')
|
|
509
|
+
&& masked.includes('password=***') && masked.includes('api_key: "***"');
|
|
510
|
+
});
|
|
492
511
|
// --- config loading / onboarding path ----------------------------------
|
|
493
512
|
sync('normalizeServerUrl: http -> ws', () => (0, config_1.normalizeServerUrl)('http://example.com/agent') === 'ws://example.com/agent');
|
|
494
513
|
sync('normalizeServerUrl: https -> wss', () => (0, config_1.normalizeServerUrl)('https://example.com/agent') === 'wss://example.com/agent');
|
|
@@ -768,6 +787,34 @@ async function runSelfTest() {
|
|
|
768
787
|
const res = r.result;
|
|
769
788
|
return r.ok && res.content === '3456' && res.bytesRead === 4 && res.truncated === true;
|
|
770
789
|
});
|
|
790
|
+
// 窗口切在多字节字符中间时必须仍然按文本返回。返回 hex 等于给模型一整屏十六进制,
|
|
791
|
+
// 这段代码它读不到,只会反复重读同一个文件。
|
|
792
|
+
await asyncCheck('read_file keeps UTF-8 text when the window cuts a CJK character', async () => {
|
|
793
|
+
fs.writeFileSync(path.join(dir, 'cjk.txt'), 'aaa中中中bbb', 'utf8'); // 中 = 3 字节,offset 4 落在字符中间
|
|
794
|
+
const r = await registry.dispatch('read_file', { path: 'cjk.txt', offset: 4, length: 6 });
|
|
795
|
+
const res = r.result;
|
|
796
|
+
return r.ok && res.encoding === 'utf8' && /^[\u4e00-\u9fa5a-z]+$/.test(String(res.content || ''));
|
|
797
|
+
});
|
|
798
|
+
// 真二进制仍然要报 hex,不能因为对齐字符边界就把二进制当文本硬解
|
|
799
|
+
await asyncCheck('read_file still reports genuine binary as hex', async () => {
|
|
800
|
+
fs.writeFileSync(path.join(dir, 'bin.dat'), Buffer.from([0x00, 0x01, 0xff, 0xfe, 0x80, 0x81, 0x00, 0x02]));
|
|
801
|
+
const r = await registry.dispatch('read_file', { path: 'bin.dat' });
|
|
802
|
+
return r.ok && r.result?.encoding === 'hex';
|
|
803
|
+
});
|
|
804
|
+
// 平台靠 masked 标记判断「改前快照能不能原样写回」:写回脱敏内容会把用户的密钥换成 ***。
|
|
805
|
+
// 标记必须准 —— 漏报会毁文件,误报会让用户失去一键还原。
|
|
806
|
+
await asyncCheck('read_file flags redacted content as masked', async () => {
|
|
807
|
+
fs.writeFileSync(path.join(dir, 'secret.txt'), 'password=a1b2c3d4e5f6g7h8\nplain text\n', 'utf8');
|
|
808
|
+
const r = await registry.dispatch('read_file', { path: 'secret.txt' });
|
|
809
|
+
const res = r.result;
|
|
810
|
+
return r.ok && res.masked === true && !String(res.content).includes('a1b2c3d4e5f6g7h8');
|
|
811
|
+
});
|
|
812
|
+
await asyncCheck('read_file reports masked=false for ordinary source', async () => {
|
|
813
|
+
fs.writeFileSync(path.join(dir, 'plain.txt'), 'const token = 42; // 只存 token 数字\n', 'utf8');
|
|
814
|
+
const r = await registry.dispatch('read_file', { path: 'plain.txt' });
|
|
815
|
+
const res = r.result;
|
|
816
|
+
return r.ok && res.masked === false && String(res.content).includes('只存 token 数字');
|
|
817
|
+
});
|
|
771
818
|
await asyncCheck('str_replace_editor create + str_replace', async () => {
|
|
772
819
|
const c = await registry.dispatch('str_replace_editor', { command: 'create', path: 'editor.txt', file_text: 'line1\nline2\nline3' });
|
|
773
820
|
if (!c.ok)
|