@delta-infra/cli 1.0.44 → 1.0.46

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
@@ -28,6 +28,24 @@ npx @delta-infra/cli@latest uninstall
28
28
 
29
29
  清理全局包、AI Skills 和配置文件。
30
30
 
31
+ ### 升级
32
+
33
+ ```bash
34
+ # 升级 CLI + AI Skills
35
+ delta-cli upgrade
36
+
37
+ # 只检查是否有更新(不执行升级)
38
+ delta-cli upgrade --check
39
+
40
+ # 只升级 CLI 二进制
41
+ delta-cli upgrade --cli-only
42
+
43
+ # 只升级 AI Skills
44
+ delta-cli upgrade --skills-only
45
+ ```
46
+
47
+ 升级 CLI 时会通过 `npm install -g @delta-infra/cli@latest` 拉取最新版本;升级 Skills 时会通过 `npx skills add` 重新安装 AI Skills。
48
+
31
49
  ### 方式二:直接下载 Binary
32
50
 
33
51
  从 [GitHub Releases](https://github.com/yzailab/delta-infra-cli/releases) 下载对应平台的压缩包(以下使用 `latest` 指向最新版):
@@ -175,8 +193,12 @@ delta-cli sandbox kill <sandbox_id>
175
193
  | `delta-cli auth login` | 交互式登录 |
176
194
  | `delta-cli auth login --token <token>` | Token 认证 |
177
195
  | `delta-cli auth status` | 查看认证状态 |
178
- | `delta-cli update check` | 检查更新 |
179
- | `delta-cli update` | 安装最新版本 |
196
+ | `delta-cli update check` | 检查更新(deprecated,请用 `upgrade --check`) |
197
+ | `delta-cli update` | 安装最新版本(deprecated,请用 `upgrade`) |
198
+ | `delta-cli upgrade` | 升级 CLI 和 AI Skills 到最新版本 |
199
+ | `delta-cli upgrade --check` | 检查是否有可用更新 |
200
+ | `delta-cli upgrade --cli-only` | 只升级 CLI 二进制 |
201
+ | `delta-cli upgrade --skills-only` | 只升级 AI Skills |
180
202
  | `delta-cli --version` | 显示版本 |
181
203
 
182
204
  ### Sandbox 命令
package/checksums.txt CHANGED
@@ -1,5 +1,5 @@
1
- 2585de0931a11878a5015aaf4d7a1abe8569407e4783233bb78a608a084730f4 delta-cli-darwin-amd64.tar.gz
2
- 0f1a89ceff2028dac941ce6d7c19713fefd8618af2cb06cac61e06f919e733e2 delta-cli-darwin-arm64.tar.gz
3
- 4f6a54889fd965b84b16b565008de899d7b49dbe91b250f06656b3e73b354695 delta-cli-linux-amd64.tar.gz
4
- 2dda53df2e196669d823124c90e550e892f45ad5a39a7150bb06dbbd94b53fe6 delta-cli-linux-arm64.tar.gz
5
- 2bb8f778cdb1683e9d2998a66e4a088ce2e29a2a97d98d62e23bc0af9ff101df delta-cli-windows-amd64.zip
1
+ 59bb460b869e235317ce8ff941e799be389d62afb9383c7aa7d0b1c86c4f70af delta-cli-darwin-amd64.tar.gz
2
+ bdbc5a01dea688f92671fcd66302e8919c252f022f36244a24fa3a2b112b45bf delta-cli-darwin-arm64.tar.gz
3
+ 67e3ef153700bc2ac920bac8d349114cdb8e2e2014b08d1f3b22a7c9eb93ff91 delta-cli-linux-amd64.tar.gz
4
+ fba11856a6a8e475db2c849292b4c97e0d1ef89b7739eaa71205be0014e32ff8 delta-cli-linux-arm64.tar.gz
5
+ 6952018390fc67ef2392d68409c0948773a570aa0176e36582a19766c562d278 delta-cli-windows-amd64.zip
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-infra/cli",
3
- "version": "1.0.44",
3
+ "version": "1.0.46",
4
4
  "description": "Delta Sandbox CLI",
5
5
  "bin": {
6
6
  "delta-cli": "scripts/run.js"
@@ -123,6 +123,21 @@ function osHomedir() {
123
123
  "/root";
124
124
  }
125
125
 
126
+ function isInteractiveEnv() {
127
+ return !!process.stdin.isTTY &&
128
+ !process.env.CI &&
129
+ !process.env.NO_COLOR &&
130
+ process.env.TERM !== "dumb";
131
+ }
132
+
133
+ function createSpinner() {
134
+ if (isInteractiveEnv()) return p.spinner();
135
+ return {
136
+ start: (msg) => { if (msg) console.log(msg); },
137
+ stop: (msg) => { if (msg) console.log(msg); },
138
+ };
139
+ }
140
+
126
141
  function whichDeltaCli() {
127
142
  try {
128
143
  const prefix = execFileSync("npm", ["prefix", "-g"], {
@@ -189,7 +204,7 @@ async function stepInstallGlobally(msg) {
189
204
  }
190
205
 
191
206
  const targetVer = latestVer || installedVer;
192
- const s = p.spinner();
207
+ const s = createSpinner();
193
208
  if (needsUpgrade) {
194
209
  s.start(fmt(msg.upgrade, PKG, installedVer, latestVer));
195
210
  } else {
@@ -226,7 +241,7 @@ async function skillsAlreadyInstalled() {
226
241
  }
227
242
 
228
243
  async function stepInstallSkills(msg) {
229
- const s = p.spinner();
244
+ const s = createSpinner();
230
245
  s.start(msg.step2Spinner);
231
246
  try {
232
247
  if (await skillsAlreadyInstalled()) {
@@ -260,7 +275,7 @@ async function stepInstallSkills(msg) {
260
275
  }
261
276
 
262
277
  async function stepConfigInit(msg) {
263
- const s = p.spinner();
278
+ const s = createSpinner();
264
279
  s.start(msg.step3);
265
280
 
266
281
  const deltaCli = whichDeltaCli();
@@ -325,7 +340,7 @@ async function stepAuthLogin(msg) {
325
340
  // ── Uninstall steps ─────────────────────────────────────────────────────────
326
341
 
327
342
  async function stepUninstallSkills(msg) {
328
- const s = p.spinner();
343
+ const s = createSpinner();
329
344
  s.start("Removing AI skills...");
330
345
  try {
331
346
  await runSilentAsync("npx", ["-y", "skills", "remove", "delta-sandbox", "delta-shared", "-g"], {
@@ -350,7 +365,7 @@ async function stepUninstallPackage(msg) {
350
365
  if (!installedVer) {
351
366
  return;
352
367
  }
353
- const s = p.spinner();
368
+ const s = createSpinner();
354
369
  s.start("Removing global package...");
355
370
  try {
356
371
  await runSilentAsync("npm", ["uninstall", "-g", PKG], { timeout: 60000 });
@@ -364,7 +379,7 @@ async function stepUninstallPackage(msg) {
364
379
  // ── Main ────────────────────────────────────────────────────────────────────
365
380
 
366
381
  async function doInstall() {
367
- const isInteractive = !!process.stdin.isTTY;
382
+ const isInteractive = isInteractiveEnv();
368
383
 
369
384
  if (isInteractive) {
370
385
  p.intro(messages.zh.setup);
@@ -382,7 +397,7 @@ async function doInstall() {
382
397
  }
383
398
 
384
399
  async function doUninstall() {
385
- const isInteractive = !!process.stdin.isTTY;
400
+ const isInteractive = isInteractiveEnv();
386
401
 
387
402
  if (isInteractive) {
388
403
  const ok = await p.confirm({