@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.
- package/dist/index.js +12 -45
- 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
|
-
|
|
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
|
-
|
|
1169
|
-
|
|
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
|
-
|
|
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
|
|
1269
|
-
console.log(chalk_1.default.gray("\n💡 추가
|
|
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
|
});
|