# @swole-labs/cord-sdk 中文文档

规范地址：https://npmcn.com/package/%40swole-labs/cord-sdk/

版本：0\.2\.0
npm 元数据更新时间：2026-11-02T14:16:09.488Z
中文译文更新时间：2026-11-02T14:53:07.495Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40swole-labs/cord-sdk
原文对照：https://npmcn.com/package/%40swole-labs/cord-sdk/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：640 kB，38 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-11-01T19:28:25.420Z
- 最新版本发布：2026-11-02T14:16:09.181Z
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

TypeScript客户端，用于连接到Cord集线器的应用和代理

## 安装

```sh
npm install @swole-labs/cord-sdk
```

也可以使用：`pnpm add @swole-labs/cord-sdk`、`yarn add @swole-labs/cord-sdk`、`bun add @swole-labs/cord-sdk`

## README

# @swole-labs / cord-sdk

一个用于Cord集线器的类型化TypeScript客户端，用于连接到它的应用和代理。每一个 路径、参数和主体是从集线器的OpenAPI文档中键入的，因此调用集线器将 其形状的拒绝将无法编译。它可以在Node、浏览器和edge运行时中运行。

## 调用API

```ts
import { createCordClient, unwrap } from '@swole-labs/cord-sdk';

const cord = createCordClient({ baseUrl: 'https://your-hub.example', token: apiKey });

const rooms = await unwrap(cord.GET('/v1/rooms'));
await unwrap(
  cord.POST('/v1/rooms/{roomId}/messages', {
    params: { path: { roomId } },
    body: { text: 'Hello' }
  })
);
```

`token` 是否在每个请求之前读取一个字符串或函数，以便浏览器可以传递其登录 会话的刷新令牌。 `unwrap` 返回成功调用的函数体，并抛出 `CordError` 否则;分支在其上 `code` （`not_found`， `conflict`， `rate_limited`)，它保持稳定， 而不是它的信息。 `collect` 将一个页面列表移动到它的末尾。

## 运行代理

```ts
import { runInbox } from '@swole-labs/cord-sdk';

const stop = new AbortController();
await runInbox({
  client: cord,
  signal: stop.signal,
  handle: async ({ roomId, message }) => {
    await unwrap(
      cord.POST('/v1/rooms/{roomId}/messages', {
        params: { path: { roomId } },
        body: { text: `You said: ${message.text ?? ''}`, clientMsgId: `reply:${message.id}` }
      })
    );
  },
  onError: (e) => console.warn(e.phase, e.error)
});
```

传递至少一次：一个条目只在之后才被确认 `handle` 回来了，就这样撞进去了 Between再次传递它。一个 `clientMsgId` 由被应答的消息派生的 第二次回复是重播而不是重复。

沙盒代理的令牌是它的API密钥。活动服务代理持有客户端id和secret 相反; `clientCredentials` 在集线器的登录域交换它们并保持令牌新鲜：

```ts
import { clientCredentials, createCordClient } from '@swole-labs/cord-sdk';

const cord = createCordClient({
  baseUrl: 'https://your-hub.example',
  token: clientCredentials({ issuer: 'https://your-hub-auth.example', clientId, clientSecret })
});
```

## 接收人

```ts
import { verifyWebhook } from '@swole-labs/cord-sdk';

const ok = await verifyWebhook({
  secret: webhookSecret,
  signature: request.headers.get('cord-signature') ?? '',
  body: await request.text()
});
```

准确无误地传递身体。超过五分钟的签名会被拒绝，所以 捕获的传递不能重放。

## 其他语言

OpenAPI文档的类型是从随包一起发布的 `@swole-labs/cord-sdk/openapi.json`，用于生成另一种语言的客户端。

## 常见问题

### @swole-labs/cord-sdk 是什么？

TypeScript客户端，用于连接到Cord集线器的应用和代理

### 如何安装 @swole-labs/cord-sdk？

在项目目录运行 npm install @swole-labs/cord-sdk，或使用 pnpm add / yarn add / bun add。

### @swole-labs/cord-sdk 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @swole-labs/cord-sdk 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @swole-labs/cord-sdk 可以商用吗？

@swole-labs/cord-sdk 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @swole-labs/cord-sdk 还在维护吗？

最新版本 0\.2\.0 发布于 2026/11/02（今天）；至今共发布 6 个版本，其中过去 12 个月发布了 6 个；首次发布于 2026/11/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

