# @computesdk/promigence 中文文档

规范地址：https://npmcn.com/package/%40computesdk/promigence/

版本：1\.0\.9
npm 元数据更新时间：2026-11-06T13:41:07.366Z
中文译文更新时间：2026-11-10T14:51:45.178Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：151 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：3 个
- 首次发布：2026-10-20T16:47:13.913Z
- 最新版本发布：2026-11-06T13:41:07.141Z
- 近 30 天下载量：7738（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

计算SDK的Promigence供应商 - AI代理产品级沙盒,文件系统和流出

## 安装

```sh
npm install @computesdk/promigence
```

也可以使用：`pnpm add @computesdk/promigence`、`yarn add @computesdk/promigence`、`bun add @computesdk/promigence`

## README

# @ computesdk/ 发音

计算SDK的Promigence提供商 - AI代理产品级沙盒,有文件系统和流出输出.

[承诺](https://www.promigence.ai/) 在沙盒里运行AI代理 和他们的密码, 每个人从一个快照 并运行在一个支出上限。 你用测试命令绘制的快照 只有在测试通过之后才会被存储 使用此软件包, 代码为 `computesdk` 运行在Promigence沙盒.

## 安装

```bash
npm install @computesdk/promigence
```

它需要节点.js 20或后.

## 设置

与普罗密会CLI签约. 它在这个机器上存储一个 API 密钥,当没有通过或设定时,提供者使用该密钥 :

```bash
npm install -g promigence
promigence signup    # or `promigence login` for an account you already have
```

在服务器或CI中,在环境中设置密钥:

```bash
export PROMIGENCE_API_KEY=prom_api_...
```

| 环境变量 | 含义 |
| --- | --- |
| `PROMIGENCE_API_KEY` | 您的 API 密钥, 当 `apiKey` 未通过 |
| `PROMIGENCE_SPEND_CAP` | 可选:最多一个沙盒可以花,美元,当 `spendCap` 未通过。 未设置, 您所在组织的默认上限适用 |
| `PROMIGENCE_API_URL` | 可选 : 要使用的 API, 当 `apiUrl` 未通过 |

## 快速启动

```typescript
import { compute } from 'computesdk';
import { promigence } from '@computesdk/promigence';

compute.setConfig({
  provider: promigence({ apiKey: process.env.PROMIGENCE_API_KEY }),
});

const sandbox = await compute.instances.create();

const result = await sandbox.runCommand(`python3 - <<'PY'
print("Hello from Promigence")
PY`);
console.log(result.stdout);

await sandbox.filesystem.writeFile('/tmp/hello.txt', 'hello');
console.log(await sandbox.filesystem.readFile('/tmp/hello.txt'));

await sandbox.destroy();
```

您也可以直接给提供者打电话:

```typescript
import { promigence } from '@computesdk/promigence';

const provider = promigence({}); // PROMIGENCE_API_KEY, or the key the CLI stored
const sandbox = await provider.instances.create({ templateId: 'my-app' }); // a snapshot you built, by its alias
```

## 配置

### 配置选项

```typescript
interface PromigenceConfig {
  /** Promigence API key - if not provided, uses PROMIGENCE_API_KEY, then the key `promigence login` stored */
  apiKey?: string;
  /** Promigence API URL - if not provided, uses PROMIGENCE_API_URL, then the default Promigence API */
  apiUrl?: string;
  /** The most one sandbox may spend, in US dollars - if not provided, uses PROMIGENCE_SPEND_CAP, then your organization's default cap */
  spendCap?: number;
  /** The snapshot create() starts from when it names none (id, alias or alias@commit); default: the built-in base snapshot */
  snapshot?: string;
  /** Sandbox lifetime in milliseconds when create() sets none; also the bound on a command that sets none */
  timeout?: number;
  /** Size of a sandbox created from an image: 'xsmall', 'small', 'medium', 'large', 'xlarge' or '2xlarge' */
  tier?: string;
  /** 'start' (the default) or 'compute' (long, memory-heavy jobs on the larger tiers) */
  optimizeFor?: 'start' | 'compute';
  /** A client from @promigence/sdk to use instead of one built from apiKey and apiUrl */
  client?: PromigenceClient;
}
```

供应商在发送任何信息前检查这个配置. 缺失的密钥,或错误的URL,花出上限或超时,是一个说要修复的东西的错误.

### `create()` 选项

| 选项 | 它会做什么 |
| --- | --- |
| `templateId` 编号 : `snapshotId` | 从头开始的快照:其id,其别名, `alias@commit`,或Promigence模板的名称(`promigence templates` (列入清单) |
| `image` | 容器图像而不是快照: 标签, 如 `python:3.12`,或 `name@sha256:...`。第一个 `create()` 从一个图像构建它的快照,每秒在它构建时计费;后来的则重新使用它. 与不同时 `templateId` 编号 : `snapshotId` |
| `tier`, (中文(简体) ), `registrySecret` | 与 `image`: 沙盒大小,以及持有登记证书的存储机密的名称 |
| `timeout` | 沙盒寿命以毫秒计 |
| `envs` | 每个命令通过此沙盒运行的环境变量 |
| `metadata` | 沙盒上的标签( 非字符串的值被存储为 JSON) |
| `allowInternetAccess: false` | 没有网络访问 |
| `allowHosts: [...]` | 只有这些目的地才能到达 |
| `spendCap`, (中文(简体) ), `optimizeFor` | 覆盖此沙盒的提供者配置 |
| `runtime`, (中文(简体) ), `name`,CPU和内存字段 | 被忽略: 一个沙盒有它的快照大小 |

## 特征

图标 `cwd`, (中文(简体) ), `env`, (中文(简体) ), `timeout` 财务报告和审定财务报表 `background`,而一个退出非零的返回 作为其正常结果 `exitCode`。通过 `onStdout` 或者说 `onStderr` 而输出在命令运行时到达。 一个超过它的命令 `timeout` 以124号出口码停止和报告.

文件系统 API 读取,写入,列表并删除文件,创建目录并检查路径是否存在. 沙盒被管理 `create`, (中文(简体) ), `getById`, (中文(简体) ), `list` (每个沙盒没有结束)和 `destroy`; 快照为 `snapshot.create(sandboxId)`, (中文(简体) ), `snapshot.list()` 财务报告和审定财务报表 `snapshot.delete(id)`每个沙盒都有一个支出上限:你的, `PROMIGENCE_SPEND_CAP`,或者你的组织违约.

### 支持的运行时间

内置的地基快照与Python,Node.js和Go相伴而来,外加git和常见的地基活化工具. 任何容器图像通过 `image`。所以,任何快照 你与Promigence CLI,通过 `templateId`。 。 。 .

### (原始内容存档于2018-03-21) (英语). The Promigence SDK understand

`sandbox.getInstance()` 返回时 `{ sandbox, client, config }`页:1 `Sandbox` 从 [`@promigence/sdk`](https://www.npmjs.com/package/@promigence/sdk),它使用的客户端和提供者配置。 当您需要SDK在计算SDK接口之外提供的东西时,请联系它 [类型脚本 SDK 文件](https://www.promigence.ai/docs/sdk) 说说看.

## 处理错误

一个Promigence错误随着操作命名被重新推出. 它保留了SDK的 `code` 财务报告和审定财务报表 `fix` (下一步要做什么)和原始错误为 `cause`; 每一个代码在 [缩写.ai/docs/errors](https://www.promigence.ai/docs/errors)。 。 。 .

```typescript
try {
  await promigence({}).instances.create();
} catch (error) {
  const { code, fix } = error as { code?: string; fix?: string };
  console.error(code, fix); // for example: auth, and how to pass a key
}
```

虽然 `fallbackOnError` 将永居其中, `compute.instances.create()` 将每个配置提供者的失败合并为一个错误。 过 `fallbackOnError: false` 改为 `compute.setConfig()` 以接收 Promigence 错误.

## 限制

-   还没有预览 URL, 所以 `getUrl()` 掷出. 要到达沙盒中的服务器,请从同一沙盒中的指令中调用,例如: `curl`。 。 。 .
-   `snapshot.create(sandboxId)` 抓取运行中的沙盒的快照, 它会继续运行; 从它开始新的沙盒 `create({ snapshotId })`保存整个沙盒,包括内存:任何地方的文件(`/tmp` 财务报告和审定财务报表 `/dev/shm` 以及它正在运行的程序。 只有命令开始于 `runCommand(cmd, { background: true })` 都结束了.
-   `sandbox.pause()` 停止计费并释放容量,直到 `sandbox.resume()`,使沙盒恢复原样:文件、内存和运行过程。 开始命令 `{ background: true }` 结束于暂停.
-   这里的模板是快照。 这个 `template` 方法抛出,以及 `templateId` 打开 `create()` 命名一个快照.
-   `runCommand(cmd, { background: true })` 立即使用退出代码 0 回答,而不收集命令的输出.
-   CPU 和内存字段 `create()` 被忽略。 一个沙盒有它的快照大小 `tier` 为创建于 `image`。 。 。 .
-   传递到 `create()` 应用通过它返回的沙盒运行的命令。 一个手柄来自 `getById()` 或者说 `list()` 没有,所以通过 `env` 与每个命令在那里.

## 支助

读取 [准确文件](https://www.promigence.ai/docs) 编辑 [错误代码](https://www.promigence.ai/docs/errors),或写入 [支持@ promigence.ai](mailto:support@promigence.ai)。计算SDK本身的问题将转到 [计算SDK问题](https://github.com/computesdk/computesdk/issues)。 。 。 .

## 许可证

麻省理工学院

## 常见问题

### @computesdk/promigence 是什么？

计算SDK的Promigence供应商 - AI代理产品级沙盒,文件系统和流出

### 如何安装 @computesdk/promigence？

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

### @computesdk/promigence 支持 TypeScript 吗？

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

### @computesdk/promigence 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @computesdk/promigence 需要什么版本的 Node\.js？

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

### @computesdk/promigence 可以商用吗？

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

### @computesdk/promigence 的下载量有多少？

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

### @computesdk/promigence 还在维护吗？

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

