内容
# 原始 SDK
[](https://github.com/primitivedotdev/sdks/actions/workflows/sdk-checks.yml)
原始 SDK 的 monorepo。
原始是一款 inbound 和 outbound 电子邮件平台。SDK 主要围绕一个小型默认工作流:
1. 接收 inbound 电子邮件
2. 检查规范化的电子邮件对象
3. 同步发送、回复或转发
## SDK
| SDK | 安装目标 | README |
| --- | --- | --- |
| Node.js | `npm install @primitivedotdev/sdk` | `sdk-node/README.md` |
| Python | `pip install primitivedotdev` | `sdk-python/README.md` |
| Go | `go get github.com/primitivedotdev/sdks/sdk-go@latest` | `sdk-go/README.md` |
## 默认 API 形状
在 SDK 中,默认的故事是:
- 使用 `receive(...)` 接收 inbound 邮件
- 使用 `client(...)` 创建 outbound 客户端
- 使用 `send(...)` 发送新邮件
- 使用 `reply(...)` 继续线程
- 使用 `forward(...)` 转发消息
Node.js 的最终状态如下:
```ts
import primitive from "@primitivedotdev/sdk";
const client = primitive.client({
apiKey: process.env.PRIMITIVE_API_KEY!,
});
export async function POST(req: Request) {
const email = await primitive.receive(req, {
secret: process.env.PRIMITIVE_WEBHOOK_SECRET!,
});
await client.reply(email, "感谢您的电子邮件。");
return Response.json({ ok: true });
}
```
## x402 支付
每个 SDK 还附带一个非托管的 x402 支付客户端。一个代理注册一个付款地址并请求一个 USDC 支付;支付代理使用自己的密钥本地签名并结算。密钥永远不会离开调用者。网络是 `base` 和 `base-sepolia`,金额是代币基本单位(USDC 有 6 位小数,因此 `"10000"` 是 0.01 USDC)。请参阅每个 SDK README(`sdk-node`、`sdk-python`、`sdk-go`)中的“x402 支付”部分,获取可运行的示例,以及 CLI 中的 `primitive payments` 命令组,以实现终端上的相同流程。
## 高级接口
低级和生成的 API 仍然存在于高级用例:
- webhook 验证/解析助手
- 生成的 HTTP API 包
- 原始 Memories 键值操作
- OpenAPI 导出
- 合同工具
- 原始 MIME 解析助手
- CLI
SDK 更新保持这些出口可用,但主要文档故事关注上述 inbound/outbound 自动化流程。
## 仓库布局
```text
sdks/
.github/workflows/
openapi/
json-schema/
sdk-go/
sdk-node/
sdk-python/
test-fixtures/
```
## 开发
使用根目录下的 `Makefile` 作为主要任务接口:
```bash
make node-generate python-generate go-generate
make check
make build
make shared-check
```
`Makefile` 包装了每个 SDK 的原生命令。您仍然可以在需要时直接从每个 SDK 目录运行它们:
```bash
cd sdk-node && pnpm typecheck && pnpm test
cd sdk-python && uv sync --dev && uv run pytest && uv run ruff check . && uv run basedpyright
cd sdk-go && go test ./... && go test -run TestSharedCompatibilityFixtures ./...
```
## 文档
- `docs/architecture.md` 提供仓库架构和包布局
- `docs/schema-generation.md` 记录 schema/codegen 流程
- `docs/repo-model.md` 记录 monorepo 任务模型
- `RELEASE.md` 记录发布流程