@delta-infra/cli 1.0.46 → 1.0.47

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/checksums.txt CHANGED
@@ -1,5 +1,5 @@
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
1
+ abfbd8a22e5fb5e193d6ef63f4f49db195ceb635bb08a19ae550555f4d8da1ed delta-cli-darwin-amd64.tar.gz
2
+ 90e3b9e1b7784b3e84a8e34adb7be975cf84a768ec01c2d6c11de0c6bca2ff8d delta-cli-darwin-arm64.tar.gz
3
+ 7897fcec1be3468ec15e3d2f2771cd1e7837fe148ff1fbae4ca3dbb0f733b838 delta-cli-linux-amd64.tar.gz
4
+ 6d69f17806ff1a6a42d530fa6ef78c7fbc49aa88242cc95482708a6097b9d13e delta-cli-linux-arm64.tar.gz
5
+ 0f6b1274ed8cf3113d1f49b3c526a756bed0e343aa186af623ab5aecf993619f 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.46",
3
+ "version": "1.0.47",
4
4
  "description": "Delta Sandbox CLI",
5
5
  "bin": {
6
6
  "delta-cli": "scripts/run.js"
@@ -232,12 +232,45 @@ async function stepInstallGlobally(msg) {
232
232
  }
233
233
 
234
234
  async function skillsAlreadyInstalled() {
235
- try {
236
- const out = await runSilentAsync("npx", ["-y", "skills", "ls", "-g"], {
237
- timeout: 120000,
238
- });
239
- return /^delta-/m.test(out.toString());
240
- } catch { return false; }
235
+ const agentsDir = path.join(osHomedir(), ".agents", "skills");
236
+ return fs.existsSync(path.join(agentsDir, "delta-sandbox", "SKILL.md")) &&
237
+ fs.existsSync(path.join(agentsDir, "delta-shared", "SKILL.md"));
238
+ }
239
+
240
+ function installSkillsFromLocalPackage() {
241
+ const npmRoot = runSilent("npm", ["root", "-g"], { timeout: 10000 })
242
+ .toString().trim();
243
+ const pkgSkillsDir = path.join(npmRoot, PKG, "skills");
244
+ if (!fs.existsSync(path.join(pkgSkillsDir, "delta-sandbox", "SKILL.md"))) {
245
+ return false;
246
+ }
247
+
248
+ const home = osHomedir();
249
+ const agentsDir = path.join(home, ".agents", "skills");
250
+ fs.mkdirSync(agentsDir, { recursive: true });
251
+
252
+ for (const skill of ["delta-sandbox", "delta-shared"]) {
253
+ const src = path.join(pkgSkillsDir, skill);
254
+ if (!fs.existsSync(src)) continue;
255
+ const dst = path.join(agentsDir, skill);
256
+ fs.rmSync(dst, { recursive: true, force: true });
257
+ fs.cpSync(src, dst, { recursive: true });
258
+ }
259
+
260
+ const claudeDir = path.join(home, ".claude", "skills");
261
+ if (fs.existsSync(path.dirname(claudeDir))) {
262
+ fs.mkdirSync(claudeDir, { recursive: true });
263
+ for (const skill of ["delta-sandbox", "delta-shared"]) {
264
+ const linkPath = path.join(claudeDir, skill);
265
+ const targetPath = path.join(agentsDir, skill);
266
+ try {
267
+ fs.rmSync(linkPath, { force: true });
268
+ fs.symlinkSync(path.relative(path.dirname(linkPath), targetPath), linkPath);
269
+ } catch { /* symlink may fail on some platforms */ }
270
+ }
271
+ }
272
+
273
+ return true;
241
274
  }
242
275
 
243
276
  async function stepInstallSkills(msg) {
@@ -248,17 +281,24 @@ async function stepInstallSkills(msg) {
248
281
  s.stop(msg.step2Skip);
249
282
  return;
250
283
  }
284
+
285
+ try {
286
+ if (installSkillsFromLocalPackage()) {
287
+ s.stop(msg.step2Done);
288
+ return;
289
+ }
290
+ } catch { }
291
+
251
292
  const GH_PROXY = "https://gh-proxy.com/https://github.com";
252
293
  const urls = [
253
294
  `${GH_PROXY}/${SKILLS_REPO}`,
254
- SKILLS_REPO,
255
295
  `https://github.com/${SKILLS_REPO}`,
256
296
  ];
257
297
  let lastErr;
258
298
  for (const url of urls) {
259
299
  try {
260
300
  await runSilentAsync("npx", ["-y", "skills", "add", url, "-y", "-g"], {
261
- timeout: 120000,
301
+ timeout: 60000,
262
302
  env: { ...process.env, GIT_TERMINAL_PROMPT: "0" },
263
303
  });
264
304
  s.stop(msg.step2Done);
@@ -342,9 +382,28 @@ async function stepAuthLogin(msg) {
342
382
  async function stepUninstallSkills(msg) {
343
383
  const s = createSpinner();
344
384
  s.start("Removing AI skills...");
385
+
386
+ const home = osHomedir();
387
+ const agentsDir = path.join(home, ".agents", "skills");
388
+ const claudeDir = path.join(home, ".claude", "skills");
389
+ let removedLocally = false;
390
+
391
+ for (const skill of ["delta-sandbox", "delta-shared"]) {
392
+ try {
393
+ fs.rmSync(path.join(agentsDir, skill), { recursive: true, force: true });
394
+ fs.rmSync(path.join(claudeDir, skill), { force: true });
395
+ removedLocally = true;
396
+ } catch { }
397
+ }
398
+
399
+ if (removedLocally) {
400
+ s.stop("AI skills removed");
401
+ return;
402
+ }
403
+
345
404
  try {
346
405
  await runSilentAsync("npx", ["-y", "skills", "remove", "delta-sandbox", "delta-shared", "-g"], {
347
- timeout: 120000,
406
+ timeout: 60000,
348
407
  });
349
408
  s.stop("AI skills removed");
350
409
  } catch {