@delta-infra/cli 1.0.21 → 1.0.23

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
@@ -184,8 +184,10 @@ delta-cli sandbox kill <sandbox_id>
184
184
  | `delta-cli sandbox replace <id> --path <path> --old <文本> --new <文本>` | 替换内容 |
185
185
  | `delta-cli sandbox chmod <id> --path <path> --mode <八进制>` | 修改权限 |
186
186
  | `delta-cli sandbox rm <id> --path <path>` | 删除文件 |
187
+ | `delta-cli sandbox rmdir <id> --path <路径>` | 递归删除目录 |
187
188
  | `delta-cli sandbox mkdir <id> --path <路径>` | 创建目录 |
188
189
  | `delta-cli sandbox search <id> --path <根目录> --pattern <glob>` | 搜索文件 |
190
+ | `delta-cli sandbox upload <id> --source <本地目录> --target <沙箱路径>` | 上传目录(tar.gz + 自动解压) |
189
191
 
190
192
  ## 输出格式
191
193
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-infra/cli",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Delta Sandbox CLI",
5
5
  "bin": {
6
6
  "delta-cli": "scripts/run.js"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: delta-sandbox
3
- version: 1.0.10
3
+ version: 1.1.0
4
4
  description: "通过 Delta Sandbox HTTP API 在 Linux 容器中运行任意计算任务。适用于训练、推理、编译、数据处理等场景。支持 Python / Node.js / Go / Java / Rust 等语言。认证/配置/权限错误转 delta-shared。"
5
5
  metadata:
6
6
  requires:
@@ -88,15 +88,18 @@ metadata:
88
88
  | **文件操作** | |
89
89
  | 读取文件 | `sandbox read <id> --path <path>` |
90
90
  | 写入文件 | `sandbox write <id> --path <path> --source <文件名>`(推荐)|
91
- | 批量写入 | `sandbox write-multiple <id> --entry <src=path> [--entry ...]` |
91
+ | 批量写入 | `sandbox write-multiple <id> --entry <远程路径>=<本地路径> [--entry ...]` |
92
+ | 上传目录 | `sandbox upload <id> --source <本地目录> --target <沙箱路径>` |
92
93
  | 列出目录 | `sandbox ls <id> --path <路径>`(默认 `.`)|
93
94
  | 文件元数据 | `sandbox stat <id> --path <path>` |
94
95
  | 移动/重命名 | `sandbox mv <id> --entry <src=dest> [--entry ...]` |
95
96
  | 替换内容 | `sandbox replace <id> --path <path> --old <文本> --new <文本>` |
96
97
  | 修改权限 | `sandbox chmod <id> --path <path> --mode <八进制>` |
97
98
  | 删除文件 | `sandbox rm <id> --path <path> [--path ...]` |
99
+ | 删除目录 | `sandbox rmdir <id> --path <路径> [--path ...]` |
98
100
  | 创建目录 | `sandbox mkdir <id> --path <路径> [--path ...]` |
99
101
  | 搜索文件 | `sandbox search <id> --path <根目录> --pattern <glob>` |
102
+ | 上传目录 | `sandbox upload <id> --source <本地目录> --target <沙箱路径>` |
100
103
 
101
104
  ## 完整生命周期
102
105
 
@@ -107,7 +110,12 @@ metadata:
107
110
  2. **创建**:`delta-cli sandbox create --image <img> --cpu 4 --memory 16Gi --gpu 1 --gpu-mem 8000 --max-life 120`(创建后 sandbox 立即可用,无需额外连接)。**同一次任务若已有 `sandbox_id`,禁止再次 create,必须优先复用。**
108
111
  - --max-life 指定 sandbox 最大存活时间(分钟),默认 30。长任务请调高,确保 sandbox 在命令执行期间不被回收。
109
112
  - 这是 `sandbox create` 支持的完整资源参数集合,不存在其它“更正确”的资源 flag,不要发明不存在的参数。
110
- 3. **写入代码/数据**:`delta-cli sandbox write <id> --path /workspace/<filename> --source <文件名>` — **必须**使用相对路径(如 `--source train.py`),**禁止**使用 `"$WORKSPACE_ROOT/train.py"` 或 `$(pwd)/train.py` 等 Shell 变量路径。`--source` 让 CLI 自行读取本地文件,不会经过 Shell 展开,是最安全的方式。写入后返回的 `size` 字段是实际磁盘字节数(来自 stat 验证),可对比确认写入完整性。批量写入用 `sandbox write-multiple <id> --entry <远程路径>=<本地路径>`。少量配置(<20 行)可用 `--data "..."`。文件路径和扩展名由镜像中的运行时决定。
113
+ 3. **写入代码/数据**:
114
+ - **单个文件**:`delta-cli sandbox write <id> --path /workspace/<filename> --source <文件名>` — **必须**使用相对路径(如 `--source train.py`),**禁止**使用 `"$WORKSPACE_ROOT/train.py"` 或 `$(pwd)/train.py` 等 Shell 变量路径。`--source` 让 CLI 自行读取本地文件,不会经过 Shell 展开,是最安全的方式。写入后返回的 `size` 字段是实际磁盘字节数(来自 stat 验证),可对比确认写入完整性。少量配置(<20 行)可用 `--data "..."`。文件路径和扩展名由镜像中的运行时决定。
115
+ - **批量写入**:`sandbox write-multiple <id> --entry <远程路径>=<本地路径> [--entry ...]`(远程路径在 `=` 左边,本地路径在右边,`--data` 批量写入不可用)
116
+ - **上传目录**:`sandbox upload <id> --source <本地目录> --target <沙箱路径>` — CLI 将本地目录打包为 tar.gz,通过 multipart/form-data 上传,服务端自动解压到 target 目录。返回每个文件的路径、大小、模式。上传后 CLI 自动对比本地和远程文件清单做完整性校验(大小不匹配、多余文件等会告警)。
117
+ - **注意**:`--source` 是**本地目录路径**,`--target` 是**沙箱内的目标目录**,target 目录不存在会自动创建。
118
+ - 支持嵌套目录,空目录也会被创建。
111
119
  - **写后验证**:`sandbox stat <id> --path <path>` 确认文件存在且 size 符合预期;`sandbox read <id> --path <path>` 读取内容并对比返回的 `size`(磁盘字节)和 `content_length`(字符长度)判断是否有编码偏差。
112
120
  4. **运行命令**:
113
121
  - **短任务(预计 ≤ 60 秒)**:`delta-cli sandbox run <id> --command "<命令>" --timeout <秒>` 同步执行,结果(`stdout` / `stderr` / `exit_code`)直接返回,**不要**再调用 `sandbox logs`。根据镜像中的运行时构造命令,常见示例:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: delta-shared
3
- version: 1.0.9
3
+ version: 1.1.0
4
4
  description: "delta-cli 全局共享规则:配置/认证检查、安全红线、错误处理、sandbox 销毁。"
5
5
  ---
6
6