@su-record/vibe 1.0.18 โ 1.0.20
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/bin/vibe +139 -4
- package/package.json +1 -1
- package/templates/hooks-template.json +11 -0
package/bin/vibe
CHANGED
|
@@ -457,8 +457,18 @@ async function init(projectName) {
|
|
|
457
457
|
log('๐ง Claude Code MCP ์๋ฒ ๋ฑ๋ก ์ค...\n');
|
|
458
458
|
const { execSync } = require('child_process');
|
|
459
459
|
|
|
460
|
-
// 1. hi-ai MCP (
|
|
461
|
-
|
|
460
|
+
// 1. hi-ai MCP (ํ๋ก์ ํธ ๋ก์ปฌ ์ค์น)
|
|
461
|
+
log(' ๐ฆ hi-ai MCP ํจํค์ง ์ค์น ์ค...\n');
|
|
462
|
+
try {
|
|
463
|
+
// ํ๋ก์ ํธ์ hi-ai ์ง์ ์ค์น
|
|
464
|
+
execSync('npm install @su-record/hi-ai --save-dev', { stdio: 'pipe', cwd: projectRoot });
|
|
465
|
+
log(' โ
hi-ai ํจํค์ง ์ค์น ์๋ฃ\n');
|
|
466
|
+
} catch (e) {
|
|
467
|
+
log(' โ ๏ธ hi-ai ํจํค์ง ์ค์น ์คํจ (์๋ ์ค์น: npm install @su-record/hi-ai --save-dev)\n');
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// ํ๋ก์ ํธ ๋ก์ปฌ ๊ฒฝ๋ก๋ก MCP ๋ฑ๋ก
|
|
471
|
+
const mcpPath = path.join(projectRoot, 'node_modules', '@su-record', 'hi-ai', 'dist', 'index.js');
|
|
462
472
|
try {
|
|
463
473
|
execSync(`claude mcp add vibe node "${mcpPath}"`, { stdio: 'pipe' });
|
|
464
474
|
log(' โ
vibe MCP ๋ฑ๋ก ์๋ฃ\n');
|
|
@@ -775,6 +785,7 @@ function showHelp() {
|
|
|
775
785
|
๊ธฐ๋ณธ ๋ช
๋ น์ด:
|
|
776
786
|
vibe init [project] ํ๋ก์ ํธ ์ด๊ธฐํ
|
|
777
787
|
vibe update ์ค์ ์
๋ฐ์ดํธ
|
|
788
|
+
vibe remove vibe ์ ๊ฑฐ (MCP, ์ค์ , ํจํค์ง)
|
|
778
789
|
vibe status ํ์ฌ ์ค์ ์ํ
|
|
779
790
|
vibe help ๋์๋ง
|
|
780
791
|
vibe version ๋ฒ์ ์ ๋ณด
|
|
@@ -1080,8 +1091,27 @@ async function update() {
|
|
|
1080
1091
|
// ํ์
์ ์๋ ์ค์น ์ค์ (update์์๋ ์คํ)
|
|
1081
1092
|
setupCollaboratorAutoInstall(projectRoot);
|
|
1082
1093
|
|
|
1083
|
-
// MCP
|
|
1084
|
-
|
|
1094
|
+
// MCP ์๋ฒ: hi-ai ๋ก์ปฌ ์ค์น ํ์ธ ๋ฐ ๊ฒฝ๋ก ์
๋ฐ์ดํธ
|
|
1095
|
+
const localHiAiPath = path.join(projectRoot, 'node_modules', '@su-record', 'hi-ai', 'dist', 'index.js');
|
|
1096
|
+
if (!fs.existsSync(localHiAiPath)) {
|
|
1097
|
+
log(' ๐ฆ hi-ai MCP ํจํค์ง ๋ก์ปฌ ์ค์น ์ค...\n');
|
|
1098
|
+
try {
|
|
1099
|
+
const { execSync } = require('child_process');
|
|
1100
|
+
execSync('npm install @su-record/hi-ai --save-dev', { stdio: 'pipe', cwd: projectRoot });
|
|
1101
|
+
log(' โ
hi-ai ํจํค์ง ์ค์น ์๋ฃ\n');
|
|
1102
|
+
|
|
1103
|
+
// MCP ๊ฒฝ๋ก ์
๋ฐ์ดํธ (๋ก์ปฌ ๊ฒฝ๋ก๋ก)
|
|
1104
|
+
try {
|
|
1105
|
+
execSync(`claude mcp remove vibe`, { stdio: 'pipe' });
|
|
1106
|
+
execSync(`claude mcp add vibe node "${localHiAiPath}"`, { stdio: 'pipe' });
|
|
1107
|
+
log(' โ
vibe MCP ๊ฒฝ๋ก ์
๋ฐ์ดํธ ์๋ฃ (๋ก์ปฌ)\n');
|
|
1108
|
+
} catch (e) {
|
|
1109
|
+
log(' โ ๏ธ MCP ๊ฒฝ๋ก ์
๋ฐ์ดํธ ์คํจ (์๋: claude mcp add vibe node "' + localHiAiPath + '")\n');
|
|
1110
|
+
}
|
|
1111
|
+
} catch (e) {
|
|
1112
|
+
log(' โ ๏ธ hi-ai ํจํค์ง ์ค์น ์คํจ (์๋ ์ค์น: npm install @su-record/hi-ai --save-dev)\n');
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1085
1115
|
|
|
1086
1116
|
const packageJson = require('../package.json');
|
|
1087
1117
|
log(`
|
|
@@ -1264,6 +1294,106 @@ function showVersion() {
|
|
|
1264
1294
|
console.log(`vibe v${packageJson.version}`);
|
|
1265
1295
|
}
|
|
1266
1296
|
|
|
1297
|
+
// vibe ์ ๊ฑฐ
|
|
1298
|
+
function remove() {
|
|
1299
|
+
const projectRoot = process.cwd();
|
|
1300
|
+
const vibeDir = path.join(projectRoot, '.vibe');
|
|
1301
|
+
const claudeDir = path.join(projectRoot, '.claude');
|
|
1302
|
+
|
|
1303
|
+
if (!fs.existsSync(vibeDir)) {
|
|
1304
|
+
console.log('โ vibe ํ๋ก์ ํธ๊ฐ ์๋๋๋ค.');
|
|
1305
|
+
return;
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
console.log('๐๏ธ vibe ์ ๊ฑฐ ์ค...\n');
|
|
1309
|
+
const { execSync } = require('child_process');
|
|
1310
|
+
|
|
1311
|
+
// 1. MCP ์๋ฒ ์ ๊ฑฐ
|
|
1312
|
+
try {
|
|
1313
|
+
execSync('claude mcp remove vibe', { stdio: 'pipe' });
|
|
1314
|
+
console.log(' โ
vibe MCP ์ ๊ฑฐ ์๋ฃ\n');
|
|
1315
|
+
} catch (e) {
|
|
1316
|
+
console.log(' โน๏ธ vibe MCP ์ด๋ฏธ ์ ๊ฑฐ๋จ ๋๋ ์์\n');
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
try {
|
|
1320
|
+
execSync('claude mcp remove context7', { stdio: 'pipe' });
|
|
1321
|
+
console.log(' โ
context7 MCP ์ ๊ฑฐ ์๋ฃ\n');
|
|
1322
|
+
} catch (e) {
|
|
1323
|
+
console.log(' โน๏ธ context7 MCP ์ด๋ฏธ ์ ๊ฑฐ๋จ ๋๋ ์์\n');
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
// 2. .vibe ํด๋ ์ ๊ฑฐ
|
|
1327
|
+
if (fs.existsSync(vibeDir)) {
|
|
1328
|
+
removeDirRecursive(vibeDir);
|
|
1329
|
+
console.log(' โ
.vibe/ ํด๋ ์ ๊ฑฐ ์๋ฃ\n');
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
// 3. .claude/commands ์ ๊ฑฐ (vibe ๊ด๋ จ๋ง)
|
|
1333
|
+
const commandsDir = path.join(claudeDir, 'commands');
|
|
1334
|
+
if (fs.existsSync(commandsDir)) {
|
|
1335
|
+
const vibeCommands = ['vibe.spec.md', 'vibe.run.md', 'vibe.verify.md', 'vibe.reason.md', 'vibe.analyze.md', 'vibe.ui.md', 'vibe.diagram.md'];
|
|
1336
|
+
vibeCommands.forEach(cmd => {
|
|
1337
|
+
const cmdPath = path.join(commandsDir, cmd);
|
|
1338
|
+
if (fs.existsSync(cmdPath)) {
|
|
1339
|
+
fs.unlinkSync(cmdPath);
|
|
1340
|
+
}
|
|
1341
|
+
});
|
|
1342
|
+
console.log(' โ
์ฌ๋์ ์ปค๋งจ๋ ์ ๊ฑฐ ์๋ฃ\n');
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
// 4. .claude/agents ์ ๊ฑฐ (vibe ๊ด๋ จ๋ง)
|
|
1346
|
+
const agentsDir = path.join(claudeDir, 'agents');
|
|
1347
|
+
if (fs.existsSync(agentsDir)) {
|
|
1348
|
+
const vibeAgents = ['simplifier.md', 'explorer.md', 'implementer.md', 'tester.md', 'searcher.md'];
|
|
1349
|
+
vibeAgents.forEach(agent => {
|
|
1350
|
+
const agentPath = path.join(agentsDir, agent);
|
|
1351
|
+
if (fs.existsSync(agentPath)) {
|
|
1352
|
+
fs.unlinkSync(agentPath);
|
|
1353
|
+
}
|
|
1354
|
+
});
|
|
1355
|
+
console.log(' โ
์๋ธ์์ด์ ํธ ์ ๊ฑฐ ์๋ฃ\n');
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
// 5. .claude/settings.json์์ hooks ์ ๊ฑฐ
|
|
1359
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
1360
|
+
if (fs.existsSync(settingsPath)) {
|
|
1361
|
+
try {
|
|
1362
|
+
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
1363
|
+
if (settings.hooks) {
|
|
1364
|
+
delete settings.hooks;
|
|
1365
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
|
|
1366
|
+
console.log(' โ
Hooks ์ค์ ์ ๊ฑฐ ์๋ฃ\n');
|
|
1367
|
+
}
|
|
1368
|
+
} catch (e) {}
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
// 6. hi-ai ํจํค์ง ์ ๊ฑฐ (์ ํ์ )
|
|
1372
|
+
const hiAiPath = path.join(projectRoot, 'node_modules', '@su-record', 'hi-ai');
|
|
1373
|
+
if (fs.existsSync(hiAiPath)) {
|
|
1374
|
+
try {
|
|
1375
|
+
execSync('npm uninstall @su-record/hi-ai', { stdio: 'pipe', cwd: projectRoot });
|
|
1376
|
+
console.log(' โ
hi-ai ํจํค์ง ์ ๊ฑฐ ์๋ฃ\n');
|
|
1377
|
+
} catch (e) {
|
|
1378
|
+
console.log(' โ ๏ธ hi-ai ํจํค์ง ์ ๊ฑฐ ์คํจ (์๋: npm uninstall @su-record/hi-ai)\n');
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
console.log(`
|
|
1383
|
+
โ
vibe ์ ๊ฑฐ ์๋ฃ!
|
|
1384
|
+
|
|
1385
|
+
์ ๊ฑฐ๋ ํญ๋ชฉ:
|
|
1386
|
+
- MCP ์๋ฒ (vibe, context7)
|
|
1387
|
+
- .vibe/ ํด๋
|
|
1388
|
+
- ์ฌ๋์ ์ปค๋งจ๋ (7๊ฐ)
|
|
1389
|
+
- ์๋ธ์์ด์ ํธ (5๊ฐ)
|
|
1390
|
+
- Hooks ์ค์
|
|
1391
|
+
- hi-ai ํจํค์ง
|
|
1392
|
+
|
|
1393
|
+
๋ค์ ์ค์นํ๋ ค๋ฉด: vibe init
|
|
1394
|
+
`);
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1267
1397
|
// ๋ฉ์ธ ๋ผ์ฐํฐ
|
|
1268
1398
|
switch (command) {
|
|
1269
1399
|
case 'init':
|
|
@@ -1274,6 +1404,11 @@ switch (command) {
|
|
|
1274
1404
|
update();
|
|
1275
1405
|
break;
|
|
1276
1406
|
|
|
1407
|
+
case 'remove':
|
|
1408
|
+
case 'uninstall':
|
|
1409
|
+
remove();
|
|
1410
|
+
break;
|
|
1411
|
+
|
|
1277
1412
|
case 'gpt':
|
|
1278
1413
|
if (args[1] === '--remove') {
|
|
1279
1414
|
removeExternalLLM('gpt');
|
package/package.json
CHANGED
|
@@ -88,6 +88,17 @@
|
|
|
88
88
|
}
|
|
89
89
|
]
|
|
90
90
|
}
|
|
91
|
+
],
|
|
92
|
+
"UserPromptSubmit": [
|
|
93
|
+
{
|
|
94
|
+
"matcher": "^(hi-ai|ํ์ด์์ด|์๋
|์์)",
|
|
95
|
+
"hooks": [
|
|
96
|
+
{
|
|
97
|
+
"type": "prompt",
|
|
98
|
+
"prompt": "์ฌ์ฉ์๊ฐ ์ธ์
์์ ์ธ์ฌ๋ฅผ ํ์ต๋๋ค. mcp__vibe__start_session์ ํธ์ถํ์ฌ ์ด์ ์ธ์
์ปจํ
์คํธ๋ฅผ ๋ณต์ํ์ธ์."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
91
102
|
]
|
|
92
103
|
}
|
|
93
104
|
}
|