@delta-infra/cli 1.0.3 → 1.0.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
|
@@ -6,19 +6,21 @@ Delta Infra 的命令行工具。
|
|
|
6
6
|
|
|
7
7
|
### 方式一:直接下载 Binary(推荐)
|
|
8
8
|
|
|
9
|
-
从 [GitHub Releases](https://github.com/yzailab/delta-infra-cli/releases)
|
|
9
|
+
从 [GitHub Releases](https://github.com/yzailab/delta-infra-cli/releases) 下载对应平台的压缩包(以下使用 `latest` 指向最新版):
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
# macOS (Apple Silicon)
|
|
13
|
-
curl -L https://github.com/yzailab/delta-infra-cli/releases/download/
|
|
14
|
-
sudo mv delta-cli-darwin-arm64
|
|
13
|
+
curl -L https://github.com/yzailab/delta-infra-cli/releases/latest/download/delta-cli-darwin-arm64.tar.gz | tar -xz
|
|
14
|
+
sudo mv delta-cli-darwin-arm64 /usr/local/bin/delta-cli
|
|
15
15
|
|
|
16
16
|
# Linux (AMD64)
|
|
17
|
-
curl -L https://github.com/yzailab/delta-infra-cli/releases/download/
|
|
18
|
-
|
|
17
|
+
curl -L https://github.com/yzailab/delta-infra-cli/releases/latest/download/delta-cli-linux-amd64.tar.gz | tar -xz
|
|
18
|
+
chmod +x delta-cli-linux-amd64
|
|
19
|
+
sudo mv delta-cli-linux-amd64 /usr/local/bin/delta-cli
|
|
19
20
|
|
|
20
21
|
# Windows (AMD64)
|
|
21
|
-
# 下载 delta-cli-windows-amd64.zip
|
|
22
|
+
# 下载 https://github.com/yzailab/delta-infra-cli/releases/latest/download/delta-cli-windows-amd64.zip
|
|
23
|
+
# 解压后将 delta-cli-windows-amd64.exe 重命名为 delta-cli.exe,并放到 PATH 目录下
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
### 方式二:npm
|
|
@@ -168,10 +170,10 @@ make test
|
|
|
168
170
|
# 代码检查
|
|
169
171
|
make lint
|
|
170
172
|
|
|
171
|
-
#
|
|
173
|
+
# 跨平台编译(生成各平台二进制文件到 bin/)
|
|
172
174
|
make release
|
|
173
175
|
|
|
174
|
-
# 安装到 GOPATH/bin
|
|
176
|
+
# 安装到 GOPATH/bin(确保 GOPATH 已设置,或使用 GOPATH=$(go env GOPATH) make install)
|
|
175
177
|
make install
|
|
176
178
|
```
|
|
177
179
|
|
|
@@ -189,9 +191,10 @@ cp skills/delta-shared/SKILL.md \
|
|
|
189
191
|
# 2. 用 Docker 编译 Windows 版本(本地无 Go toolchain 时)
|
|
190
192
|
docker run --rm -v "$(pwd):/src" -w /src \
|
|
191
193
|
-e GOPROXY=https://goproxy.cn,direct \
|
|
192
|
-
golang:1.23
|
|
193
|
-
|
|
194
|
-
-
|
|
194
|
+
golang:1.23 \
|
|
195
|
+
sh -c 'go build -buildvcs=false \
|
|
196
|
+
-ldflags "-X github.com/delta-infra/delta-infra-cli/internal/build.Version=$(git describe --tags --always --dirty 2>/dev/null || echo dev)" \
|
|
197
|
+
-o bin/delta-cli-windows-amd64.exe ./cmd/delta-cli'
|
|
195
198
|
|
|
196
199
|
# 3. 将 delta-cli 放到 Memento-S 的 node_modules/.bin(替换旧版本)
|
|
197
200
|
cp bin/delta-cli-windows-amd64.exe \
|
|
@@ -201,7 +204,55 @@ cp bin/delta-cli-windows-amd64.exe \
|
|
|
201
204
|
# 在 Electron 界面中重新加载,或手动重启 sidecar 进程
|
|
202
205
|
```
|
|
203
206
|
|
|
204
|
-
> **注意**:`delta-cli`
|
|
207
|
+
> **注意**:`delta-cli` 替换后,如果 `~/.delta-infra/config.json` 中已配置 token,则 `delta-sandbox` 技能可直接使用;否则需要先用 `auth login` 配置。
|
|
208
|
+
|
|
209
|
+
## 构建与发布
|
|
210
|
+
|
|
211
|
+
### 本地构建
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# 本地构建
|
|
215
|
+
make build
|
|
216
|
+
|
|
217
|
+
# 运行测试
|
|
218
|
+
make test
|
|
219
|
+
|
|
220
|
+
# 代码检查
|
|
221
|
+
make lint
|
|
222
|
+
|
|
223
|
+
# 跨平台编译(生成各平台二进制文件到 bin/)
|
|
224
|
+
make release
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
> `make release` 仅生成各平台二进制文件(如 `bin/delta-cli-linux-amd64`),不会自动打包。打包与发布请使用下文的 `release.sh`。
|
|
228
|
+
|
|
229
|
+
### 一键发布(维护者)
|
|
230
|
+
|
|
231
|
+
项目根目录下的 `release.sh` 脚本负责完整发布流程:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
export GH_TOKEN=<your-github-pat>
|
|
235
|
+
export NPM_TOKEN=<your-npm-token>
|
|
236
|
+
./release.sh v1.0.5
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
脚本执行步骤:
|
|
240
|
+
1. 更新 `package.json` 版本号。
|
|
241
|
+
2. 使用 Docker + `make release` 交叉编译 5 个平台二进制文件。
|
|
242
|
+
3. 在 `bin/` 目录生成 `.tar.gz` / `.zip` 归档。
|
|
243
|
+
4. 通过 `.ci/publish-github-release.js` 创建 GitHub Release 并上传资产。
|
|
244
|
+
5. 同步 `package.json` 与 `scripts/install.js` 到公开仓库 `yzailab/delta-infra-cli`。
|
|
245
|
+
6. 执行 `npm publish --access public` 发布 `@delta-infra/cli`。
|
|
246
|
+
|
|
247
|
+
需要提前安装 `gh` CLI、Node.js/npm,并配置 `GH_TOKEN` 与 `NPM_TOKEN`。CI 流程可参考 `.gitlab-ci.yml`。
|
|
248
|
+
|
|
249
|
+
### npm 镜像
|
|
250
|
+
|
|
251
|
+
如果 GitHub 下载较慢,安装 npm 包时可设置镜像:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
DELTA_CLI_MIRROR="https://gh-proxy.com/https://github.com" npm install -g @delta-infra/cli
|
|
255
|
+
```
|
|
205
256
|
|
|
206
257
|
## 技术栈
|
|
207
258
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delta-infra/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Delta Sandbox CLI",
|
|
5
5
|
"bin": {
|
|
6
6
|
"delta-cli": "scripts/run.js"
|
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
"postinstall": "node scripts/install.js"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
|
-
"scripts/",
|
|
13
|
-
"
|
|
12
|
+
"scripts/install.js",
|
|
13
|
+
"scripts/run.js",
|
|
14
|
+
"skills/delta-sandbox/SKILL.md",
|
|
15
|
+
"skills/delta-sandbox/references/",
|
|
16
|
+
"skills/delta-shared/SKILL.md",
|
|
17
|
+
"skills/delta-shared/references/"
|
|
14
18
|
],
|
|
15
19
|
"keywords": [
|
|
16
20
|
"delta",
|
|
@@ -31,7 +31,7 @@ metadata:
|
|
|
31
31
|
3. **异常时也必须销毁**:即使 sandbox 内命令失败、超时或报错,仍然 **必须** 执行 `sandbox kill <id>`。异常不是跳过销毁的理由。
|
|
32
32
|
4. **不得依赖外部清理**:server 端 **没有** sandbox 的自动过期或 TTL 机制。不 kill → sandbox 永久占用 GPU 资源。
|
|
33
33
|
5. **一条命令内完成**:从 `create` 到 `kill` 的完整生命周期必须在同一次执行中完成。不允许跨任务保留 sandbox。
|
|
34
|
-
6. **禁止重复创建**:同一次任务中只允许存在一个活跃 sandbox。若命令失败需要重试,优先复用已创建的 `sandbox_id`;若确实需要重新创建,必须先 `sandbox kill <旧_sandbox_id>`,确认旧实例销毁后再执行新的 `sandbox create
|
|
34
|
+
6. **禁止重复创建**:同一次任务中只允许存在一个活跃 sandbox。若命令失败需要重试,优先复用已创建的 `sandbox_id`;若确实需要重新创建,必须先 `sandbox kill <旧_sandbox_id>`,确认旧实例销毁后再执行新的 `sandbox create`。`delta-cli` 目前没有 `sandbox list` 命令,AI agent 应通过任务上下文跟踪当前 `sandbox_id`,而不是反复 create。
|
|
35
35
|
|
|
36
36
|
## 快速路由
|
|
37
37
|
|
|
@@ -52,7 +52,7 @@ metadata:
|
|
|
52
52
|
## 完整生命周期
|
|
53
53
|
|
|
54
54
|
1. **查看可用镜像**:`delta-cli sandbox images` — 查询服务端支持的镜像列表(含标签、最低资源要求、支持 provider),根据用户需求匹配镜像
|
|
55
|
-
2. **创建**:`delta-cli sandbox create --image <img> --cpu 4 --memory 16Gi --gpu 1`(创建后 sandbox 立即可用,无需额外连接)。**同一次任务若已有 `sandbox_id`,禁止再次 create,必须优先复用。**
|
|
55
|
+
2. **创建**:`delta-cli sandbox create --image <img> --cpu 4 --memory 16Gi --gpu 1 --gpu-mem 8000`(创建后 sandbox 立即可用,无需额外连接)。**同一次任务若已有 `sandbox_id`,禁止再次 create,必须优先复用。**
|
|
56
56
|
3. **写入代码**:`delta-cli sandbox write <id> --path /workspace/train.py --data "..."`
|
|
57
57
|
4. **运行**:`delta-cli sandbox run <id> --command "python /workspace/train.py" --timeout 3600`
|
|
58
58
|
5. **读取结果**:`delta-cli sandbox read <id> --path /workspace/result.json`
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## 完整流程
|
|
6
6
|
|
|
7
7
|
1. **查看可用镜像** `delta-cli sandbox images` — 查询服务端支持的镜像列表,根据用户的 GPU/CPU 需求和标签匹配镜像
|
|
8
|
-
2. **创建** `delta-cli sandbox create --image <image>
|
|
8
|
+
2. **创建** `delta-cli sandbox create --image <image> --cpu 4 --memory 16Gi --gpu 1 --gpu-mem 8000`(创建后立即可用,无需连接)
|
|
9
9
|
3. **写入代码/数据** `delta-cli sandbox write <id> --path /workspace/train.py --data "..."`
|
|
10
10
|
4. **运行命令** `delta-cli sandbox run <id> --command "python /workspace/train.py"`
|
|
11
11
|
5. **读取结果** `delta-cli sandbox read <id> --path /workspace/result.json`
|
package/skills/AGENTS.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# skills/ — AI Agent Skill Packages
|
|
2
|
-
|
|
3
|
-
**Generated:** 2026-06-16 (Deep Refresh)
|
|
4
|
-
**Parent:** `../AGENTS.md`
|
|
5
|
-
|
|
6
|
-
## OVERVIEW
|
|
7
|
-
|
|
8
|
-
Markdown-based skill definitions for AI agents interacting with delta-cli. Two packages: `delta-sandbox` (sandbox lifecycle operations) and `delta-shared` (auth, config, error handling conventions).
|
|
9
|
-
|
|
10
|
-
## STRUCTURE
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
skills/
|
|
14
|
-
├── delta-sandbox/
|
|
15
|
-
│ ├── SKILL.md # YAML frontmatter + Markdown operation guide
|
|
16
|
-
│ └── references/ # (empty or planned)
|
|
17
|
-
└── delta-shared/
|
|
18
|
-
└── SKILL.md # Shared auth/config rules
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## WHERE TO LOOK
|
|
22
|
-
|
|
23
|
-
| Path | Content |
|
|
24
|
-
|------|---------|
|
|
25
|
-
| `delta-sandbox/SKILL.md` | Sandbox create/run/read/write/kill workflow for AI agents |
|
|
26
|
-
| `delta-shared/SKILL.md` | Shared auth commands, config management, error interpretation |
|
|
27
|
-
|
|
28
|
-
## CONVENTIONS
|
|
29
|
-
|
|
30
|
-
- YAML frontmatter with `name`, `description`, `metadata.requires.bins`, `metadata.cliHelp`
|
|
31
|
-
- Markdown body with tables for commands and examples; sections for preconditions
|
|
32
|
-
- Skills are included in npm package `files` array and shipped with the CLI distribution
|
|
33
|
-
- References directory for supplementary docs (lifecycle guides, command cheatsheets)
|
|
34
|
-
|
|
35
|
-
## ANTI-PATTERNS
|
|
36
|
-
|
|
37
|
-
- Do not embed realistic credentials, API keys, or tokens in skill examples
|
|
38
|
-
- Do not break relative links between skills or references
|
|
39
|
-
- Do not reference internal Go package paths in skill docs — use CLI command names
|