@delta-infra/cli 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -179,6 +179,9 @@ delta-cli auth status
179
179
 
180
180
  ```bash
181
181
  # 创建带 GPU 的 sandbox(--max-life 默认 30 分钟,长任务请调高)
182
+ # ⚠️ 资源语义:`--memory` 是容器 CPU 内存【总量】(每沙箱一份);`--gpu-mem` 是【每张卡】的显存(MiB)——
183
+ # `--gpu 2 --gpu-mem 8000` = 每卡 8000MiB、总显存 16000MiB(内部 OpenSandbox/HAMi 后端直接写入 HAMi 每卡注解;
184
+ # 注意云端 runpod 后端将 --gpu-mem 视为总显存÷卡数)。单卡显存上限可查 `sandbox resources`(memory_mib)。
182
185
  delta-cli sandbox create \
183
186
  --image image.yangtzeailab.com/opensandbox/pytorch-cuda13:latest \
184
187
  --cpu 4 --memory 16Gi --gpu 1 \
package/checksums.txt CHANGED
@@ -1,5 +1,5 @@
1
- a4bb52f27a45aec9c8b763eaf1ae1e0980769b563a18a2471e5ac1d37525197b delta-cli-darwin-amd64.tar.gz
2
- aa12112e2a565cf0f50c4005768522b3f6bcc984df5e3a81443af0d44e1e4ed8 delta-cli-darwin-arm64.tar.gz
3
- 45275c98fae250ba8e41bbb5bcb8b2651b7ad21dacc98ba5f2c35f6df94c3071 delta-cli-linux-amd64.tar.gz
4
- f33700d504d5f2c080ff6da966c14e6724b930eec084b84b8b4c18fe94e4f37a delta-cli-linux-arm64.tar.gz
5
- 0cf169d20dcf888009dab3d0e6ea5ac4edc328a47586092e40a43c7dfdda7718 delta-cli-windows-amd64.zip
1
+ bce2a2488cefbb1ebb0e5fd9b316b6967d32f343b04e735efb19148780bad2ba delta-cli-darwin-amd64.tar.gz
2
+ e71754f6125859e6cd78eceebf2ef6e7e52edd233489e9f6cd891fdd432085ed delta-cli-darwin-arm64.tar.gz
3
+ 18b9fd53c6424f70bcd61b64d1e79e86c994b037da44f5817f72e0adf4877042 delta-cli-linux-amd64.tar.gz
4
+ d0e5714929b3352984e14b35c78e204fe801ee839295ec94bdd5ddb70cbe7b41 delta-cli-linux-arm64.tar.gz
5
+ 2c742ace51b889ad61119a608fc6f6da60bdda0b7fe701048016b27139237fff delta-cli-windows-amd64.zip
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-infra/cli",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "Delta Agent Cloud CLI for sandbox compute and science tools.",
5
5
  "bin": {
6
6
  "delta-cli": "scripts/run.js"
@@ -138,12 +138,12 @@ required_outputs:
138
138
  | 用户目标 | 命令 |
139
139
  |---------|------|
140
140
  | **发现** | |
141
- | 查看可用镜像(镜像名) | `sandbox images` |
141
+ | 查看可用镜像(镜像名) | `sandbox images` — 返回每条的 `image_name`(对外镜像名)/`tags`(用途标签)/`description`(简短镜像简介);**镜像较多时按 `description` + `tags` 选匹配任务的镜像**(如 Pytorch→`PyTorch CUDA13 (GPU)`、vLLM→`vLLM …`、需 juicefs 存储→名称含 `(juicefs)`) |
142
142
  | 查看剩余可申请资源 | `sandbox resources` — 按算力分组返回 GPU/显存/核心可用量:`compute_sources[].source` 为 `private`(私有算力)或 `third_party`(第三方算力);`gpu_types` 结构随分组不同(private 含 `vgpu`/`core`/`memory_mib`,third_party 含 `gpu_name`/`total_gpu_num`/`idle_gpu_num`)。算力后端为内部概念,自动选择,无需指定 |
143
143
  | 获取资源推荐 | `sandbox recommend --cpu N --memory XGi [--gpu N] [--gpu-mem N]`(`--memory`/`--gpu-mem` 支持 g/m/G/M 格式,如 `1G`/`512M`,CLI 自动转换为 Gi/Mi) |
144
144
  | 列出当前用户的 sandbox | `sandbox list [--status <running/finished/killed/error>] [--start-time <ISO8601>] [--end-time <ISO8601>] [--sandbox-id <id>] [--days N]` |
145
145
  | **生命周期** | |
146
- | 创建 sandbox | `sandbox create --image-name <镜像名> [--cpu N --memory XGi --gpu N --gpu-mem N --gpu-type <型号> --max-life M]`;`--memory`/`--gpu-mem` 支持 g/m/G/M 格式(如 `1G`/`512M`,小写亦可),CLI 自动转换为服务端接受的 `Gi`/`Mi` 单位;`--image-name` 用镜像名(`sandbox images` 返回的 `image_name` 字段,如 `"PyTorch CUDA13 (GPU)"`),底层镜像标识对用户隐藏;`--gpu-type` 指定 GPU 型号(如 `"RTX 4090"`、`H100`),服务端映射为 HAMi use-gputype 注解按型号调度,可选型号查 `sandbox resources`(`third_party` 分组 `gpu_types[].gpu_name`),不传则自动调度;不希望被自动清理时加 `--no-auto-cleanup`(仅显式 kill/finish 可销毁);**单沙箱资源上限** cpu ≤ 512 / memory ≤ 1024Gi / gpu ≤ 64 / gpuMem ≤ 1024Gi,超出快速报错不挂起 |
146
+ | 创建 sandbox | `sandbox create --image-name <镜像名> [--cpu N --memory XGi --gpu N --gpu-mem N --gpu-type <型号> --max-life M]`;`--memory`/`--gpu-mem` 支持 g/m/G/M 格式(如 `1G`/`512M`,小写亦可),CLI 自动转换为服务端接受的 `Gi`/`Mi` 单位;`--image-name` 用镜像名(`sandbox images` 返回的 `image_name` 字段,如 `"PyTorch CUDA13 (GPU)"`),底层镜像标识对用户隐藏;`--gpu-type` 指定 GPU 型号(如 `"RTX 4090"`、`H100`),可选型号查 `sandbox resources` 输出的 `gpu_types[].gpu_name`,不传则自动调度;不希望被自动清理时加 `--no-auto-cleanup`(仅显式 kill/finish 可销毁);**单沙箱资源上限** cpu ≤ 512 / memory ≤ 1024Gi / gpu ≤ 64 / gpuMem ≤ 1024Gi,超出快速报错不挂起 |
147
147
  | 连接 sandbox | `sandbox connect <id>` |
148
148
  | 查看状态 | `sandbox status <id>` |
149
149
  | 完成 sandbox | `sandbox finish <id> [--results '{...}']` |
@@ -185,8 +185,8 @@ required_outputs:
185
185
  - `delta-cli sandbox recommend --cpu N --memory XGi [--gpu N]` — 资源配置推荐
186
186
  2. **创建**:`delta-cli sandbox create --image-name <镜像名> --cpu 4 --memory 16Gi --gpu 1 --gpu-mem 8000 --max-life 120`。**返回的 JSON 信封中是 `data.sandbox_id`,不是 `data.id`;后续所有命令必须使用这个真实的 `sandbox_id`。**(创建后 sandbox 立即可用,无需额外连接)。**响应会回显请求的镜像名/resource(服务端未返回的字段由 CLI 用请求值补齐,服务端返回值优先),可直接核对一遍资源配置,无需额外调 status。**(镜像回显为显示名;`provider` 为内部概念,不再回显)。**同一次任务若已有 `sandbox_id`,禁止再次 create,必须优先复用。**
187
187
  - --max-life 指定 sandbox 最大存活时间(分钟),默认 30。长任务请调高,确保 sandbox 在命令执行期间不被回收。
188
- - **`--gpu-mem`(单位 MiB)要匹配实际运行的模型**:模型参数量/精度越大所需显存越大,大模型塞进过小显存会直接 OOM。示例中的 8000(8GiB)只适配小模型,跑 7B/9B/13B 前先评估显存需求并适当调大。
189
- - **`--gpu-type <型号>`(可选)指定 GPU 型号**:如 `"RTX 4090"`、`H100`,服务端映射为 HAMi use-gputype 注解,将 pod 调度到匹配型号的 GPU 上。可用 `sandbox resources` 查看可选型号(`third_party` 分组的 `gpu_types[].gpu_name`)。仅在用户明确要求特定型号时使用;不传则由系统自动调度。
188
+ - **`--gpu-mem`(单位 MiB)要匹配实际运行的模型**:模型参数量/精度越大所需显存越大,大模型塞进过小显存会直接 OOM。示例中的 8000(8GiB)只适配小模型,跑 7B/9B/13B 前先评估显存需求并适当调大。**语义:`--gpu-mem` 是【每张卡】的显存 MiB(`--gpu 2 --gpu-mem 8000` = 每卡 8000MiB、总 16000MiB);`--memory` 是容器 CPU 内存总量。**
189
+ - **`--gpu-type <型号>`(可选)指定 GPU 型号**:如 `"RTX 4090"`、`H100`,将任务调度到该型号 GPU 上;可用 `sandbox resources` 查看可选型号(`gpu_types[].gpu_name`)。仅在用户明确要求特定型号时使用;不传则由系统自动调度。
190
190
  - `--no-auto-cleanup`:加此 flag 后该 sandbox **不会被自动清理**(服务端超时回收 + 本地周期 cleanup_stale 均跳过),只能通过显式 `sandbox kill`/`finish` 销毁。仅当任务确实需要跨越周期清理长期存活时才使用,任务结束后必须主动销毁,避免资源泄漏。
191
191
  - **禁止在 create 成功后反复调用 `sandbox status` 轮询**。`sandbox create` 返回时 sandbox 已经就绪,直接用它返回的 `data.sandbox_id` 执行 `write`/`run` 即可。多余的轮询会增加工具调用次数且没有任何收益。
192
192
  3. **写入代码/数据**: