supernovae-st/nika-registry

GitHub: supernovae-st/nika-registry

一个通过内容哈希固定和 CI 重新证明来共享 AI 工作流与智能体制品的可验证注册中心,解决社区制品的信任与供应链安全问题。

Stars: 1 | Forks: 0

Nika

# nika-registry [![验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/f5/f5acfe8dce6a25e85907ab3b9795e0d0a81b502cf4ae76bb4079cea10546c57e.svg)](https://github.com/supernovae-st/nika-registry/actions/workflows/verify.yml) [![契约](https://img.shields.io/badge/contract-registry--v0.1-blue)](https://github.com/supernovae-st/nika-spec/blob/main/registry/registry-v0.1.md) [![目录](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsupernovae-st%2Fnika-registry%2Fmain%2Fbadges%2Fcatalog.json)](CATALOG.md) **共享 Nika 制品:workflows · packs · skills · agents:在这里,每个 条目都是由机器重新证明的,而不是由把关人信任的。** 每个应用市场都用点赞数、下载量或版主来回答“这安全吗?”。 而这个 registry 用**你可以自己重新运行的证明**来回答:每个条目都将其 源固定到一个完整的 commit + 一个完整的 sha256,并且 CI 会重新获取字节、 重新计算哈希,并在每个 PR 和每晚重新运行 [conformance oracle](https://github.com/supernovae-st/nika-spec)。 条目中的 `[cert]` 块仅供参考 - **证明就是 `scripts/verify.py`,而且你可以针对镜像离线运行它。** 信任存在于制品之中, 而不在这个 repo 里。 ## 安装:一条可审计的命令 ``` git clone https://github.com/supernovae-st/nika-registry && cd nika-registry python3 scripts/get.py --list # what exists python3 scripts/get.py meeting-actions # fetch → verify sha256 → local audit → done ``` `get.py` 在出现任何不匹配(哈希 · 安全公告 · 覆盖)时都会拒绝执行,并且绝不会 执行任何东西:workflow 只是存入磁盘,由**你**决定是否运行它。 这不是 `curl | sh`:你已经克隆了这个 repo,你可以先阅读这 140 行代码。 **Agents**:获取一次 [`index.json`](index.json) 即可包含每个制品的 固定版本、摘要、证书摘要和安全公告状态;[`llms.txt`](llms.txt) 以 agent 可读的形式教授消费/验证路径。 **徽章**:每个制品都有一个实时证书徽章 - `https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/supernovae-st/nika-registry/main/badges/--.json` ## 发布(一个 PR) 你的制品保留在**你的** git repo 中:registry 只存储一个指针、 一个摘要和一个证明,绝不存储副本。命名空间 = repo 所有权(Go 模型):`registry/workflows///.toml`, 并且 CI 会拒绝发布者不拥有源 repo 的条目。 1. 让你的 workflow 通过 `nika check`(或 `conformance/runner.py validate`)。 2. 添加条目文件(复制 ENTRY_TEMPLATE.toml(或任何种子条目))。 3. 发起一个 PR:CI 会重新证明它(哈希 · oracle · 密钥 · 许可证 · 命名空间)。 ## 第一方制品的来源 `supernovae-st/*` 条目**不是**一个手动维护的列表:它们是 **规范的标准 pack 的投影**(`scripts/project_pack.py` · 在 CI 中通过 `--check` 门控)。向 [nika-spec](https://github.com/supernovae-st/nika-spec) 添加一个展示, 重新运行投影器,它就会在这里发布:registry 不能偏离这个 pack。 社区制品依然通过 PR 进行编写。 ## 契约 这个 registry 实现了 **[registry-v0.1](https://github.com/supernovae-st/nika-spec/blob/main/registry/registry-v0.1.md)**, 这是 Apache-2.0 规范中的规范性共享契约:任何人都可以运行一个 合规的 registry(组织内部、镜像、fork),并且所有客户端与它们交互的方式都是完全相同的。 ## 规则(每一条都对应一个有记录的 registry 死亡案例) | 规则 | 消除的风险 | |---|---| | 条目是**不可变的**:新版本 = 新文件 · 撤回 = 一个 [advisory](advisories/),绝不是删除 | left-pad · rug-pulls | | **全 commit + 全 sha256 固定**:没有标签,没有分支 | tj-actions 标签重写 | | CI **重新计算获取字节的哈希** | manifest 混淆 | | CI **重新运行 oracle** | 没有其他人能抓到的类别:损坏/虚假的制品 | | **密钥形状的字符串拒绝通过门控** | n8n 共享模板凭证泄露 | | **命名空间 = 源所有权** | 依赖混淆 · typosquatting | | **零安装时执行**:条目和制品都是数据 | event-stream · Shai-Hulud · ComfyUI | 在运行任何共享 workflow 之前,请阅读其 `permits:` 和 `exec:` 块 - `nika check` 会在**花费任何 token 之前**向你展示完整的影响面(网络 · 文件系统 · 密钥 · 成本)。 这就是 Nika 的核心所在。 ## 目录 · 证书 [`CATALOG.md`](CATALOG.md) 由 ENGINE 对每个固定制品的静态分析 生成(`scripts/cert.py` · 引擎版本在 CI 中由摘要固定):它可以执行吗? 使用了哪些工具?有多少次 LLM 调用?成本上限是多少? 每一行都链接到 [`certs/`](certs/) 下的一个机器证书。没有其他 workflow registry 能够生成这一列:而且你永远不需要信任它: 证书可以在本地使用 `nika check` 重新推导出来。 **“干净”并不等于“安全”。** 证书证明了影响保持在 workflow *声明* 的 permits 范围内:它无法审查被允许的程序或工具实际会做什么。一个 **无限制的授权**(`exec: true` 运行任何程序 · `*` 工具允许任何工具)在所有界面上都 标记为 **⚠**;在那里,“它能做什么”实际上就是“该类别中的任何东西”,所以在运行之前 请务必阅读 workflow。⚠ 标志着一个需要检查的授权,而不是一个不安全的判决。 ## 撤回 · 安全公告 一个被破坏或有缺陷的版本**永远不会被删除**(为了可重现性):它 会在 [`advisories/`](advisories/) 中获得一个 advisory(受 OSV 启发),消费者 和未来的 `nika add` 会在安装时检查它。 ## 许可证 Registry 元数据:Apache-2.0。每个制品都带有自己的 `license` 字段。
标签:AI代理, Python, Python安全, 哈希校验, 无后门, 网络安全研究, 资源仓库, 软件供应链, 逆向工具