@swole-labs/cord-sdk

中文文档
0.2.0发布于 2026/11/02Apache-2.0TypeScriptES Module

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

中文使用文档
文档目录4 节
  1. 调用API
  2. 运行代理
  3. 接收人
  4. 其他语言

@swole-labs / cord-sdk

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

调用API

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 将一个页面列表移动到它的末尾。

运行代理

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 在集线器的登录域交换它们并保持令牌新鲜:

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 })
});

接收人

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 共发布 6 个版本,首次发布于 2026/11/02;过去 12 个月发布了 6 个版本。

版本发布日期距今
0.2.0latest2026/11/02今天
0.1.32026/11/021 天前
0.1.22026/11/021 天前
0.1.12026/11/021 天前
0.1.02026/11/021 天前
0.0.0-stage2026/11/021 天前

关于 @swole-labs/cord-sdk 的常见问题

@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 和提交记录判断。