@computesdk/miosa

中文文档
1.2.7发布于 2026/11/06MITTypeScriptESM + CJS构建来源已验证近 30 天下载 9438

计算SDK的MIOSA供应商 - 有快照、持续毕业和白色标签基础设施的硬件同位素的鞭炮微VM沙盒

中文使用文档
文档目录8 节
  1. 安装
  2. 使用量
  3. 配置
  4. 区域终点
  5. 懒惰创建
  6. 方法-终点绘图
  7. 测试
  8. 许可证

@computesdk/miosa (英语)

MIOSA 供应商 计算SDK 在MIOSA云上装有鞭炮微VM沙盒.

MIOSA sandbox可以毕业为持久桌面,在自定义域上服务公共预览URL,并通过白-标签控制平面使用外置备份.

安装

pnpm add @computesdk/miosa computesdk

使用量

import { createCompute } from 'computesdk';
import { miosa } from '@computesdk/miosa';

const compute = createCompute({
  defaultProvider: miosa({ apiKey: process.env.MIOSA_API_KEY }),
});

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

const result = await sandbox.runCommand('python3 -c "print(40 + 2)"');
console.log(result.stdout); // "42"

await sandbox.filesystem.writeFile('/workspace/app.js', 'console.log("hi")');
const url = await sandbox.getUrl({ port: 3000 }); // white-label-aware preview URL

await sandbox.destroy();

配置

miosa({
  apiKey: 'msk_…',                       // or MIOSA_API_KEY env var
  baseUrl: 'https://api.miosa.ai/api/v1', // default; point at your white-label control plane
  timeout: 300_000,                       // default sandbox lifetime (ms)
  runnerMode: true,                       // default; false (or MIOSA_RUNNER_MODE=0) keeps create/exec/destroy on the account API
  lazyCreate: false,                      // default; true (or MIOSA_LAZY_CREATE=1) defers create() to first use
});

Auth 是一个 MIOSA API 密钥 (msk_*页:1 Authorization: Bearer <key>。 。 。 .

区域终点

创建、执行和销毁到MIOSA的区域沙盒端点(run-<region>.miosa.ai)而不是账户 API,它从每个呼叫中去掉一个 hop. 其他一切(列表, getById, getUrl,文件系统,快照)都留在账户API上.

  • 有习惯 baseUrl (或 MIOSA_BASE_URL)区域端点默认关闭,因此一个白色标签或自托管的控制平面的密钥从未被发送到MIOSA的公共区域主机. 设定 runnerMode: true, (中文(简体) ), MIOSA_RUNNER_MODE=1 或一个 runnerBaseDomain 选择加入.
  • 创建区域端点不会起到作用,例如模板,快照或超过标准大小的形状会进入账户API,而沙盒会一直停留在那里.
  • 只有当区域端点在提供任何东西前拒绝创建时,创建才会被移动到账户API:无法到达,没有能力,或者还不知道密钥. 超时或重置连接被浮出水面是一种错误,而不是被发送到账户 API,因为请求可能已经发送,第二个创建可以提供第二个沙盒.

懒惰创建

与 lazyCreate 继续, create() 没有网络电话。 第一个 runCommand() 发送一个创建沙盒并运行命令的请求。 任何其他首通电话getInfo, (中文(简体) ), getUrl一个文件系统呼叫, getById,快照)首先创建了沙盒. 在第一次通话时,从创建表面出错。 第一个命令被跑者拒绝(空出,太大,超时出错)被报告为失败的命令,退出代码为127,没有产生出任何东西,使手柄未被使用. 第一个运行但无结果的命令(死线,产卵失败)被报告的方式相同,不再运行. 摧毁一个从未使用过的手柄 什么都不会.

sandboxId 在沙盒存在之前和之后,是整个手柄寿命的客户端占位符,因为框架在 create() 返回。 它只在创建它的过程内命名出沙盒,并且只被授予创建它的API密钥. 要存储或传递沙盒,读取真实的ID从 getInfo().id。该选项仅在使用区域终点时适用.

方法-终点绘图

计算SDK 方法MIOSA 结束点页:1
sandbox.create()POST /sandboxes等待服务器端,直到沙盒准备好命令并返回一个紧凑的响应; templateId → template_id, (中文(简体) ), snapshotId → snapshot_id, (中文(简体) ), envs → env, (中文(简体) ), timeout(ms) → timeout_sec
sandbox.getById()GET /sandboxes/:id404 → null
sandbox.list()GET /sandboxes
sandbox.destroy()DELETE /sandboxes/:id404 被视为已销毁
runCommand()POST /sandboxes/:id/exec{command, cwd, env, timeout(sec)}· ; background 包装 nohup … &
getInfo()(从沙盒记录)state → status, (中文(简体) ), timeout_sec → timeout(ms)
getUrl({port})POST /sandboxes/:id/expose服务器解决租户预览域名, 从未构建客户端
filesystem.readFile()GET /sandboxes/:id/fs/read?path=本地语言
filesystem.writeFile()POST /sandboxes/:id/fs/write本地语言
filesystem.mkdir()POST /sandboxes/:id/fs/mkdir土生土长, recursive: true
filesystem.readdir()GET /sandboxes/:id/fs?path=本地语言
filesystem.exists()POST /sandboxes/:id/exec (单位:千美元)test -e(中文(简体) )编 成 因为没有布尔存在终点
filesystem.remove()DELETE /sandboxes/:id/fs?path=本地语言
snapshot.create()POST /sandboxes/:id/snapshots当地的鞭炮检查站; name → comment; 等待快照准备恢复
snapshot.list({instanceId})GET /sandboxes/:id/snapshotsMIOSA快照是沙盒镜
instance.pause() 编号 : .resume()POST /sandboxes/:id/pause 编号 : resume同框暂停 : 内存、 进程和文件幸存; 仅限鞭炮运行时间( 也在 getInstance()(中文(简体) )

设定 runtime: "firecracker" 每个创建( e)sandbox.create({ runtime: "firecracker" })),提供方,或与 MIOSA_RUNTIME=firecracker 在MIOSA的"鞭炮跑道"上创建沙盒(runtime_profile: "standard"),它具有暂停/重现和快照,并且使背景进程在命令之间保持活性。 未设置, MIOSA 选择运行时间( 目前 SOMA, 没有这些 ) . provider.sandbox.pause 财务报告和审定财务报表 provider.snapshot.capabilities 声明如下: createOptions: { runtime: "firecracker" }。快照可以捕捉记忆和整个根部(/tmp, (中文(简体) ), /root, (中文(简体) ), /var 包含),所以背景过程在沙盒中持续运行,从中恢复;源持续运行. 快照需要几分钟才能准备好,然后 snapshot.create() 等着.

在计算SDK表面之外,同一API密钥解锁了完整的MIOSA API:沙盒叉/分机,暂停/再起,桌面毕业,部署,以及非主机输出.

测试

pnpm test        # unit tests (mocked fetch, no network)
pnpm typecheck   # tsc --noEmit

许可证

麻省理工学院

版本与发布记录

@computesdk/miosa 共发布 27 个版本,首次发布于 2026/08/19;过去 12 个月发布了 27 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.2.7latest2026/11/064 天前
1.2.62026/11/046 天前
1.2.52026/10/3011 天前
1.2.42026/10/2812 天前
1.2.32026/10/2813 天前
1.2.22026/10/2813 天前

关于 @computesdk/miosa 的常见问题

@computesdk/miosa 是什么?

计算SDK的MIOSA供应商 - 有快照、持续毕业和白色标签基础设施的硬件同位素的鞭炮微VM沙盒

如何安装 @computesdk/miosa?

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

@computesdk/miosa 支持 TypeScript 吗?

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

@computesdk/miosa 支持 ESM 还是 CommonJS?

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

@computesdk/miosa 可以商用吗?

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

@computesdk/miosa 的下载量有多少?

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

@computesdk/miosa 还在维护吗?

最新版本 1.2.7 发布于 2026/11/06(4 天前);至今共发布 27 个版本,其中过去 12 个月发布了 27 个;首次发布于 2026/08/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。