内容
<div align="center">
# 工具列表
<img src="https://img.shields.io/badge/TDM-Integration%20Kit-ff69b4?style=for-the-badge&logo=puzzle&logoColor=white" alt="TDM Integration Kit" />
**TDM DaOS 开发者集成工具**
[](./LICENSE)
[](https://modelcontextprotocol.io/)
[](https://github.com/ToDealMarket/tdm-integration-kit/stargazers)
[](https://www.typescriptlang.org/)
*用于集成 TDM DaOS 合约、支付和代理运行时接口的参考实现和复制粘贴构建块。*
[文档](https://todealmarket.com/docs) • [API 参考](https://todealmarket.com/docs/api) • [GitHub](https://github.com/todealmarket) • [X/Twitter](https://x.com/todealmarket)
<pre align="center">
████████╗ ██████╗ ███╗ ███╗
╚══██╔══╝ ██╔══██╗ ████╗ ████║
██║ ██║ ██║ ██╔████╔██║
██║ ██║ ██║ ██║╚██╔╝██║
██║ ██████╔╝ ██║ ╚═╝ ██║
╚═╝ ╚═════╝ ╚═╝ ╚═╝
TDM Integration Kit [V0.1.0]
DaOS Contracts + Client + MCP
模式: 本地优先 | 文档: todealmarket.com/docs
</pre>
</div>
---
## 这是什么?
用于集成 **TDM DaOS** (去中心化代理操作系统)的参考实现和复制粘贴构建块。该工具包提供:
- 一个薄的 **JavaScript 客户端** (`@tdm/client`)用于 CLI + 本地签名者工作流
- 一个独立的 **MCP 服务器** (`@tdm/mcp-server`)带有 19 个用于代理运行时的工具
- **示例** 用于 Express、Next.js、FastAPI 和 Telegram 机器人
规范的 TDM SDK (`npm install -g tdm-sdk`)是完整的运营商界面。该工具包记录了该 SDK 公开的集成合约,并为高级集成提供了参考构建块。
---
## 快速开始
```bash
npm install -g tdm-sdk
tdm connect
tdm status
```
从 [`examples`](./examples) 中选择一个示例或使用 [`@tdm/client`](./client)。
---
## 内部有什么?
| 组件 | 包 | 目的 |
|-----------|---------|---------|
| [`mcp-server/`](./mcp-server) | `@tdm/mcp-server` | 带有 19 个用于代理运行时的工具的 MCP stdio 服务器 |
| [`client/`](./client) | `@tdm/client` | 用于 CLI + 本地签名者的薄 JS 包装器 |
| [`examples/`](./examples) | -- | 复制粘贴集成示例 |
---
## MCP 服务器(`@tdm/mcp-server`)
一个独立的 MCP stdio 服务器,向代理运行时公开 TDM 会话状态、功能、插件、内存和预算上下文。
### 可用工具
| 工具 | 描述 |
|------|-------------|
| `tdm_get_session_state` | 读取本地钱包、余额、设置提示 |
| `tdm_capability_list` | 列出机器可读的功能 |
| `tdm_agent_status` | 代理准备就绪、运行时、存储、网关状态 |
| `tdm_agent_readiness` | 代理检查清单 |
| `tdm_agent_runtime_report` | 广泛的运行时界面 |
| `tdm_plugin_list` | 列出已注册的 contour 插件 |
| `tdm_plugin_get` | 读取单个插件卡 |
| `tdm_hub_catalog_list` | 列出 Hub 目录条目(可过滤、可分页) |
| `tdm_hub_install_plan` | 读取 Hub 安装计划(治理感知) |
| `tdm_contour_run_list` | 列出最近的 contour 运行元数据 |
| `tdm_contour_run_latest` | 读取最新的 contour 运行摘要 |
| `tdm_checkpoint_list` | 列出检查点元数据 |
| `tdm_budget_status` | 读取预算/范围状态 |
| `tdm_memory_health` | 读取 TDM 代理内存健康状况 |
| `tdm_memory_recall` | 搜索作用域内存记录 |
| `tdm_memory_save` | 保存作用域内存记录(带有编辑) |
| `tdm_memory_slots` | 列出固定的内存槽 |
| `tdm_memory_slot_update` | 创建/替换固定的内存槽 |
| `tdm_memory_forget` | 用审计墓碑内存记录 |
通过 CLI 设置:
```bash
tdm mcp # 编写 .mcp.json 指向 tdm mcp serve
```
---
## 示例
| 示例 | 堆栈 | 它演示什么 |
|---------|-------|---------------------|
| [`express-paywall/`](./examples/express-paywall) | Express.js | 带有 0.05 美元付费墙的 `chargeExpressHandler()` |
| [`nextjs-gated/`](./examples/nextjs-gated) | Next.js App Router | `chargeFetchHandler()` 在 POST 路由处理程序中 |
| [`python-fastapi/`](./examples/python-fastapi) | Python / FastAPI | 来自 Python 的本地签名者 HTTP 集成 |
| [`telegram-bot/`](./examples/telegram-bot) | Python | 子进程 `tdm make payable` 用于机器人工作流 |
---
## 选择正确的界面
| 界面 | 何时使用 |
|---------|-------------|
| **CLI** | 您的堆栈可以外壳;需要 `connect`, `make payable`, `balance`, `payout`, `unlock` |
| **本地签名者 HTTP** | 来自 Python、Go、Ruby、Node 的语言无关签名;无需密钥导出 |
| **MCP** | 运行时会说话 MCP;需要会话状态、插件、内存、预算上下文 |
| **SDK 直接** | `chargeFetchHandler()`, `chargeExpressHandler()`, `createGatewayClients()` 用于 JS 中的实时网关 |
---
## SDK 集成界面
对于 JavaScript/TypeScript 集成,公共 `tdm-sdk` 提供:
| 导出 | 目的 |
|--------|---------|
| `makePayable()` | 用支付钩子包装任何异步函数 |
| `chargeFetchHandler()` | 保护 fetch 处理程序(Cloudflare Workers, Deno) |
| `chargeExpressHandler()` | 保护 Express 路由 |
| `chargeHonoHandler()` | 保护 Hono 路由 |
| `createFetchHookClient()` | 实时网关授权 + 遥测钩子 |
| `createGatewayClients()` | 组合客户端:授权 + sessionTanks + 结账 |
| `createAuthorizeClient()` | 直接支付授权 |
| `createSessionTanksClient()` | 会话 gas 罐管理 |
| `createCheckoutClient()` | 买家面对的结账流程 |
---
## Vault 和代理绑定
代理隔离是 vault-first 的:
- `--vault <name>` 或 `TDM_VAULT` 选择活动的 vault
- 每个 vault 在 `~/.tdm/vaults/<name>/` 下都有自己的凭证
- 代理一次仅限于一个 vault
- MCP 遵循相同的解析顺序
```bash
tdm vault create photos --use
tdm agent spawn worker-1 --type DISCRETE --limit 5
tdm agent boot worker-1
```
---
## 可选路由策略
分层允许列表,用于更严格的出站控制:
```bash
tdm trust verify domain --target api.example.com --resource res_demo123
tdm allowlist add api.example.com --scope vault --vault seller-bot --verified
tdm allowlist check https://api.example.com/private/route --vault seller-bot
```
---
## 安全注意事项
- **此存储库中没有私钥** -- 这是参考代码和指南
- **需要 OS 密钥环** -- CLI 安全存储密钥
- **本地签名者仅限 localhost** -- 高级用户仅限
- **仔细检查本地自动化** -- 尤其是在使用高级签名流程时
- **保持钱包凭证在您的控制之下** -- 永远不要导出私钥
---
## 贡献
1. 复刻存储库
2. 创建功能分支
3. 更新文档
4. 添加示例
5. 提交拉取请求
---
## 文档
- [TDM 文档](https://todealmarket.com/docs)
- [SDK 参考](https://todealmarket.com/docs/api/sdk)
- [集成指南](https://todealmarket.com/docs/integration-kit)
- [代理支付指南](https://todealmarket.com/docs/agent-pay)
---
## 许可证
MIT 许可证 - 有关详细信息,请参见 [LICENSE](./LICENSE)
---
<div align="center">
**由 TDM 团队构建**
[网站](https://todealmarket.com) • [文档](https://todealmarket.com/docs) • [GitHub](https://github.com/todealmarket) • [X/Twitter](https://x.com/todealmarket)
</div>