LLMSkillHub
mirroredCopied from taxueseek/argo under MIT. taxueseek has not claimed this page, and is not affiliated with LLM SkillHub.

taxueseek / js-run

js-run 是 argo 的 JS 运行时车道子技能:不开浏览器跑网页 JS。基于 mini-racer(ISC) + 自研浏览器环境垫片,让「环境探测 + 纯计算」型网页脚本(反爬挑战通行证、混淆数据 解算、JS 内嵌状态提取)在毫秒级、可复现、无真实网络的沙箱里执行。定位是取数链 curl_cffi 与渲染级之间的「算」车道,不替代浏览器(登录态/视觉/真实网络数据不在此车道)。 v0 为独立骨架,未接入主链。Triggers include 跑网页JS、挑战脚本、通行证、JS解密、 逻辑时间、无浏览器执行。

0
SKILL.md
2.7 KB

js-run(argo 子技能,v0 骨架)

一句话:给 HTML 与资源,还你 JS 算完的结果——不开浏览器。

它解决什么

网页 JS 依赖浏览器环境(navigator/document/crypto…)时,传统上只有两条路:
开真浏览器(秒级、百 MB、重)或放弃。js-run 把「浏览器环境的 JS 语义」做成库:
V8 执行 + 环境垫片,单次上下文 P50 ≈ 1ms,逻辑时间让 setTimeout(5000) 瞬间完成。

v0 明确不做什么

不做原因归属
DOM 解析/布局v0 面只保「探测+计算」型脚本后续按考卷生长
真实网络请求它一个字节都不取,取数归 HTTP 车道argo 前两级
登录态/指纹连续性合成环境无会话可继承ego-search
截图/视觉无布局引擎ego-browser

用法

import sys; sys.path.insert(0, "sub-skills/js-run/scripts")
from jsrun import JsRun

with JsRun() as jr:
    jr.run(open("challenge.js").read())     # 跑目标脚本
    jr.advance(3000)                         # 逻辑时间推进
    cookie = jr.get_cookie()                 # 收通行证
python3 tests/test_jsrun.py   # 7 项金标测试(含速度门 <100ms,实测 P50 1.0ms)

依赖

  • mini-racer(ISC,V8 绑定):pip install mini-racer
  • 无其他第三方依赖;Python ≥ 3.10

纪律

  1. 产物只当线索不当正文:网络数据在垫片里没有真源,页面 JS 拿到的任何
    「网络响应」都不可信;需要数据必须 Python 侧真取。

  2. 反爬对抗谨慎:本车道用于已授权/自有场景的通行证计算;对第三方站点的
    挑战绕过默认关闭,启用须单独拍板。

  3. 考卷驱动生长:环境面只按 tests/fixtures/ 里的真实考卷长,不为想象中的
    浏览器写代码(详见 docs-local 设计文档)。