Ad-Astra-Computing/vega-agent

GitHub: Ad-Astra-Computing/vega-agent

Vega代理是一个用于Nix二进制缓存的可重复构建和验证工具。

Stars: 0 | Forks: 0

# vega-agent Vega 的客户端,一个可重复构建的 Nix 二进制缓存。这个仓库 包含构建 flake 并证明其输出的代理,以及重建他人推导以证实它的重建器。 Vega 仅在独立构建者重建相同的推导并产生相同输出后,才将其构建签名到其共享缓存中,并记录每个 证明在一个公开的、只追加的透明日志中。强制执行的控制系统是分开的;它在 https://docs.vega-cache.dev 上有文档。这个 仓库故意是公开的:构建和证明的代码应该可以被依赖结果的人审计。 ## `vega` CLI `vega` 是缓存的命令行:注册机器,将本地构建推送到自己的命名空间,并管理你的机器信任谁。使用 Nix 运行它,无需克隆: ``` nix run github:Ad-Astra-Computing/vega-agent#vega -- login nix profile install github:Ad-Astra-Computing/vega-agent#vega # or install it ``` 或者将其添加到你的 flake 中,固定到发布标签以进行可重复的构建: ``` inputs.vega.url = "github:Ad-Astra-Computing/vega-agent/v0.4.2"; # 可选,以共享此flake的nixpkgs: # inputs.vega.inputs.nixpkgs.follows = "nixpkgs"; ``` 然后通过 `vega.packages.${system}.default`(devShells、`environment.systemPackages`、`home.packages`、...)将其放在 `PATH` 上,或者使用 `nix run vega#vega -- verify ...` 运行它。 快速入门: ``` vega login # enroll this machine (GitHub device flow) vega push .#my-package # build locally, upload novel paths to your namespace vega verify /nix/store/ # independently verify a build: signature + transparency log + NAR bytes vega mcp # read-only MCP server for AI agents (vega_verify, vega_risk) vega view # print the nix.conf substituter + keys for your view vega trust add github:alice # trust another builder (scoped, revocable) vega status # auth + connectivity vega doctor # diagnose nix / zstd / auth, and check for a newer release ``` `vega verify` 检查缓存的签名是否与您已经信任的密钥、签名的树头、构建的 RFC 9162 包含证明以及重新推导的 NAR 哈希相匹配——证明,而不是信任。`vega mcp` 通过模型上下文协议将此暴露给编码代理,以便代理可以在安装之前使用 `allow`/`warn`/`deny` 来控制依赖项。 完整的命令集:`login`、`logout`、`whoami`、`status`、`doctor`、`push`、`verify`、`mcp`、`trust`(`add`/`remove`/`list`)、`view`;运行 `vega --help` 获取详细信息。 `login` 中的 GitHub 令牌使用一次且不会存储;仅保留短暂的 Vega 凭证(`~/.config/vega/credential`,模式 0600),并且控制平面需要是 https。 ## 布局 - `agent/` 包含 Node CLI 和一个组合 GitHub Action。 - `main.ts` 构建 installable 并证明其输出。 - `reproduce.ts` 从其来源重建推导并证明结果。 - `nix.ts` 是将 shell 传递给 `nix` CLI 的边界。 - `verify.ts` 重新推导 NAR 哈希以审计已发布的缓存条目。 - `src/agent/` 是协议和有效载荷逻辑,没有 I/O,由测试覆盖。 - `src/nix/` 包含 Nix 线路格式助手:narinfo、存储路径、哈希。 - `.github/workflows/reproduce.yml` 是可重用的重建工作流程。 ## 证明自己的构建 从授予 OIDC 的工作流程中调用组合操作。将操作固定到提交 SHA 而不是标签。 ``` permissions: id-token: write contents: read steps: - uses: actions/checkout@ - uses: Ad-Astra-Computing/vega-agent/agent@ with: installable: .#packages.x86_64-linux.default control-plane: https://vega-cache.dev ``` 有用的操作输入: - `skip-upstream: "true"` — 仅上传上游缓存尚未提供的服务路径(推荐用于系统关闭)。 - `reuse-cache: "true"` — 在构建之前用此仓库的先前 Vega 推送替换,这样重路径就不需要在每次运行中重建。对于任何其证明为共享层提供数据的作业(该构建必须保持独立于 Vega),请将其**关闭**。 - `build-timeout-minutes` — 每个构建的显式上限。默认 `0`(禁用):作业的 `timeout-minutes` 是唯一的限制,因此一个长时间但正在进行的构建永远不会被终止。 - `extra-substituters` / `extra-trusted-public-keys` — 从受信任的上游缓存(例如项目 Cachix)而不是从源拉取重依赖。 ## 重建另一个构建 针对构建的来源运行重建工作流程:flake 引用、属性和锁定版本。它在这个仓库的身份下在新的运行器上重建,并证明结果。对输出的协议达成一致才能将其提升到共享缓存;不匹配将被记录为分歧。 重建旨在分布式。在一个仓库中运行每个构建既排队了单个并发池后面的作业,又违背了其目的:独立性来自不同的构建者。在你的自己的仓库中运行重建器,这被视为一个单独的、独立的证实。 ## 安全性 重建器构建了它没有编写的代码。在调用 nix 之前,代理从环境中删除 GitHub OIDC 请求令牌,因此不受信任的构建不能铸造运行器身份令牌。Flakes 以纯模式评估,构建在 nix 沙盒中运行,因此构建也不能读取证明凭证。控制平面 URL 在工作流程中是固定的,不是输入,因此调用者不能重定向令牌。自托管的重建器仍然必须使用短暂的、每个作业隔离的运行器,永远不使用长期主机。 ## 使用 Nix 运行 ``` nix run github:Ad-Astra-Computing/vega-agent # the vega CLI (default) nix run github:Ad-Astra-Computing/vega-agent#vega -- login nix run github:Ad-Astra-Computing/vega-agent#attest # build and attest (CI) nix run github:Ad-Astra-Computing/vega-agent#reproduce # reproduce and attest (CI) nix develop # a shell with node and zstd ``` `attest` 和 `reproduce` 应用从环境中读取输入,与 GitHub Action 和重建工作流程设置的变量相同。 ## 开发 ``` npm install npm run typecheck npm test ``` ## 许可证 BSD 3-Clause;请参阅 [LICENSE](LICENSE)。此仓库始于开源 garnix CI 代码库(版权所有 garnix,Co.)。新代码的版权属于 Ad Astra Computing Inc.
标签:AI Agents, Binary Cache, Build Attestation, Build Verification, CLI, Client-Side Agent, Command Line Interface, Derivation, Flake, GitHub Integration, Machine Enrollment, MCP Server, MITM代理, Namespace Management, NAR, Nix, NixOS, Nix Package Manager, Nix Profile, Public Key Infrastructure, Reproducer, Reproducible Builds, Risk Assessment, Security, Security Auditing, Status Monitoring, Transparency, Transparency Log, Trust Management, Vega, WiFi技术, 凭据导出, 自动化攻击