跳转至

JavaScript 源选择 JSON 验证 — 2026-10-24

范围和集成

PR #5029 为两条静态应用程序 CLI 路由添加了 --source-paths-json。一个内联 JSON 数组或选定的本地 JSON 文件,会在重复的 --source-path 值之后追加精确清点出的路径。应用程序的 source_paths 契约、排序、重复请求、工件标识和 MCP 契约均保持不变。这不会添加文件夹、通配符或隐式依赖;#5048 是单独一项。

CLI 适配器复用现有的 JSON 文件读取器和领域数组模式。条目仍然是相对于工件的。它保留取消操作和共享文件所有权,而不引入另一个读取器/解析器。原生通道会在启动引擎之前拒绝源选择选项。主集成保留现有的交付验证、调用方的摘要/视图设置、环境选择以及进程拥有的 JavaScript worker 清理。

初始主分支 7f70797b 集成通过了 44 项精选的 CLI、文件系统 JSON 输入和实际 SDK 源选择检查,加上完整的 npm run check。JSON 文件验收用例现在会分析一个 ASAR,并验证原始包的路径和 SHA-256;内联用例则覆盖一个解压目录。两者都组合了重复条目和 JSON 条目,并保留其请求顺序。无效形状、空条目、原生通道拒绝和取消操作均已被覆盖。这是静态源代码分析;选定的应用程序不会被执行。

已完成任务对比

将主分支 7f70797b98c226009163358f91a9cfcedf03b390 与特性集成 e886393ae698d4ed411179430c8dbb10ce6c5647 进行比较。三对交替任务分析同一个 ASAR,选择 package.json,随后是 210 个具名 JavaScript 文件。基线重复 211 个路径选项;候选者使用一个重复选项外加一个包含其余 210 条路径的现有 JSON 文件。所有 六个 任务均完成。

每个完整的 Evidence 对象在所有运行中都完全相同,包括其 ID、所选路径、来源、覆盖率、不确定性和局限性。每个结果报告 210 个已解析的 JavaScript 文件,没有未选择的文件,并保留全部 210 个预期的具名函数。ASAR 仍为 75,620 字节,SHA-256 为 f1089a49e40f4477e0850787654411c0ec208934262837a19e65c2aa4dc5f035。

完成的 CLI 任务成本 重复选项 现有 JSON 文件
显示的命令行字符数 17,977 201
估计的完整 Evidence stdout 令牌数 1,861,409 1,861,409
估计的调用令牌数 5,078 62
估计的 stdout + 调用令牌数 1,866,487 1,861,471
中位耗时(s) 19.149 18.389
等待子进程 CPU 中位数(s) 18.250 17.340
采样的进程族 RSS 中位数(MiB) 601.4 594.1

这解决了命令行容量问题,同时不会降低完整分析结果。Microsoft 文档记录了 8,191 字符的 Cmd.exe 命令行限制。ASCII 测试夹具的显示调用在变更前超过该限制,而使用文件后则保持在该限制以下。这是根据文档化限制得出的推断;已完成的任务在 Linux 上运行,而不是通过 Windows Cmd.exe 或 npx。

在此计时任务中,调用方提供的选择文件已经存在;其读取/验证也包含在内。如果代理必须先创建该文件,文件内容将增加估计的 4,411 个令牌,外加一次额外写入调用的框架开销和执行成本,这些未测量。在这种情况下,不要将较短的调用视为整个工作流的令牌节省。文件创建、发现、提示、渲染和客户端 JSON 解析不在测量范围内。

不宣称有任何加速:耗时范围分别为 19.142–19.841 秒(之前)和 18.277–21.384 秒(之后);CPU 范围分别为 18.140–18.821 秒(之前)和 17.278–21.026 秒(之后)。这些范围有重叠,并包含一次较慢的候选运行。Tokenx 1.3.0 估算 stdout 和调用文本;这些不是计费/模型令牌计数。

每个任务都会启动一个新的 Node 24.22.1 CLI 和 JavaScript worker,CPU 亲和性为 0,1。OS 缓存未刷新,主机是共享的。这些是全新的进程运行,带有不受控的热文件系统缓存;冷磁盘和热持久 worker 的成本未测量。CPU 为等待子进程的用户时间加系统时间。RSS 是 50 ms 递归进程族采样,可能重复计算共享页面,并漏掉短暂存在或未观察到的子进程。令牌估计和相等性检查在计时之外进行。后续主分支更改不在这些固定成本之内。

最终集成检查

与主分支 cd10ee1f8a8e124be4864e77750a16e76c561809 的集成通过了 58 项检查,在初始选择的基础上扩展了活动中 JSON 读取取消、进程级错误状态以及现有路由/交付覆盖。这需要 167.935 秒、等待子进程 CPU 182.796 秒和采样进程族 RSS 2,056.1 MiB;这些是测试套件成本,而非分析师任务成本。完整的 npm run check、npm run docs:check 和测试发现均通过。这些选择与之前的检查有重叠。后来的上游集成不在成本比较范围内。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea