# @idemcore/sdk 中文文档

规范地址：https://npmcn.com/package/%40idemcore/sdk/

版本：0\.1\.2
npm 元数据更新时间：2026-11-01T06:03:54.163Z
中文译文更新时间：2026-11-01T12:22:40.726Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40idemcore/sdk
原文对照：https://npmcn.com/package/%40idemcore/sdk/?lang=original
项目主页：https://idemcore.net/docs
源码仓库：https://github.com/idemcore/idemcore-js

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

- 包体积（解压后）：63.7 kB，26 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-11-01T04:25:29.732Z
- 最新版本发布：2026-11-01T05:58:39.755Z
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

Idemcore API客户端与签名收据和本地收据验证。零依赖关系;Node 18+、浏览器、worker。

## 安装

```sh
npm install @idemcore/sdk
```

也可以使用：`pnpm add @idemcore/sdk`、`yarn add @idemcore/sdk`、`bun add @idemcore/sdk`

## README

# @idemcore / sdk

的JavaScript / TypeScript客户端 [Idemcore](https://idemcore.net/) API。每一个聊天 答案带有签名收据，此包可以在本地检查该收据。

-   返回答案文本的聊天补全（纯文本或流文本） **和** 它的收据id。
-   获取收据及其公共令牌日志。
-   本地验证收据：Ed25519签名（L1），令牌日志链（L2），以及您的 根据收据的担保承诺（披露）迅速答复。
-   服务器端检查：远程验证，在独立构建（L3）上重播，审计导出。
-   零依赖关系, `fetch` +仅限WebCrypto。ESM与TypeScript类型。 Node 18+、Deno、Bun、Cloudflare Workers和其他边缘运行时。

解码是贪婪的： **温度固定在0**。任何其他温度 `InvalidRequestError` 在提出请求之前。

## 安装

```sh
npm install @idemcore/sdk
```

## 获取API密钥

1.  登录到控制台 [https://console.idemcore.net/#/login](https://console.idemcore.net/#/login) (公共 预览是免费的，有预览限制)。
2.  创建API密钥。它开始于 `ick_` 并且只显示一次。
3.  出口:

```sh
export IDEMCORE_API_KEY="ick_..."
```

在Node上，客户端读取 `IDEMCORE_API_KEY` (可选 `IDEMCORE_BASE_URL`， 默认的 `https://api.idemcore.net`）. 其他地方传递 `new Idemcore({ apiKey })`. 将密钥保存在服务器上：API不接受来自其他站点的浏览器调用（CORS）。 所以从你的后端或Worker调用它。

## 快速入门

```ts
import { Idemcore } from "@idemcore/sdk";

const client = new Idemcore();
const model = (await client.models())[0].id;   // pass a model id explicitly

const r = await client.chat("Name the three primary colours.", { model, maxTokens: 64 });
console.log(r.text);
console.log(r.receiptId);            // rcpt_...

// Verify on this machine: signature, token-log chain, and that the receipt
// commits to exactly this prompt and this answer.
const v = await client.verifyLocal(r);
console.log(v.ok);                   // true
console.log(v.levels);               // { L1, L2, disclosure }
```

`r.receipt` 是否有完整的签名收据 `r.salt` 的base64url盐 `hash_only` 接收（默认隐私模式）。有盐和文字的人都可以 检查承诺，所以在谈话中储存盐。

### 流媒体

```ts
const stream = client.chatStream("Write a haiku about receipts.", { model });
for await (const chunk of stream) process.stdout.write(chunk.delta);
const result = await stream.finalResult();   // receipt arrives with the last chunk
console.log("\n" + result.receiptId);
```

### 收据、日志和服务器端检查

```ts
await client.getReceipt("rcpt_...");                 // GET  /v1/receipts/{id}
const log = await client.getReceiptLog("rcpt_...");  // GET  /v1/receipts/{id}/log
await client.verifyRemote(r.receipt, { messages: r.messages, salt: r.salt, outputTokenIds: r.outputTokenIds });
await client.replayResult(r);                        // POST /v1/receipts/replay (L3)
await client.auditExport({ since: "2026-10-01", until: "2026-10-31" }); // NDJSON lines
await client.models();                               // GET  /v1/models
await client.keys();                                 // GET  /v1/keys (JWKS)
```

### 脱机验证，无需客户端

```ts
import { verifyReceipt } from "@idemcore/sdk";

const res = await verifyReceipt(receipt, { logText, messages, salt, outputTokenIds });
```

生成收据签名公钥被绑定(`DEFAULT_TRUSTED_KEYS`）; 通过 `keys: await client.keys()` 来使用活动键集。

## 错误

所有错误扩展 `IdemcoreError` 与 `status`， `type` 和 `message`： `AuthenticationError` (401), `PermissionDeniedError` (403), `NotFoundError` (404), `ConflictError` (409), `InvalidRequestError` (400/415), `RateLimitError` (429年, `.retryAfter`)， `InsufficientQuotaError` (429), `ServiceUnavailableError` (503), `InternalServerError` xx (5), `APIConnectionError` (网络)。重试GET请求 429/503 (`maxRetries`，默认值2)。聊天永远不会自动重试，所以重试永远不会 在你背后开了第二张收据。

## 使用OpenAI SDK代替

API是openai兼容的： `new OpenAI({ baseURL: "https://api.idemcore.net/v1", apiKey })` 可以，回执在回复中 `idemcore_receipt` 字段。这个包增加了 打印收据和本地验证。

## 许可证

apache - 2.0

## 常见问题

### @idemcore/sdk 是什么？

Idemcore API客户端与签名收据和本地收据验证。零依赖关系;Node 18\+、浏览器、worker。

### 如何安装 @idemcore/sdk？

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

### @idemcore/sdk 支持 TypeScript 吗？

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

### @idemcore/sdk 支持 ESM 还是 CommonJS？

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

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

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

### @idemcore/sdk 可以商用吗？

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

### @idemcore/sdk 还在维护吗？

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

