# @avallon-labs/sdk 中文文档

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

版本：66\.5\.0
npm 元数据更新时间：2026-11-06T21:13:07.713Z
中文译文更新时间：2026-11-07T07:36:21.614Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：2.1 MB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- peer 依赖：swr ^2\.0\.0，react ^18\.0\.0 \|\| ^19\.0\.0
- 首次发布：2026-01-29T22:30:36.920Z
- 最新版本发布：2026-11-06T21:13:07.519Z
- 近 30 天下载量：11166（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：535（近 12 个月 535 个）

## 中文简介

Avallon API SDK - 从 OpenAPI 生成

## 安装

```sh
npm install @avallon-labs/sdk
```

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

## README

# @avallon-labs/ sdk (英语)

Avallon API 的 SDK 类型脚本 。 从 OpenAPI 自动生成, 带有自定义认证工具 .

## 安装

```bash
npm install @avallon-labs/sdk
```

对于反应/ SWR 钩:

```bash
npm install @avallon-labs/sdk swr react
```

## 使用量

### 配置

```typescript
import { configure } from "@avallon-labs/sdk";

configure({
  baseUrl: "https://api.avallon.ai",
  apiKey: "your-api-key",
  // OR for user auth:
  getAccessToken: () => localStorage.getItem("access_token"),
});
```

### 响应信封

端点返回 API `{ data, message }` 邮包-有效载荷 开始 `data`添加 `meta.total` 这样你就可以在没有电话的情况下拨号 第二个请求。 (204个终点) `getPartnerJwks` 返回 a 符合标准的JWKS,因此也没有封装. )

```typescript
const { data, meta } = await listArtifacts({ count: 25, offset: 50 });
console.log(`showing ${data.length} of ${meta.total}`);
```

### API 调用( 程序获取)

```typescript
import { listVoiceAgents, createVoiceAgent } from "@avallon-labs/sdk";

// List agents
const { data } = await listVoiceAgents();
console.log(data.agents);

// Create agent
const { data: created } = await createVoiceAgent({ agent_name: "My Agent" });
```

### API 呼叫( 反应 SWR Hooks)

```typescript
import { useListVoiceAgents, useCreateVoiceAgent } from "@avallon-labs/sdk";

function AgentsList() {
  const { data, error, isLoading } = useListVoiceAgents();

  if (isLoading) return <Spinner />;
  if (error) return <Error message={error.message} />;

  return <ul>{data.data.agents.map(a => <li key={a.id}>{a.agent_name}</li>)}</ul>;
}

function CreateAgent() {
  const { trigger, isMutating } = useCreateVoiceAgent();

  return (
    <button onClick={() => trigger({ agent_name: "New Agent" })} disabled={isMutating}>
      Create
    </button>
  );
}
```

### OAuth 流量

```typescript
import { startOAuthFlow, getStoredVerifier, clearStoredVerifier, signIn } from "@avallon-labs/sdk";

// 1. Start OAuth (redirects user)
const { url } = await startOAuthFlow({
  provider: "google",
  redirectUri: "https://app.example.com/callback",
});
window.location.href = url;

// 2. After redirect, exchange code for tokens
const verifier = getStoredVerifier();
const response = await signIn({
  type: "oauth",
  code: new URLSearchParams(location.search).get("code"),
  verifier,
});
clearStoredVerifier();

// 3. Store tokens and configure SDK
const { access_token, refresh_token, expires_at } = response.data;
localStorage.setItem("access_token", access_token);
configure({ getAccessToken: () => localStorage.getItem("access_token") });
```

### 处理错误

```typescript
import { AvallonError } from "@avallon-labs/sdk";

try {
  await createVoiceAgent({ agent_name: "" });
} catch (e) {
  if (e instanceof AvallonError) {
    if (e.isValidationError()) {
      console.log("Validation errors:", e.errors);
    } else if (e.isUnauthorized()) {
      // Redirect to login
    }
  }
}
```

## 发展

```bash
# Regenerate SDK from OpenAPI (from repo root)
npm run sdk:gen

# Build
npm run build
```

## 结构

```
src/           # Handwritten code
  index.ts     # Main exports
  fetcher.ts   # Fetch wrapper with auth
  auth.ts      # OAuth PKCE utilities

generated/     # Auto-generated (do not edit)
  endpoints/   # API functions + SWR hooks
  models/      # Request/response types
```

## 常见问题

### @avallon-labs/sdk 是什么？

Avallon API SDK - 从 OpenAPI 生成

### 如何安装 @avallon-labs/sdk？

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

### @avallon-labs/sdk 支持 TypeScript 吗？

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

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

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

### @avallon-labs/sdk 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

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

@avallon-labs/sdk 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @avallon-labs/sdk 的下载量有多少？

根据 npm 官方下载统计，@avallon-labs/sdk 在 2026/10/07 – 2026/11/05 这 30 天内被下载 11,166 次，日均约 372 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

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

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

