@team-semicolon/semo-cli 3.9.0 → 3.10.0

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 +12 -45
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1159,55 +1159,22 @@ program
1159
1159
  spinner.fail("Git 레포지토리가 아닙니다. 'git init'을 먼저 실행하세요.");
1160
1160
  process.exit(1);
1161
1161
  }
1162
- // 2. 프로젝트 유형 감지
1163
- const detected = detectProjectType(cwd);
1162
+ // 2. Extension 패키지 처리 (--with 옵션만 지원, 인터랙션 없음)
1164
1163
  let extensionsToInstall = [];
1165
1164
  if (options.with) {
1166
- extensionsToInstall = options.with.split(",").map((p) => p.trim()).filter((p) => p in EXTENSION_PACKAGES);
1165
+ // --with 옵션으로 명시적 패키지 지정 시에만 Extension 설치
1166
+ extensionsToInstall = options.with.split(",").map((p) => p.trim()).filter((p) => p in EXTENSION_PACKAGES || p in SHORTNAME_MAPPING);
1167
+ // 별칭 처리
1168
+ extensionsToInstall = extensionsToInstall.map((p) => SHORTNAME_MAPPING[p] || p);
1167
1169
  }
1168
- else if (detected.length > 0) {
1169
- console.log(chalk_1.default.cyan("\n📦 감지된 프로젝트 유형:"));
1170
+ // 프로젝트 유형 감지는 정보 제공용으로만 사용 (자동 설치 안 함)
1171
+ const detected = detectProjectType(cwd);
1172
+ if (detected.length > 0 && !options.with) {
1173
+ console.log(chalk_1.default.cyan("\n💡 감지된 프로젝트 유형:"));
1170
1174
  detected.forEach(pkg => {
1171
1175
  console.log(chalk_1.default.gray(` - ${EXTENSION_PACKAGES[pkg].name}: ${EXTENSION_PACKAGES[pkg].desc}`));
1172
1176
  });
1173
- const { installDetected } = await inquirer_1.default.prompt([
1174
- {
1175
- type: "confirm",
1176
- name: "installDetected",
1177
- message: "감지된 패키지를 함께 설치할까요?",
1178
- default: true,
1179
- },
1180
- ]);
1181
- if (installDetected) {
1182
- extensionsToInstall = detected;
1183
- }
1184
- }
1185
- else {
1186
- // 프로젝트 유형이 감지되지 않은 경우 패키지 선택 프롬프트
1187
- console.log(chalk_1.default.cyan("\n📦 추가 패키지 선택"));
1188
- console.log(chalk_1.default.gray(" 기본 설치 (semo-core + semo-skills) 외에 추가할 패키지를 선택하세요.\n"));
1189
- // 그룹별로 패키지 구성
1190
- const packageChoices = [
1191
- new inquirer_1.default.Separator(chalk_1.default.yellow("── Engineering ──")),
1192
- { name: `eng/nextjs - ${EXTENSION_PACKAGES["eng/nextjs"].desc}`, value: "eng/nextjs" },
1193
- { name: `eng/spring - ${EXTENSION_PACKAGES["eng/spring"].desc}`, value: "eng/spring" },
1194
- { name: `eng/infra - ${EXTENSION_PACKAGES["eng/infra"].desc}`, value: "eng/infra" },
1195
- new inquirer_1.default.Separator(chalk_1.default.yellow("── Business ──")),
1196
- { name: `biz/discovery - ${EXTENSION_PACKAGES["biz/discovery"].desc}`, value: "biz/discovery" },
1197
- { name: `biz/management - ${EXTENSION_PACKAGES["biz/management"].desc}`, value: "biz/management" },
1198
- { name: `biz/design - ${EXTENSION_PACKAGES["biz/design"].desc}`, value: "biz/design" },
1199
- new inquirer_1.default.Separator(chalk_1.default.yellow("── Operations ──")),
1200
- { name: `ops/qa - ${EXTENSION_PACKAGES["ops/qa"].desc}`, value: "ops/qa" },
1201
- ];
1202
- const { selectedPackages } = await inquirer_1.default.prompt([
1203
- {
1204
- type: "checkbox",
1205
- name: "selectedPackages",
1206
- message: "설치할 패키지 선택 (Space로 선택, Enter로 완료):",
1207
- choices: packageChoices,
1208
- },
1209
- ]);
1210
- extensionsToInstall = selectedPackages;
1177
+ console.log(chalk_1.default.gray(`\n 추가 패키지가 필요하면: semo add ${detected[0].split("/")[1] || detected[0]}`));
1211
1178
  }
1212
1179
  // 3. .claude 디렉토리 생성
1213
1180
  const claudeDir = path.join(cwd, ".claude");
@@ -1265,8 +1232,8 @@ program
1265
1232
  console.log(chalk_1.default.gray(" 1. Claude Code에서 프로젝트 열기"));
1266
1233
  console.log(chalk_1.default.gray(" 2. 자연어로 요청하기 (예: \"댓글 기능 구현해줘\")"));
1267
1234
  console.log(chalk_1.default.gray(" 3. /SEMO:help로 도움말 확인"));
1268
- if (extensionsToInstall.length === 0 && detected.length === 0) {
1269
- console.log(chalk_1.default.gray("\n💡 추가 패키지: semo add <package> (예: semo add next)"));
1235
+ if (extensionsToInstall.length === 0) {
1236
+ console.log(chalk_1.default.gray("\n💡 추가 패키지가 필요하면: semo add <package> (예: semo add next)"));
1270
1237
  }
1271
1238
  console.log();
1272
1239
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@team-semicolon/semo-cli",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "SEMO CLI - AI Agent Orchestration Framework Installer",
5
5
  "main": "dist/index.js",
6
6
  "bin": {