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/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 = { proc, port, wsUrl: page.webSocketDebuggerUrl, browserWs, send, onEvent: (cb) => listeners.push(cb), close };
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 send('Emulation.setDeviceMetricsOverride', {
190
- width: DEFAULT_VW, height: DEFAULT_VH, deviceScaleFactor: 1, mobile: false,
191
- }).catch(() => { });
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) => { session = s; return 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(截图)/ wait(等待元素出现)/ back(后退)/ eval(执行 JS)/ close(关掉浏览器)',
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 evalJs(s, '({ title: document.title, url: location.href })');
447
- return { ok: true, result: { ...info, note: `页面已打开。接下来用 click/type/scroll 操作它,用 text 或 screenshot 看结果。${localNote}` } };
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
- // 用真实鼠标事件(而不是 el.click()):canvas / 拖拽 / 依赖事件坐标的组件只认真实输入
473
- const common = { x: Math.round(box.x), y: Math.round(box.y), button: 'left', clickCount: 1 };
474
- await s.send('Input.dispatchMouseEvent', { type: 'mouseMoved', ...common });
475
- await s.send('Input.dispatchMouseEvent', { type: 'mousePressed', ...common });
476
- await s.send('Input.dispatchMouseEvent', { type: 'mouseReleased', ...common });
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 evalJs(s, '({ title: document.title, url: location.href })');
479
- return { ok: true, result: { clicked: box.tag, at: { x: Math.round(box.x), y: Math.round(box.y) }, ...after } };
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
- return { ok: true, result: { pressed: key, url: await evalJs(s, 'location.href') } };
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: DEFAULT_VW / 2, y: DEFAULT_VH / 2, deltaX: 0, deltaY,
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
- const pos = await evalJs(s, '({ y: Math.round(window.scrollY), max: Math.round(document.documentElement.scrollHeight - window.innerHeight) })');
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
- return { ok: true, result: { url: await evalJs(s, 'location.href') } };
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
- note: '这是当前页面的截图(同一浏览器会话),据此判断渲染结果。',
850
+ viewport: vpInfo,
851
+ note: `这是当前页面的截图${vpNote}(同一浏览器会话),据此判断渲染结果。`,
598
852
  },
599
853
  };
600
854
  }
@@ -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,CAsfvD"}
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)