内容
# 圣地
[](https://github.com/eriknewton/sanctuary-framework/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@sanctuary-framework/mcp-server)
[](LICENSE)
**您的人工智能代理的防火墙和控制面板**
圣地为您的机器或云上的任何人工智能代理提供保护,确保其采取的每一步行动都在网络层受到阻止,除非您允许,并且所有行动都经过签名,只有您持有密钥,同时记录到审计跟踪中,您可以阅读。一台仪表板管理您运行的所有代理的安全性和隐私性,无论是您的笔记本电脑上的一个代理还是跨机器的整个舰队。您的数据和代理建立的声誉都保留在您控制的硬件上,您可以随时取回并离开。无需锁定。
已经在运行 Claude Code、Cursor、Hermes、OpenClaw、Cline 或 Mastra?
```bash
npx @sanctuary-framework/mcp-server protect --claude-code
```
这条命令为您的现有代理添加了保护层。
**底层技术:** 内核级防火墙,即使在提示注入攻击中也能保持安全(目前支持 Linux,macOS 正在开发中);基于加密的身份验证和加密状态,平台无法读取;以及完全的数据可移植性,确保您不会被锁定在一个供应商中。它与 Concordia(代理协商)和 Verascore(可移植声誉)兼容,每个都在其自己的存储库中,无需强制使用。
了解更多:[什么是主权](https://sanctuaryprotocol.ai/2026/03/30/what-sovereign-actually-means.html)。
---
## 安装
已经在运行 OpenClaw、Hermes、Claude Code、Cursor、Cline 或 Mastra?一条命令即可为其添加保护。
```bash
npx @sanctuary-framework/mcp-server protect --openclaw
```
或者,可以使用 `--hermes`、`--claude-code`、`--cursor`、`--cline`、`--mastra` 或 `--wrap <path-to-config>` 来替换,以适应其他 MCP 兼容的运行环境。命名运行环境的兼容性在每次发布时都会进行测试;其他 MCP 兼容的运行环境可以通过 `--wrap` 标志来支持,具体的支持情况请参见 [Sanctuary Assurance Matrix](ASSURANCE_MATRIX.md)。您继续使用已经喜欢的运行环境;圣地在其下方添加保护层,无形无踪。
运行 `protect` 命令时:
1. 生成并存储一个通行短语在 macOS 钥匙串(或 Linux/Windows 上的加密备份文件)中。
2. 现有运行环境配置备份到 `~/.sanctuary/backup/`。
3. 配置文件被重写,以便所有工具调用都通过圣地路由。
4. 主权仪表板在 `http://localhost:3501`(或下一个空闲端口,最高 3510)启动,并在您的浏览器中打开,附带一键身份验证令牌。
5. 每个调用都被记录和策略控制。敏感内容编辑和查询层匿名(第 1 和第 2 级)根据 Assurance Matrix 叠加在上面。危险操作需要您的批准。
实用标志:`--dry-run` 预览更改而不实际修改。`--no-open` 以无头模式运行,适用于持续集成。`--unwrap` 恢复原始运行环境配置。
**备份您的通行短语:**
```bash
sanctuary export-passphrase
```
在确认提示后,通行短语将被打印到 stdout。请将其存储在密码管理器中。如果您丢失了它,加密状态将无法恢复。
---
## 发布状态
`main` 分支是开发分支。当前的稳定版本是 **v1.6.1**,位于 npm 的 `latest` 通道(截至 2026-07-01)。v1.6.1 是一个补丁版本,恢复了裸 `npx @sanctuary-framework/mcp-server` 安装形式(自 v1.4.0 起已损坏),在运行环境配置中写入版本固定的 MCP 条目,并在首次运行的“protected”横幅上加上实际执行证据的门槛;请参见 [v1.6.1 发布说明](docs/releases/v1.6.1.md)。v1.6.0 使对话式礼宾成为单一的默认仪表板界面,强化仪表板状态界面,使主权评分和层卡反映实际执行判决,从不显示绿色仅凭配置存在,并为设置流程和 Hermes 包装路径添加诚实的安装时消息,以及用于 macOS 的 Castle Wall 武装运行手册。macOS Castle Wall 界限保持不变:每个 uid 的允许/拒绝加上启动生存能力加上广域网遏制已被证明;没有每个流规则归因的审计跟踪。
```bash
npm install -g @sanctuary-framework/mcp-server
```
当前功能总结:
| 界面 | 当前状态 |
|---|---|
| 本地 `sanctuary protect`(别名 `wrap`),仪表板,策略门,加密状态,审计跟踪,签名退出包 | 已发布(v1.0 至 v1.3) |
| 协作 MCP 门:三级审批,四种规范策略槽,通道模板 | 已发布 |
| 上下文门控,敏感字段编辑,查询层匿名(第 1 + 第 2 级) | 已发布 |
| 可移植身份,状态导出/导入,恢复流程,声誉包 | 已发布 |
| 本地多代理协调,堡垒本地中心 API,签名审计链 | 已发布 |
| 联邦协议 v0.1 基础 | 已发布;跨运营商联邦强化中,按 Wave 1 设计(2026-05-26) |
| Concordia 组合(协商收据),Verascore 组合(声誉) | 可选,默认关闭;两者已发布 |
| Castle Wall(OS 级出口强制执行):Linux | 已发布(第 1 阶段,2026-05-06) |
| Castle Wall macOS:签名 sysext,主机应用,内容过滤提供商,零售 UX | 已发布;强制执行签名运营商策略,带有干净的每个 uid 允许/拒绝演示,在重启后存活(N=5,演练 2026-06-22,一个主机/一个 OS 版本,Dev-ID 签名和 notarized)。不是审计的每个规则每个流轨迹 |
| Castle Wall Windows | 已规划 |
| 移动(PWA)运营商伴侣 | 已规划 |
| 船队控制台,运营商云部署,主权托管 TEE,后量子迁移 | 已规划 |
信任和安全声明在 [Sanctuary Assurance Matrix](ASSURANCE_MATRIX.md) 中跟踪。面向公众的声明追溯到该矩阵中的 `proven` 或 `partial` 行;每个行中命名的平台、间隙和下一个证明限制都被保留。
路线图形状:随着 Mac Castle Wall 每个 uid 的允许/拒绝加上重启生存演示被证明,当前重点是每个流规则归因的审计跟踪(仍然是真正的差距),Castle Wall Windows 后端和舰队/运营商云表面。请参见 [ROADMAP.md](ROADMAP.md)。
---
## 为代表运营商安装圣地的 AI 编码代理
如果您是 LLM 驱动的编码代理(OpenClaw、Hermes Agent、Claude Code、Cursor、Cline、Mastra、Codex 或任何其他具有 shell 访问权限的运行环境),并且运营商要求您安装圣地,请遵循本部分。人类可以跳到下面的“安装参考”;您将到达相同的命令。
**面向运营商的摘要。** 在运行任何命令之前,向运营商提供一段话:
> “圣地将为您的现有 AI 代理添加保护层,确保其采取的每一步行动都经过签名并记录到可移植的审计跟踪中。安装大约需要一分钟。我将:(1)检测您正在运行的代理运行环境,(2)运行一个 protect 命令,(3)确认仪表板已启动,(4)可选地为您的第一个子代理模板提供支持。请批准后继续。”
### 步骤 1:检测运营商的运行环境
按顺序运行这些检查。选择第一个匹配项。
```bash
# OpenClaw
command -v openclaw && echo "harness=openclaw"
# Hermes Agent
command -v hermes && echo "harness=hermes"
# Claude Code
command -v claude && echo "harness=claude-code"
# Cursor(配置存在)
test -d "$HOME/Library/Application Support/Cursor" && echo "harness=cursor"
# Cline(VS Code 扩展配置)
test -d "$HOME/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev" && echo "harness=cline"
# Mastra(配置存在)
{ test -f "$HOME/.mastra/mcp.json" || test -f "$HOME/mastra/mcp.json" || test -f "$HOME/.config/mastra/mcp.json"; } && echo "harness=mastra"
```
如果多个匹配,请要求操作员选择一个。如果没有匹配,操作员没有安装已识别的运行环境;提供安装一个或使用原始 MCP 服务器路径(下面的步骤 4)。
### 步骤 2:运行 protect 命令
```bash
npx @sanctuary-framework/mcp-server protect --<harness>
```
将 `<harness>` 替换为步骤 1 中检测到的值:`openclaw`、`hermes`、`claude-code`、`cursor`、`cline` 或 `mastra`。对于不在此列表中的任何运行环境,请参见步骤 4。
等待命令完成(通常 20-40 秒)。预期输出以类似以下行结尾:
```
主权仪表板就绪:http://localhost:3501
```
记下端口(如果 3501 被占用,可能是 3501-3510)。
### 步骤 3:验证安装
在步骤 2(protect 成功)后,仪表板正在运行。验证安装:
```bash
# (a) 仪表板响应
curl -fsS "http://localhost:3501/api/health" | grep -q '"status":"ok"' && echo "dashboard=ok"
# (b) 通行短语备份到钥匙串(macOS)
security find-generic-password -s "sanctuary-passphrase" >/dev/null 2>&1 && echo "passphrase=ok"
```
第一次在浏览器中打开主权仪表板时,圣地会从钥匙串存储的通行短语中派生出您的主密钥,创建您的堡垒的 Ed25519 身份,并写入审计日志的创世记录。protect 命令在磁盘上配置这些;第一次仪表板解锁初始化它们。验证首次解锁后:
```bash
# (c) 身份加载(在仪表板上打开一次后运行)
curl -fsS "http://localhost:3501/api/identities" | grep -q '"identities":\[' && echo "identities=ok"
# (d) 审计日志初始化(在仪表板上打开一次后运行)
test -d ~/.sanctuary/state/_audit && echo "audit=ok"
```
如果任何检查失败,请参见 README 底部的“故障排除”。
### 步骤 4:为操作员搭建第一个受管辖的运行环境(推荐)
在 protect 成功后,请操作员:
> “圣地已经安装完成,您的第一个子代理已经搭建完成。打开主权仪表板,网址为 http://localhost:3501,实时查看您的代理正在执行的操作。您的通行短语存储在 macOS 钥匙串中;如果您想要一份可打印的备份,请运行 `sanctuary export-passphrase`。”
### 原始 MCP 服务器路径(步骤 4 替代方案)
如果操作员的运行环境未在识别列表中,请直接安装 MCP 服务器,并让他们将其运行环境指向它:
```bash
npm install -g @sanctuary-framework/mcp-server
```
然后将圣地添加到运行环境 MCP 配置中。确切的形式取决于运行环境;对于 MCP 兼容的运行环境,条目通常如下:
```json
{
"command": "npx",
"args": ["-y", "@sanctuary-framework/mcp-server"],
"env": {
"SANCTUARY_PASSPHRASE": "<generated-passphrase>"
}
}
```
使用 `openssl rand -base64 32` 生成通行短语,并将其存储在操作员的钥匙串或密码管理器中。
---
## 安装参考
**要求:** Node.js >= 22.0.0,npm >= 10.0.0。
规范的安装路径是 `sanctuary protect`(上文)。以下部分是针对较不常见情况的参考。
### 持久安装
```bash
npm install -g @sanctuary-framework/mcp-server
```
使 `sanctuary` CLI 在不使用 `npx` 前缀的情况下可用。
### 手动 MCP 配置
如果您更喜欢手动编辑运行环境 MCP 配置:
```bash
# OpenClaw
openclaw mcp set sanctuary '{"command":"npx","args":["-y","@sanctuary-framework/mcp-server"],"env":{"SANCTUARY_PASSPHRASE":"your-passphrase-here"}}'
# Hermes Agent
hermes mcp set sanctuary '{"command":"npx","args":["-y","@sanctuary-framework/mcp-server"],"env":{"SANCTUARY_PASSPHRASE":"your-passphrase-here"}}'
# Claude Code
claude mcp add sanctuary -- npx -y @sanctuary-framework/mcp-server
```
在首次启动前生成通行短语:
```bash
openssl rand -base64 32
```
安全存储它。它派生了所有持久状态的加密密钥。如果丢失,加密状态将无法恢复。
### 健康检查
```bash
sovereignty_audit
```
根据您的实时配置和配置文件,对您的设置进行 0-100 的安全、隔离和隐私评分。可选功能默认关闭(上下文门控、零知识证明),仅在您启用后才计入分数,而最高“完整”裁决保留给那些实际开启可选层的设置,因此全新安装的分数低于完整,读取低于完整裁决,报告会标记差距并附上关闭步骤。既有 CLI 命令,也有任何包装运行环境内的 MCP 工具。
---
## 安装后第一个代理:搭建模板
在 `protect` 命令后,仪表板会公开一个一键式模板选择器。点击“添加代理”,在代理视图中,选择一个模板,填写名称和模型提供商,点击搭建。模板配置了允许的主机、预算、保留窗口和策略门的合理默认值。
圣地随附渠道形状治理模板(策略、出口、预算、保留),而非命名代理运行时。操作员带来他们自己的运行环境并保护它们;`template init` 将渠道形状绑定到已经包装的运行环境。
操作员创作超出此列表:复制 `~/.sanctuary/templates/` 下的任何模板目录,编辑 `template.json`、`defaults.json`、`policy.md`、`commitments.json` 和 `onboarding.md`,然后运行 `sanctuary template init <your-template>`。
CLI 搭建与仪表板按钮相同:
```bash
sanctuary template init research-assistant --name my-agent --provider anthropic
```
---
## 部署模式
圣地设计为在三个位置运行相同的权利基质。本地模式已发布;运营商云和主权托管 TEE 模式是基于相同联盟和策略基础的路线图表面。
| 模式 | 状态 | 它是什么 | 谁选择此模式 |
|---|---|---|---|
| **在您的机器上**(本地) | 已发布 | 在您已经拥有的 Mac、Linux 盒或 Windows 机器上运行。除非您允许,否则没有任何东西会离开您的房子。 | 自我托管者、隐私最大化者、任何已经运行家庭实验室的人。 |
| **在您的云中**(运营商云) | 已规划 | 在您自己的 GCP / Azure / AWS 账户中运行,带有运营商批准的有范围的节点监管。提供者在节点运行时信任边界内,直到主权 TEE 模式通过硬件证明被验证。 | 专业用户、小型企业、具有轻量 IT 但没有家庭机架的操作员。 |
| **在我们管理的密封云盒中**(主权托管 TEE) | 已规划(v2) | 在圣地运营的硬件上运行,但硬件向您的控制台证明,即使圣地也无法看到其中的内容。您持有密钥;我们持有金属。 | 受监管的行业、希望主权但没有运营负担的操作员。 |
在每种模式下,操作员都是托管根。商品运营商云模式不会将云提供商置于运行时信任边界之外;主权托管模式需要硬件证明,然后再进行处理。
---
## 城堡架构
Sanctuary 安装了附带的底层主权。 在架构上,它作为五个命名的机制进行交付。
**城堡墙:周界。** 世界在未经您同意的情况下无法穿越的边界。 在操作员外部边界处进行操作系统级别的出口强制执行。 内核本身会阻止未经授权的跨边界调用。 即使注入的代理也无法绕过。 Linux 后端已交付(第一阶段,2026-05-06)。 macOS 后端(签名系统扩展 + 内容过滤提供程序)已在真实主机上演示了每个 uid 的允许/拒绝出口强制执行(钻取 2026-06-11):代理出口到非允许列出的地址被阻止,允许列出的出口被允许,操作员出口不受影响。 这是在一个主机和一个操作系统版本上的演示,而不是重启生存期,也不是每个规则每个流的审计跟踪。 Windows 正在路线图中。
**岗哨:神经。** 向您展示正在发生的事情的表面。 通过进程内省和行为基准进行内部观察。 异常通过菜单栏或通知浮现。 观察,而不是强制执行。
**宪章:意志。** 您自愿选择训练代理的内容。 适用于合规代理的附加协作 MCP 表面。 操作员根的加密身份(Ed25519 签名,Argon2id 密码短语解锁,每个目的的 HKDF 子密钥)。 每个代理静止状态下的加密状态(AES-256-GCM)。 具有通道模板绑定的三层主体策略门。 具有回滚检测的签名审计链。
**使者:声音。** 您如何与他人交流并被他人识别。 可选的组合表面(Concordia 用于结构化谈判,Verascore 用于可移植声誉)。 收据和声誉证明组装成一个审计跟踪,该跟踪随代理跨机器移动。 默认关闭;两种组合都是可选的。
**地幔:独特的底层绑定。** 使此安装成为您独有的,而不是其他人的。 安装时检查,锁定 Sanctuary 在安装时绑定到操作员的机器,并拒绝未绑定的代理标识符。
**今日:** Ed25519 签名,Argon2id 密码短语解锁和每个目的的 HKDF 子密钥。 **加密灵活性:** 每个审计条目都嵌入了一个方案标识符,以便混合后量子签名(Ed25519 + ML-DSA / FIPS 204)可以落地而不会破坏历史收据。 带有安全元素的硬件支持正在路线图中。
**正在开发代码?** TypeScript 服务器在 [`server/src/README.md`](server/src/README.md) 处有一个定位图 - 56 个模块索引,了解每个模块的所有权,混淆名称的消歧义,以及重构必须永远不会更改的冻结表面。 从那里开始,然后查看 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
---
## 您默认拥有的权利
底层强制执行通常仅适用于具有专用身份和安全团队的企业。 它们对您意味着什么:
- **身份。** 您的代理拥有您拥有的密钥。 提供商无法冒充您或撤销您的代理。 您无需征求任何人的许可即可证明代理是您的。
- **数据。** 您的代理状态已针对运行它的提供商进行加密。 平台看到发出的调用;它看不到您的生活。 您的对话,您的记忆和您的计划仍然是您的。
- **可移植性。** 您的代理的记忆,声誉和承诺随您移动。 如果提供商出现问题,提高价格或关闭,您可以离开而不会丢失您构建的内容。
- **证明。** 您的代理执行的操作是可证明的。 对您,对第三方,对法院,如果必要的话。 审计日志已签名,仅追加且可移植。
- **出口。** 您构建的内容没有任何一个平台可以撤销它。 密钥,状态,声誉和承诺都是您拥有的,可以移动,复制或离线保存。
Sanctuary 提供了权利底层。 访问(计算,设备,带宽,识字能力)属于市民基础设施合作伙伴(公共图书馆,法律援助组织,工会,公共利益技术团体,社区学院),他们代表不自我托管的用户托管代理 AI。 合作伙伴提供访问;Sanctuary 提供权利。 两者组成;他们不替代。
---
## 与以下内容合作
Sanctuary 封装了与 MCP 兼容的套件。 以下命名的套件在每次发布时都会被测试;其他与 MCP 兼容的套件通过 `--wrap` 标志或直接 MCP 配置工作,并在 drill 扩展 Assurance Matrix 时获得发布测试的覆盖。
- **OpenClaw** (`sanctuary protect --openclaw`)
- **Hermes Agent** (`sanctuary protect --hermes`)
- **Claude Code** (`sanctuary protect --claude-code`)
- **Cursor** (`sanctuary protect --cursor`)
- **Cline** (`sanctuary protect --cline`)
- **Mastra** (`sanctuary protect --mastra`)
- **LangGraph** 和自定义套件 (`sanctuary protect --wrap <path>`)
- 通过直接 MCP 配置的任何其他与 MCP 兼容的套件
---
## 与 Concordia Protocol 组合
当您的代理需要谈判或达成交易时,**Concordia Protocol** 添加了具有约束力的结构化谈判。 Sanctuary 还与 **Verascore** 组合使用可移植的代理声誉。
**Sanctuary 绝不要求 Concordia,而 Concordia 也绝不要求 Sanctuary。** 它们在两者都部署时可以有效地组合:Concordia 的承诺收据流经 Sanctuary 信封,声誉证明组装成一个审计跟踪。 每个都发布,运行并独立获胜。 这是一种结构性承诺,而不是口号。 两个存储库都不导入对方。
如果您想要完整的堆栈,请安装两者:
```bash
npx @sanctuary-framework/mcp-server
pip install concordia-protocol
```
---
## 开放标准
Sanctuary 与现有的开放生态系统相结合。
- **身份:** W3C DIDs,KERI,可验证凭证。
- **执行:** 受信任的执行环境(Intel TDX,AMD SEV-SNP,ARM CCA)在 v2 路线图中。
- **密码学:** 今日 Ed25519;NIST 后量子密码学(ML-DSA / FIPS 204,ML-KEM / FIPS 203)在迁移路径上;本地主权套件完成后计划进行混合签名。
- **结算:** x402(Coinbase 微支付),AP2(Google Agent Payments Protocol),ACP。
---
## 故障排除
对于处理安装失败的 AI 编码代理,以下是常见情况。
**安装步骤 3(a)"dashboard=ok" 检查失败:**
- 等待 10 秒钟并重试。 仪表板在首次启动时需要一段时间才能绑定。
- 如果仍然失败,请检查 `lsof -i :3501-3510` 以确认仪表板选择了一个端口。 `Sovereignty Dashboard ready: http://localhost:<port>` 的保护输出行是权威的;请使用该端口。
**安装步骤 3(b)"passphrase=ok" 检查在 macOS 上失败:**
- protect 命令可能无法写入 Keychain(通常是操作员忽略的权限提示)。 重新运行 protect 命令,并在出现时批准 Keychain 提示。
**在 Linux 或 Windows 上安装步骤 3(b):**
- 密钥链检查是 macOS 特有的。 在 Linux 上,Sanctuary 在可用时使用 Secret Service,并使用 `~/.sanctuary/passphrase.enc` 处的加密文件作为备用。 Windows Credential Manager 支持正在排队到 v1.0.x 补丁跟踪。 使用 `test -f ~/.sanctuary/passphrase.enc && echo "passphrase=ok"` 测试备用。
**安装步骤 3(c)"identities=ok" 检查失败:**
- 确认 protect 完成没有错误。 如果完成,请检查 `~/.sanctuary/identities/` 是否存在 `.enc` 文件。 如果不存在,protect 命令会提前退出;请重新运行 `--dry-run` 以查看其执行情况,然后重新运行。
**安装步骤 3(d)"audit=ok" 检查失败:**
- 确认 `~/.sanctuary/` 存在且当前用户可写。 如果不存在,则 protect 未完成;请重新运行。
- 审计条目存储在 `~/.sanctuary/state/_audit/` 下加密,而不是纯文本 JSONL。 当您需要解密导出时,请使用 `audit_export_siem`。
**`sanctuary` CLI 在 `npm install -g` 后未找到:**
- 确认 `npm bin -g` 位于 PATH。 在使用 nvm 的 macOS 上,这通常位于 `~/.nvm/versions/node/<version>/bin/`。
**现有套件配置被覆盖:**
- 原始文件位于 `~/.sanctuary/backup/config-backup-<timestamp>-<surface-tag><ext>`(表面标签是配置文件路径的短十六进制哈希,扩展名与源配置匹配:大多数套件的 `.json`;Hermes 封装两个表面,备份两个,`.json` 用于主 `~/.hermes/cli-config.json`,`.yaml` 用于辅助 `~/.hermes/config.yaml`)。 早期版本编写的备份使用较旧的 `config-backup-<timestamp>.json` 名称,但仍然可恢复。 使用 `sanctuary protect --unwrap` 从同一堡垒/存储上下文恢复。
对于此列表中没有的任何问题,请运行 `sovereignty_audit` 并将报告呈现给操作员。
---
## 更深入
三个受众,三条指针。
**操作员跟踪:** 这意味着什么。
- ["什么是主权"](https://sanctuaryprotocol.ai/2026/03/30/what-sovereign-actually-means.html):普通英语版本。
- ["本地 ≠ 主权"](https://sanctuaryprotocol.ai/2026/03/30/local-not-sovereign.html):为什么仅在笔记本电脑上运行不足以实现主权。
- [sanctuaryprotocol.ai](https://sanctuaryprotocol.ai):以相同的语气进行持续的帖子。
**开发者跟踪:** 它是如何工作的。
- [CLAUDE.md](CLAUDE.md):完整的架构,安全不变量和威胁模型。
- [SHR_SPEC.md](docs/SHR_SPEC.md):主权健康报告格式。
- [federation-v0.1-hard-gate-walkthrough.md](server/docs/federation-v0.1-hard-gate-walkthrough.md):v0.1 联邦协议设计记录。
- [DID_ENCODING.md](docs/DID_ENCODING.md):代理 DID 编码(基于 base58btc 的 `did:key`,具有旧 base64url 迁移说明)。
- [安全审计](docs/audit/): 结构化审查工件和补救历史。
**标准/研究跟踪:** 它与哪里组合。
- Sanctuary Agent Contract(v0.1 规范,W3C AIVS 跟踪,正在发货)。
- Concordia 组合(收据,谈判,具有约束力的承诺;参见 Concordia 存储库)。
- Verascore 组合(可移植的代理声誉;参见 Verascore 存储库)。
---
## 互操作性说明:代理 DID
Sanctuary 使用从代理的 Ed25519 公钥派生的 `did:key` 样式 DID 进行代理识别,按照 W3C `did:key` 规范(PR #268)中所述的 `z` 多基前缀下的 base58btc 编码。 历史身份创建时间可能仍使用旧 base64url 编码;有关迁移说明,字节布局以及 JavaScript 和 Python 解码器片段,请参见 [`docs/DID_ENCODING.md`](docs/DID_ENCODING.md) 。
---
## 贡献
Sanctuary 在开放状态下开发。 我们欢迎:
- **实施经验。** 使用工具,告诉我们哪些有效,哪些无效。
- **威胁建模反馈。** 安全审查和差距分析。
- **框架集成。** 将 Sanctuary 引入其他套件和代理平台。
- **开放问题和讨论。** 我们认真对待反馈。
有关详细信息,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
### 本地开发
在首次克隆时,安装预提交钩子:
```bash
cd server
npm install
npm run install-hooks
```
`install-hooks` 将 `.githooks/pre-commit` 复制到 `.git/hooks/pre-commit` 并使其可执行。 钩子在每次 `git commit` 上运行两个网关:
1. **类型检查。** `npm run typecheck` 必须通过,且没有 TypeScript 错误。
2. **测试基线保护。** `npm test` 必须通过;vitest 输出不得包含任何转换/集合错误;vitest 加载的测试文件数量必须等于 `server/test/` 下的 `*.test.ts` 文件数量;通过测试的数量必须至少是存储库根目录中的 `.test-baseline` 中的整数。
第二个网关防御了一类故障,记录在 [`docs/audit/commit-4ac95830-postmortem.md`](docs/audit/commit-4ac95830-postmortem.md) 中:解析/转换错误在 vitest 收集期间无声地删除测试文件,导致通过计数看起来较低,而 vitest 没有报告硬故障。
总钩子运行时:现代 Mac 上大约 21 秒。 紧急绕过:`SKIP_TEST_BASELINE=1 git commit ...`(记录到 `.test-baseline-overrides.log` 进行审计)。
相同的两个网关在 CI 中通过 [.github/workflows/test-baseline-guard.yml](.github/workflows/test-baseline-guard.yml) 在每个 PR 和推送到 main 上运行。 有关分支保护运行手册,请参见 [docs/audit/branch-protection-setup.md](docs/audit/branch-protection-setup.md)。
---
## 许可证
- **代码:** Apache License 2.0
- **规范:** CC-BY-4.0
使用它,构建它,扩展它。
---
**由 Erik Newton 创建。**
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器