@team-semicolon/semo-cli 3.0.9 → 3.0.10

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.
Files changed (2) hide show
  1. package/dist/index.js +18 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -59,7 +59,7 @@ const child_process_1 = require("child_process");
59
59
  const fs = __importStar(require("fs"));
60
60
  const path = __importStar(require("path"));
61
61
  const os = __importStar(require("os"));
62
- const VERSION = "3.0.9";
62
+ const VERSION = "3.0.10";
63
63
  const PACKAGE_NAME = "@team-semicolon/semo-cli";
64
64
  // === 버전 비교 유틸리티 ===
65
65
  /**
@@ -313,6 +313,18 @@ function detectProjectType(cwd) {
313
313
  }
314
314
  return detected;
315
315
  }
316
+ // === 설치된 Extension 패키지 스캔 ===
317
+ function getInstalledExtensions(cwd) {
318
+ const semoSystemDir = path.join(cwd, "semo-system");
319
+ const installed = [];
320
+ for (const key of Object.keys(EXTENSION_PACKAGES)) {
321
+ const pkgPath = path.join(semoSystemDir, key);
322
+ if (fs.existsSync(pkgPath)) {
323
+ installed.push(key);
324
+ }
325
+ }
326
+ return installed;
327
+ }
316
328
  function checkRequiredTools() {
317
329
  const tools = [
318
330
  {
@@ -1488,7 +1500,9 @@ program
1488
1500
  }
1489
1501
  console.log();
1490
1502
  }
1491
- // 이미 설치된 패키지 확인
1503
+ // 기존에 설치된 모든 Extension 패키지 스캔
1504
+ const previouslyInstalled = getInstalledExtensions(cwd);
1505
+ // 요청한 패키지 중 이미 설치된 것과 새로 설치할 것 분류
1492
1506
  const alreadyInstalled = [];
1493
1507
  const toInstall = [];
1494
1508
  for (const pkg of packages) {
@@ -1515,8 +1529,8 @@ program
1515
1529
  await downloadExtensions(cwd, toInstall, options.force);
1516
1530
  // 2. settings.json 병합
1517
1531
  await mergeExtensionSettings(cwd, toInstall);
1518
- // 3. 심볼릭 링크 설정 (모든 설치된 패키지 포함하여 orchestrator 병합)
1519
- const allInstalledPackages = [...new Set([...alreadyInstalled, ...toInstall])];
1532
+ // 3. 심볼릭 링크 설정 (기존 + 새로 설치한 모든 패키지 포함)
1533
+ const allInstalledPackages = [...new Set([...previouslyInstalled, ...toInstall])];
1520
1534
  await setupExtensionSymlinks(cwd, allInstalledPackages);
1521
1535
  // 4. CLAUDE.md 재생성 (모든 설치된 패키지 반영)
1522
1536
  await setupClaudeMd(cwd, allInstalledPackages, options.force);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@team-semicolon/semo-cli",
3
- "version": "3.0.9",
3
+ "version": "3.0.10",
4
4
  "description": "SEMO CLI - AI Agent Orchestration Framework Installer",
5
5
  "main": "dist/index.js",
6
6
  "bin": {