CI 输入证明
开发/CI-唯一纯库存比较。 不导入此软件包 产品运行时间代码 。 没有运行时间依赖,I/O,散列,缓存, 获取模块依赖,执行收据或合并权限.
import { compareLeafInventories } from "@agent-teams/ci-input-proof";
const relation = compareLeafInventories(before, after, permittedContentChanges);
主机独立构建完整的目录并分出叶子.
每份清单都有 version: 1, (中文(简体) ), digestScheme,以及 inputs每片叶子
完全没有 path, (中文(简体) ), type, (中文(简体) ), mode, (中文(简体) ), membership,以及 content模式为
文件 100644编号 :100755,符号链接 120000链接 160000成员为:
closed 或者说 structural. 计划 git-object-sha1 (非零小写)
40-小时 OID)和 sha256 (非零小写64-hex摘要),不转换.
输入是平实或无效原型自有数据记录和存量密集数组. 访问器、自定义的转发器、符号、额外字段和孔拒绝 呼唤取出者或取出者。 可执行代理和被修改的内在 合约之外 库存有1至65 536个叶子,至少一个已关闭 叶子。 文字相对路径最多有4096个代码单位,没有空/点/点-点 片段,回鞭,绝对驱动前缀或ASCII控制/DEL. 个案和 Unicode拼写保留了他们的身份;没有发生文件系统cononicalization.
两份清单必须具有相同的路径设置,类型,模式和成员. 封闭的内容不能改变 。 结构内容可能只因精确 允许现有的结构路径。 权限是一个密集的独特路径列表, 以叶数为界;关闭/漏叶的额外权限拒绝.
compatible-inputs 返回被冻结的正则 changedContentPaths 实际上
更改允许的叶子,包括用于等量目录的空数组.
rejected 返回冻结的稳定理由。 审定令在清单之前,
在目录之后,计划平等,权限,结构,然后内容。 结果
保留不调用引用 。 兼容关系证明既不是语义
完整性、认证、成功测试、资格或许可
省去一张支票。 具体运行时间的较窄资格仍然是消费者拥有的.
发表 0.1.0-rc.0 前者仍然是历史证据。 运行时间
采用公共输入 公关#213; 中点在
第357号公关. 中央的合规性
包件不是一个实时认证的合并权限 。 导入不解决
独立电流-H、源授权或全能回收缺口.
该包是对其申报的节点24/26发动机的仅限进口的无害环境管理,没有 常见JS倒置. 单是社会监测节点升级并不能满足Jest无害环境管理的要求. 关于收藏器关闭、受影响的选择,见下文集成指南, 证据再利用和失效规则.
输入页类型迁移
InputLeaf 属于歧视型/模式结合。 构造文件
100644编号 :100755,符号链接 120000 或连接 160000 叶一起; 窄
动态类型,然后选择模式,而不是维持一个广泛的记录:
InputLeaf。运行时验证仍然接受 unknown。从
已出版 0.1.0-rc.0 类型需要替换宽 type编号 :mode 记录
这些配对 歧视对。 此类型迁移不更改运行时间
行为或授权新的疏漏政策.
融合指南
通过静态的无害环境管理进口,利用来自发展/CI工具的公共根基 宣布的节点24/26发动机。 这个固定的库依赖性不是新的 Get 模块图节点. 消费者拥有收集、政策和执行权 软件包只拥有限定关系。 不添加调度器或收件主机.
在允许遗漏之前,请说明确切的指挥和范围。 收集 完全发现关闭:源、中转辅助器、固定装置、生成/API 输入、选择规则、配置、锁定文件和已安装的依赖性图表. 编码器/测试工具链、安装政策和相关环境 消费者的承认,即使他们没有作为内容叶来代表. 每个观察边界一次将事实化 内存而不是扫描 Git, 安装的文件或每个范围的网络. 独立分类封闭输入,只允许精确的现有结构 所接受的政策允许的改变路径。 候选人声明不能 授权自己的收集器、输入排除或遗漏政策.
受影响的选择
对于 pnpm test --filter parser,假设一个完整的被承认的树包含
parser.ts,其共享的辅助器和固定器作为封闭输入
允许文件体的结构内容。 独立收集的
在/当前库存中,这种最小形状可以是:
import { compareLeafInventories, type LeafInventory } from "@agent-teams/ci-input-proof";
const before: LeafInventory = {
version: 1,
digestScheme: "sha256",
inputs: [
{
path: "parser.ts",
type: "file",
mode: "100644",
membership: "closed",
content: "1".repeat(64),
},
{
path: "docs/usage.md",
type: "file",
mode: "100644",
membership: "structural",
content: "2".repeat(64),
},
],
};
const current: LeafInventory = {
version: 1,
digestScheme: "sha256",
inputs: [
{
path: "parser.ts",
type: "file",
mode: "100644",
membership: "closed",
content: "1".repeat(64),
},
{
path: "docs/usage.md",
type: "file",
mode: "100644",
membership: "structural",
content: "3".repeat(64),
},
],
};
const relation = compareLeafInventories(before, current, ["docs/usage.md"]);
这些惰性值说明了这个关系,而不是一个完整的收藏家. 一个相容
结果 docs/usage.md 更改后只允许在此下选择受影响的区域
消费者的认可政策;它不表示通过当前H的剖析测试.
更改共享的帮助、 固定、 选择配置或工具链必须执行
影响测试。 添加/删除/更名一叶或改变类型/模式/成员
拒绝而不是扩大选择范围。 与PASS分开报告遗漏.
重新使用以前的合格资格
对于已安装软件包的 Linux 节点 24 资格,请获得认证
成功证据和独立收集其完整的旧/现投入
关闭,包括包/存档身份和已安装的图表。 比较
compareLeafInventories(previousInputs, currentInputs, []) 和要求两者
compatible-inputs 空对齐 changedContentPaths独立匹配范围,
OS/Node/toolchain/环境,来源,工作流程和尝试身份.
缺乏成功证据的同等清单不能成为再利用的理由。 一个 Linux
节点 24 PASS 无法对 Windows 或 Node 26 进行资格审查; 一个新的头/ 基/ 并发组不能
继承一个旧的 SHA PAS 仅仅因为提交的字段要求匹配.
拒绝不确定性
共线内容识别链接, 而不是目标字节; gitlink 内容识别 a 承诺指针,而不是肮脏的分模块或可循环输入。 无论是 根据审查的政策收集相关目标关闭或进行核对. 路径为字面大小写/ Unicode 身份 。 收藏家承认实际退票 每个OS上的行为;它不能使相撞正常化或省去不支持的路径. 历史缺失、普查不完整、无根据计数/计数/路径、导入失败 或收集器失败,是指独立的全能执行或失败关闭. 绝对必须 在没有优化器的情况下可执行; 仅靠倒回分支并不能证明.
在一次性TEST项目之前,对消费者拒绝适配者案例进行资格审查 拓宽策略:帮助者/配置漂移、收藏不完整、输入未知以及 不可用的优化策略 。 保持源授权和独立的H差距 明确. 对于Social Monitor来说,升级节点只是一个先决条件:单独符合条件 实际的无害环境管理工具入门点和杰斯集成。 没有CJS倒置假设.
安装了公用基调
具体输入的TEST参考文献
tests/fixtures/ci-input-proof/foundation-pilot.TEST.mts 仅限进口
@agent-teams/ci-input-proof。严格 CI 工具类型检查覆盖其来源
形状通过狭窄的测试路径映射; 包装的资质复制相同的
固定在可支配的消费者身上,并与安装的公众进行打字检查
输出。 没有重复的只有源的例子 。 源套件没有
执行公共根基固定。 安装的可支配消费者是
支持运行时执行边界 。 引用构建文件、 符号链接和
连接叶为
被歧视的对子,包括编译时间 拒绝对每一个错配的对子
模式。 包装的资质副本 提到一个一次性消费者,
安装精确的文件 tarball, 读取可信任的源列表并安装
显示,并拒绝任何软件包名称/版本矛盾。 预期
因此,身份是当前源版本而不是 0.0.0,所以一个
普通的后继版本缓冲仍然可以测试。 它运行存储器
精确安装类型脚本 7.0.2 对照已安装的公共导出编译器
并报告编译器身份。 装入的工具链首先安装精确
当前平台本地类型Script包归档,然后安装类型Script
元包和CI 输入证明 柏油丸通过同一家离线商店. 这个
已安装的平台列表和本地编译字节必须匹配寄存器
工具链在 TypeScript 真正的公开导出和编译器运行前; 否
类型分贝或替代编译器被允许。 需要导入深包
失败 ERR_PACKAGE_PATH_NOT_EXPORTED。 。 。 .
已发布安装
使用消费者支持的包管理器并保留其经过审查的接头. 对于一个 现有 pnpm 消费者工具化工作空间,替换工作空间选择器和 核准清单/登记释放记录的准确版本:
export CONSUMER_TOOLING_WORKSPACE='<existing-consumer-tooling-workspace>'
export CI_INPUT_PROOF_VERSION='<exact-released-version>'
pnpm --filter "$CONSUMER_TOOLING_WORKSPACE" add --save-dev --save-exact \
"@agent-teams/ci-input-proof@$CI_INPUT_PROOF_VERSION"
此记录 @agent-teams/ci-input-proof 仅限开发
通过普通登记装置进行依赖。 准确的列表和
登记册发布记录控制可用性和版本;本指南没有
声称继任者已经公布。 没有本地归档、测试固定或
需要临时代号.
消费者工具工作区必须声明节点 ^24.18.0 || ^26.0.0 (或 a 个)
),保留一个支持的 pnpm >=11.17.0 <12 针,并使用
通过无害环境管理 "type": "module" 或作为无害环境管理工具的切入点。 没有
常见JS倒置. 使用现有的 已键入示例 财务报告和审定财务报表
InputLeaf 移徙 而不是复制复制
代码.
可处置的花式花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花
以下由地方存档的JSON并非普通的已发布-安装配方. 仅保留给现有的一次性花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花样花花样花样花 (a) 符合资格 登记快速启动.
{
"type": "module",
"packageManager": "[email protected]",
"devDependencies": {
"@agent-teams/ci-input-proof": "file:/absolute/path/to/ci-input-proof.tgz",
"@types/node": "24.13.3",
"typescript": "7.0.2"
}
}
将可支配资格消费者编译器选项单独保存
tsconfig.json数字 :
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"noEmit": true,
"strict": true,
"target": "ES2024",
"verbatimModuleSyntax": true
}
}
基金会试点
纯粹的参照合同是跨平台的. 这一具体的基金会试点
及其选定的RC目标为 Linux 并拒绝其他试点平台.
scripts/ci-input-proof-foundation-pilot.mts 是一个混凝土的影子飞行员
cI 驻地协调员资格认证小组
tests/ci-input-proof-rc.test.mts,包括其真正的档案准备和
安装了公用地心探测器。 这不是一个排程器,通用的收集器,收据
服务或获取模块图形节点。 收集器有一个明确的固定范围
非空源、助手、固定器、配置、锁、工具链和
已安装的图类,包括RC编写脚本和软件包
存档输入 。 它安装的地图基础是锁/包-映射特性和
软件包的精确导出构建文件。 非空闲的运行时间依赖关系,
symlink-target 关闭和其他软件包解析表单不支持:
收集报告失败和独立的配置的 FLL 命令
仍然执行。 飞行员是 control-shadow 来自两个边界的证据
有一棵树,上面是呼叫器供应的Tiple。 它没有建立独立的波黑
集合、 完整包解析关闭、 当前标题限制或
保存 CI 的工作.
在此试运行前运行正常的软件包构建和准备边界 :
pnpm build
node scripts/prepare-package.mjs
prepare-package.mjs 平衡分配输出并实现
可发布软件包的正常生成 LICENSE 从寄存器根。 这个
飞行员的固定范围包括准备的软件包输入。 没有这个
准备、收集不完整,不能产生正候选人
观察; 独立配置的 FLL 进程仍然执行或失败
关闭.
每一逻辑事实在观测边界之前/当前发生一次, 然后实际目标执行 :
node scripts/ci-input-proof-foundation-pilot.mts \
--head 0000000000000000000000000000000000000000 \
--base 1111111111111111111111111111111111111111 \
--merge refs/heads/TEST-ci-input-proof
JSON报告对所供应的头部/基部/下部的Tuple和记录进行汇总
前/当前收集、比较和全利时间. timingObservation
只有在关系相等时,才可能
未来被认可政策可能避免的全能期限;它不会造成遗漏
或PAS授权。 优化器是未报告的观测,没有
程序协议,没有忽略权限。 选择决定总是
full 在这场展出中。 即使是同等的存货 candidateOmitObservation
执行 FLL。 总是有疏忽 not-attempted 与
目标进程 PASS。 调用 JSON, 标签和报告常数不能承认
遗漏。 保存存储器的完整 FLL 矩阵,托管技术
审查和审查合并操作员不变.
获得模块化和社会
此套件是一个固定的开发/ CI 依赖, 仅通过静态
无害环境管理从工具的进口。 它从未输入产品运行时代码或运行时
依赖图,它没有添加 Get 模块组件或生命周期 。 这个
维持 CI 输入源验证录
拥有消费者模块标准指针、保留出处和包件;
无私人 .cache 包裹是公开的先决条件.
Social Monitor支持上演:所有者要求的节点升级先来, 然后,实际的节点24无害环境管理工具进入点和Jest整合得到 单独的一次性测试资格。 收养不会强迫杰斯特重写, 不添加一个普通JS倒置,也不声称单是节点升级 具备无害环境管理条件.
柱子、迁移和支助清单
| 项目 | 精确支持 |
|---|---|
| 节点 | 仓库 .node-version 26.11.1; 包件发动机 |
| 小时 | 软件包范围 >=11.17.0 <12; 此寄存器针 [email protected] |
| 类型脚本 | 仓库目录指针 7.0.2 |
| 软件包依赖性 | 无运行时间依赖关系; 无浮动依赖范围 |
| 模块格式 | 仅限无害环境管理公共根;无常用JS倒置 |
| 历史已出版的前身 | 0.1.0-rc.0;后续可用性遵循准确的明细表/登记释放记录 |
在允许消费者不作为之前:
- 独立承认准确的检查命令和范围;
- 关闭源、 帮助器、 固定装置、 配置、 锁文件、 工具链、, 安装政策和安装的依赖性图表;
- * 收集每个支持的每个观察边界的先前/当前事实 OS和节点版本;
- 证明 FLL 通过独立的真实进程成功和失败 优化器;
- 在可执行的全能路由中保持不支持、不完整和结构漂移;
- 绑定当前头/底/现身份,并保留独立的技术审查;
- 运行请求的完整
full-ci矩阵并保存合并权限.
在满足每个适用项目之前,支持的行为是阴影 实际完全执行。 没有声称大规模遗漏.