Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ output/
# IDE
.idea/
.vscode/
.codefuse/
*.swp
*.swo
*~
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

本文件记录各公开发布版本的变更。版本标识与发布日期与 [`release-manifest.json`](release-manifest.json) 及 [`governance/releases/`](governance/releases/) 中的发布记录保持一致;规范定版日期以 [`governance/decisions/`](governance/decisions/) 的决策记录为准。规范语义变更遵循 [GOVERNANCE.md](GOVERNANCE.md):ACT 2.1 已定版,非勘误性质的规范性变更须以新的协议版本发布。

## Repository update — 2026-08-24

- 将 TSD-CRD 作为 ACT 2.1 信任服务域的信用关联子篇集成到现有发布树。
- 在 `code/schemas/tsd-crd/reference-v1/` 发布非规范性 JSON Schema、OpenAPI、本地示例和固定测试向量,并保留既有 wire 契约与签名向量。
- 在 `code/samples/tsd-crd-reference/` 提供非生产 Reference Implementation、Sandbox、CLI、Demo、测试和基础一致性 Runner。
- 将 TSD-CRD 机器产物与参考实现接入根级导航、发布清单、仓库完整性检查和 `./tools/verify.sh`;通过不构成 ACT 2.1 全量 Conformance 或生产就绪声明。

## ACT 2.1 — 2026-08-14

- 发布 ADD、CID、PSD、TSD 四域规范,以及独立 A402 接入协议和 L1/L2/L3 场景指南。
Expand Down
9 changes: 9 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ International (CC-BY-4.0). Source code, JSON Schema, executable examples,
tests, and automation are licensed under Apache License 2.0, except where a
file or third-party notice states otherwise.

TSD-CRD Reference Implementation
Copyright (c) 2026 TSD-CRD contributors

The TSD-CRD machine profile, reference implementation, examples, tests, and
test vectors integrated under code/schemas/tsd-crd and
code/samples/tsd-crd-reference originate from the standalone TSD-CRD project
at commit fdf7006d97ae06645dce82400fac2dff964691f2 and are licensed under
Apache License 2.0.

Third-party dependencies, linked projects, referenced standards, and product
documentation remain subject to their respective terms. This NOTICE does not
grant rights to third-party names, trademarks, logos, or content.
12 changes: 11 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ ACT (Agentic Commerce Trust Protocol) is an open protocol for agentic commerce.
|---|---|
| Read ACT 2.1 | [Specification overview](docs/specification/overview.md) |
| Understand end-to-end flows | [Scenarios](docs/flows/scenarios.md) |
| Run the TSD-CRD credit-association reference flow | [TSD-CRD Reference Implementation](code/samples/tsd-crd-reference/README.md) |
| Run the safe local A402 sample | [Local A402 Sample](code/samples/local-a402/README.md) |
| Explore the interactive flow | [Web Showcase](code/web-client/alipay-ai-pay-showcase/README.md) |
| Integrate Alipay | [Alipay Reference Integration](integrations/alipay/README.md) |
Expand Down Expand Up @@ -47,9 +48,18 @@ npm --prefix code/web-client/alipay-ai-pay-showcase run demo

The local A402 sample performs no payment. The Showcase explains the protocol flow and does not constitute a payment implementation or conformance claim.

The TSD-CRD reference suite requires Node.js 22.18 or later:

```bash
npm --prefix code/samples/tsd-crd-reference run check
npm --prefix code/samples/tsd-crd-reference run demo
```

It uses Mock providers, in-memory state, temporary test keys, and the optional non-normative `reference-v1` machine profile. Passing its tests is not a claim of full ACT 2.1 conformance or production readiness.

For Alipay onboarding, credentials, sandbox operation, and current product behavior, use the [AIPay website](https://aipay.alipay.com/callpay) and its [official integration guide](https://aipay.alipay.com/docs/ai-receive/MACHINE_PAY.html).

Run all checks with:
Run all checks with Python 3, Node.js 22.18+, JDK 8+, and Maven 3.8+:

```bash
./tools/verify.sh
Expand Down
19 changes: 15 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ ACT(Agentic Commerce Trust Protocol)是面向智能体商业交互的开放
|---|---|
| 阅读 ACT 2.1 | [协议概览](docs/specification/overview.md) |
| 理解完整业务流程 | [典型场景](docs/flows/scenarios.md) |
| 运行 TSD-CRD 信用关联参考链路 | [TSD-CRD Reference Implementation](code/samples/tsd-crd-reference/README.md) |
| 本地运行安全的 A402 样例 | [Local A402 Sample](code/samples/local-a402/README.md) |
| 查看交互演示 | [Web Showcase](code/web-client/alipay-ai-pay-showcase/README.md) |
| 接入支付宝 | [Alipay Reference Integration](integrations/alipay/README.md) |
Expand All @@ -18,10 +19,11 @@ ACT(Agentic Commerce Trust Protocol)是面向智能体商业交互的开放

1. 用 2 分钟阅读[协议概览](docs/specification/overview.md),先区分 ADD、CID、PSD、TSD 与 A402;
2. 遇到缩写时查看[中英术语表](docs/glossary.md);
3. 运行 Local A402 Sample,观察 `402 → Payment-Needed → 伪 Proof 被拒绝` 的安全路径;
4. 需要真实成功链路时,选择[支付宝买方](integrations/alipay/buyer-agent/README.md)或[卖方 Java](integrations/alipay/seller-java/README.md),并在官网沙箱完成授权和支付。
3. 需要理解信用关联时,运行 TSD-CRD Reference Implementation,观察关联、映射、生命周期、查询授权和验证;
4. 运行 Local A402 Sample,观察 `402 → Payment-Needed → 伪 Proof 被拒绝` 的安全路径;
5. 需要真实支付成功链路时,选择[支付宝买方](integrations/alipay/buyer-agent/README.md)或[卖方 Java](integrations/alipay/seller-java/README.md),并在官网沙箱完成授权和支付。

本地样例有意不伪造支付成功。真实资源交付必须来自已经验真的支付证明,因此“本地安全失败路径”和“官网沙箱成功路径”是两个不同的接入阶段。
Local A402 Sample 有意不伪造支付成功。真实资源交付必须来自已经验真的支付证明,因此“本地安全失败路径”和“官网沙箱成功路径”是两个不同的接入阶段。TSD-CRD Reference Implementation 同样只使用 Mock 能力和测试密钥,不是生产信用服务。

ACT 2.1 的人类可读协议正文位于 `docs/specification/`。JSON Schema、fixtures 和测试位于 `code/schemas/`,用于帮助实现与验证,不增加协议正文未规定的要求。

Expand Down Expand Up @@ -68,6 +70,15 @@ npm --prefix code/samples/local-a402 run local

这个样例返回 `402 Payment Required`、解码 `Payment-Needed`,并验证伪造的 `Payment-Proof` 不会导致资源交付。它不连接支付产品,也不会执行支付。

运行 TSD-CRD 测试、基础一致性检查和本地 Demo 需要 Node.js 22.18 或更高版本:

```bash
npm --prefix code/samples/tsd-crd-reference run check
npm --prefix code/samples/tsd-crd-reference run demo
```

该套件采用非规范性的 `reference-v1` 机器 Profile。测试通过只证明仓库内参考路径,不等于 ACT 2.1 全量 Conformance 或生产就绪。

运行交互演示:

```bash
Expand All @@ -88,7 +99,7 @@ npm --prefix code/web-client/alipay-ai-pay-showcase run demo

## 质量检查

完整检查需要 Python 3、Node.js 18+、JDK 8+ 和 Maven 3.8+:
完整检查需要 Python 3、Node.js 22.18+、JDK 8+ 和 Maven 3.8+:

```bash
./tools/verify.sh
Expand Down
4 changes: 2 additions & 2 deletions code/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This directory contains executable and machine-readable assets. It does not defi

| Directory | Purpose |
|---|---|
| [`schemas/`](schemas/README.md) | JSON Schemas, fixtures, and implementation tests |
| [`samples/`](samples/README.md) | Small runnable protocol samples |
| [`schemas/`](schemas/README.md) | JSON Schemas, fixtures, examples, test vectors, and implementation tests |
| [`samples/`](samples/README.md) | Small runnable samples and the TSD-CRD reference implementation |
| [`web-client/`](web-client/README.md) | Interactive protocol demonstrations |

The ACT 2.1 text is under [`docs/specification/`](../docs/specification/README.md). Product-specific code belongs under [`integrations/`](../integrations/README.md).
4 changes: 4 additions & 0 deletions code/samples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,9 @@
Samples are small, runnable demonstrations of protocol behavior.

- [Local A402 Sample](local-a402/README.md)
- [TSD-CRD Reference Implementation](tsd-crd-reference/README.md): local
Sandbox, CLI, Demo, tests, and a basic `reference-v1` conformance runner

Product-specific implementations live under [`integrations/`](../../integrations/README.md), while user-interface demonstrations live under [`code/web-client/`](../web-client/README.md).

The TSD-CRD sample is non-normative and non-production. Its passing tests do not constitute ACT 2.1 full conformance or production trust evidence.
135 changes: 135 additions & 0 deletions code/samples/tsd-crd-reference/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# TSD-CRD Reference Implementation

ACT 2.1 信用关联子篇(TSD-CRD)的可执行参考实现、本地 Sandbox 和基础一致性测试套件。

本项目帮助协议实现者完成三件事:

1. 在本地跑通信用关联、映射、生命周期、查询授权和验证流程。
2. 查看 Reference Profile、标准报文和状态变化。
3. 使用固定测试向量检查自己的实现是否符合 `reference-v1` Profile 的基础约束。

> **状态:Reference Implementation / Non-normative / Non-production。**
> 项目只使用虚构身份、虚构信用数据和临时测试密钥;测试通过不等于 ACT 2.1 全量 Conformance 或生产就绪。

## 协议基线

当前实现基于 ACT 2.1 [信任服务域中的信用关联子篇](../../../docs/specification/trust-services.md),覆盖五个组件:

| 组件 | 作用 |
| --- | --- |
| `TSD-CRD-ASC` | 信用关联申请、确认和凭证签发 |
| `TSD-CRD-MAP` | 关联信用映射、来源标记和规则版本 |
| `TSD-CRD-LCM` | 凭证状态、暂停、恢复、撤销、过期和替换 |
| `TSD-CRD-AUTH` | 逐次授权和平台代理查询授权 |
| `TSD-CRD-VER` | 凭证级验证和关联信用信息验证 |

协议正文规定业务语义;[`code/schemas/tsd-crd/reference-v1`](../../schemas/tsd-crd/reference-v1/README.md) 补充一套非规范性机器可读格式;本目录提供其中一种可运行实现。三者冲突时,以 ACT 2.1 协议正文为准。

详细说明见[协议基线](docs/protocol-baseline.md)和 [Reference Profile v1](../../schemas/tsd-crd/reference-v1/README.md)。本目录由独立 TSD-CRD 仓库提交 `fdf7006d97ae06645dce82400fac2dff964691f2` 迁入;迁入时保留 `reference-v1` 的 wire 字段和固定签名向量。

## 两种主体确认方式

| 模式 | 关联主体如何确认 | 凭证签名层数 |
| --- | --- | --- |
| `ATTESTED_CONFIRMATION` | 可信确认服务完成主体身份核验和交互确认 | 一层:签发方外层签名 |
| `DIRECT_SIGNATURE` | 关联主体使用可信主体私钥签署关联关键内容 | 两层:主体内层签名 + 签发方外层签名 |

这里的“一层”和“两层”只指信用关联凭证的签名结构,不包括 HTTPS、回调验签或其他传输层保护。

协议不要求 Agent 提交公钥、使用 Agent 私钥签署挑战值或完成 `AgentControlProof`。基于 nonce 的 Agent 密钥持有证明属于可选安全扩展,不在 P0 默认流程和基础一致性测试范围内。当前仓库只有[设计说明](docs/agent-key-possession-extension.md),尚未实现对应代码。它不能替代主体确认或签发方签名。

## P0 范围

P0 包含:

- 五个协议组件的对象、字段和不变量校验。
- `ATTESTED_CONFIRMATION` 和 `DIRECT_SIGNATURE` 两种主体确认方式。
- 关联信用映射三要素及 `ASSOCIATED_CREDIT` 来源标记。
- `PENDING`、`ACTIVE`、`SUSPENDED`、`REVOKED`、`EXPIRED` 生命周期。
- 逐次授权和平台代理查询授权。
- 凭证级验证、关联信用信息验证、标准结果和原因码。
- 最小披露、状态查询和验证记录。
- 本地 Sandbox、HTTP 示例、CLI 和固定测试向量。
- 基础一致性测试 Runner。

P0 不包含:

- Agent 密钥持有证明扩展。
- 真实身份核验、真实信用数据或真实映射模型。
- 支付宝受理台真实接入。
- Agent 独立信用或独立声誉。
- 授信、支付、交易准入、反欺诈或反洗钱决策。
- 生产数据库、KMS/HSM、多租户和高可用部署。

## 快速开始

要求:

- Node.js `>= 22.18`
- npm(随 Node.js 提供)

项目没有第三方运行时或开发依赖,不需要执行 `npm install` 或构建命令。

```bash
# 运行全部测试
npm test

# 运行基础一致性测试
npm run conformance

# 跑通本地端到端 Demo
npm run demo

# 启动本地 Sandbox 服务
npm run start
```

Demo 默认使用 `ATTESTED_CONFIRMATION`,通过 Mock 主体确认服务完成身份核验和确认。所有身份、信用值、签名密钥和授权记录都是测试数据。

Sandbox 对验证请求、DIRECT 主体确认、查询授权及生命周期变更采用失败关闭策略:必须注入可信公钥解析器并完成身份—公钥绑定和 Ed25519 验签;未配置解析器、无法解析密钥或证明无效时直接拒绝。Demo 使用进程内临时测试密钥和显式测试身份绑定,生产实现必须替换为可信密钥目录或等效信任来源。

更多运行说明见[快速开始](docs/quickstart.md)。Sandbox 的接口以非规范性 [OpenAPI](../../schemas/tsd-crd/reference-v1/openapi/openapi.yaml) 为准,创建申请使用 `POST /v1/association-applications`。

## 目录结构

```text
act-protocol/
├── code/schemas/tsd-crd/reference-v1/
│ ├── schemas/ # JSON Schema
│ ├── openapi/ # HTTP API 描述
│ ├── examples/ # 标准报文示例
│ └── test-vectors/ # 正常/异常固定向量
└── code/samples/tsd-crd-reference/
├── src/
│ ├── core/ # 协议对象、规则和状态机
│ ├── application/ # 五个组件的用例编排
│ ├── adapters/ # 内存和 Mock 适配器
│ ├── http/ # 本地 Sandbox HTTP 入口
│ ├── cli/ # CLI 和 Demo 入口
│ └── conformance/ # 一致性测试 Runner
├── test/ # 单元和集成测试
├── examples/ # 可运行示例
└── docs/ # 架构、协议和安全说明
```

架构和依赖边界见 [架构说明](docs/architecture.md)。

## 非生产边界

本仓库是协议参考实现,不是信用服务产品。

- 不要输入真实姓名、证件号、账号、手机号或信用数据。
- 不要把测试密钥用于任何真实系统。
- 不要把 Demo 验证结果用于授信、交易准入或支付决策。
- 不要把内存存储、Mock 身份确认和固定映射规则用于生产。
- 生产实现必须自行补充密钥管理、数据保护、审计、合规、可用性和风险控制。

详见[安全模型](docs/security-model.md)和仓库的[安全政策](../../../SECURITY.md)。

## 参与贡献

提交代码前请阅读仓库的[贡献指南](../../../CONTRIBUTING.md)。安全问题请按[安全政策](../../../SECURITY.md)私下报告。

## 许可证

本目录代码适用仓库 [Apache License 2.0](../../../LICENSE)。协议文本、项目名称和商标可能适用独立规则;代码许可证不自动授予商标使用权。
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# 可选 Agent 密钥持有证明扩展设计说明

## 定位

本扩展用于证明请求方持有某个 Agent 公钥对应的私钥。它是参考实现的可选增强,不属于:

- ACT 2.1 TSD-CRD 信用关联子篇的必备对象。
- P0 默认流程。
- `ATTESTED_CONFIRMATION` 的前置条件。
- `DIRECT_SIGNATURE` 的主体内层签名。
- 基础一致性测试的通过条件。

当前仓库只保留本设计说明,尚未实现对应目录、Schema、API、CLI 和测试。默认 Demo、核心 API 和基础一致性 Runner 均不包含该能力。

## 能证明什么

扩展可以证明:

> 当前请求方能够使用待登记公钥对应的私钥,对本次挑战内容生成有效签名。

扩展不能证明:

- 持钥者是哪个真实主体。
- 该主体同意建立信用关联。
- 主体与 Agent 的关联角色有效。
- Agent 软件或运行环境可信。
- 当前请求在信用查询授权范围内。

## 一种参考流程

```text
提交 Agent 公钥和扩展上下文
↓
服务端返回一次性挑战值和过期时间
↓
Agent 私钥签署挑战载荷
↓
服务端使用已保存公钥验签
↓
原子消费挑战值并记录证明结果
```

nonce 只是本扩展的一种防重放实现。协议核心使用“防重放要素”这一语义,不依赖该字段名或流程。

## 与主体确认组合

启用扩展时,Agent 持钥证明和主体确认仍是独立判断:

```text
可选 Agent 持钥证明
+
ATTESTED_CONFIRMATION 或 DIRECT_SIGNATURE
+
签发方外层签名
```

扩展失败可以阻止采用该扩展的实现继续处理,但不能把扩展成功当作主体确认成功。

如果 Agent 相关密钥同时被用于 `DIRECT_SIGNATURE`,必须先证明该密钥与关联主体身份可信绑定,并明确允许主体确认用途。两种用途应使用不同签名域,避免签名跨用途复用。

## 一致性边界

基础 Runner 不检查该扩展。未来如实现,应单独维护:

- Schema 和示例。
- API 或 CLI。
- 正常、篡改、过期和重放测试向量。
- 版本和算法 Profile。

扩展测试报告必须与基础 TSD-CRD 一致性报告分开,避免使用者误以为该扩展是协议必选能力。
Loading
Loading