@ninebone/mcp 0.1.26 → 0.1.27
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/package.json +1 -1
- package/src/core/init.js +21 -6
- package/src/index.js +2 -2
package/package.json
CHANGED
package/src/core/init.js
CHANGED
|
@@ -13,7 +13,7 @@ const SOURCE_PROMPT_DIR = path.resolve(__dirname, '../../prompts');
|
|
|
13
13
|
*/
|
|
14
14
|
async function createEnvFile(rl) {
|
|
15
15
|
const questions = [
|
|
16
|
-
{ key: 'SERVER_PORT', label: '1. 커넥터 서버 포트', default: '
|
|
16
|
+
{ key: 'SERVER_PORT', label: '1. 커넥터 서버 포트', default: '4001' },
|
|
17
17
|
{ key: 'GEMINI_API_KEY', label: '2. Gemini API Key', default: '' },
|
|
18
18
|
{ key: 'GEMINI_MODEL', label: '3. 사용할 모델', default: 'gemini-2.5-flash' },
|
|
19
19
|
{ key: 'DB_TYPE', label: '4. DB 종류 (mysql, mariadb, postgres, oracle)', default: 'mysql' },
|
|
@@ -57,30 +57,45 @@ async function createEnvFile(rl) {
|
|
|
57
57
|
* 2. 프롬프트 파일(.md) 자동 복사 함수 (개선됨)
|
|
58
58
|
*/
|
|
59
59
|
function createPromptFiles() {
|
|
60
|
+
// 사용자가 명령어를 실행한 현재 터미널 위치(작업 디렉토리) 아래에 prompts 폴더를 만듭니다.
|
|
60
61
|
const targetDir = path.join(process.cwd(), 'prompts');
|
|
61
62
|
|
|
62
63
|
if (!fs.existsSync(targetDir)) {
|
|
63
64
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
// 디버깅을 위해 로그를 살짝 추가해두면 어디서 고장 났는지 알기 쉽습니다.
|
|
68
|
+
console.log(`\n🔍 원본 프롬프트 탐색 경로: ${SOURCE_PROMPT_DIR}`);
|
|
69
|
+
console.log(`📂 복사될 대상 경로: ${targetDir}`);
|
|
70
|
+
|
|
66
71
|
try {
|
|
67
72
|
if (fs.existsSync(SOURCE_PROMPT_DIR)) {
|
|
68
|
-
// 원본 폴더의 모든 파일을 읽어서 자동으로 복사합니다.
|
|
69
73
|
const files = fs.readdirSync(SOURCE_PROMPT_DIR);
|
|
70
74
|
|
|
71
|
-
|
|
75
|
+
// .md 파일 필터링 및 복사
|
|
76
|
+
const mdFiles = files.filter(f => f.endsWith('.md'));
|
|
77
|
+
|
|
78
|
+
if (mdFiles.length === 0) {
|
|
79
|
+
console.log('⚠️ 원본 폴더에 마크다운(.md) 파일이 존재하지 않습니다.');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
mdFiles.forEach((filename) => {
|
|
72
84
|
const sourcePath = path.join(SOURCE_PROMPT_DIR, filename);
|
|
73
85
|
const targetPath = path.join(targetDir, filename);
|
|
74
86
|
|
|
75
87
|
const content = fs.readFileSync(sourcePath, 'utf-8');
|
|
76
88
|
fs.writeFileSync(targetPath, content.trim() + '\n', 'utf-8');
|
|
89
|
+
console.log(` └📄 ${filename} 복사 완료`);
|
|
77
90
|
});
|
|
78
|
-
console.log('프롬프트 파일(prompts/*.md)
|
|
91
|
+
console.log('✨ 프롬프트 파일(prompts/*.md) 배포가 성공적으로 완료되었습니다.');
|
|
79
92
|
} else {
|
|
80
|
-
|
|
93
|
+
// 여기가 실행된다면 package.json의 files 항목에 prompts 폴더가 안 담겼거나 경로 depth가 틀린 것입니다.
|
|
94
|
+
console.error(`❌ [오류] 원본 템플릿 경로를 찾을 수 없습니다.`);
|
|
95
|
+
console.error(` 현재 배포된 패키지 내부 구조를 확인하세요.`);
|
|
81
96
|
}
|
|
82
97
|
} catch (err) {
|
|
83
|
-
console.error(
|
|
98
|
+
console.error(`❌ 프롬프트 생성 중 오류 발생:`, err.message);
|
|
84
99
|
}
|
|
85
100
|
}
|
|
86
101
|
|
package/src/index.js
CHANGED
|
@@ -20,12 +20,12 @@ async function main() {
|
|
|
20
20
|
if (args.includes('init')) {
|
|
21
21
|
await runInit();
|
|
22
22
|
} else {
|
|
23
|
-
console.log("
|
|
23
|
+
console.log("Nine MCP Engine 시동 중...");
|
|
24
24
|
// bootstrap이 Promise를 반환하므로 완전히 뜰 때까지 기다림
|
|
25
25
|
await bootstrap();
|
|
26
26
|
}
|
|
27
27
|
} catch (error) {
|
|
28
|
-
console.error("
|
|
28
|
+
console.error("실행 중 치명적인 오류가 발생했습니다:");
|
|
29
29
|
// ⭐️ 에러의 전체 스택과 상세 정보를 출력
|
|
30
30
|
console.error(error);
|
|
31
31
|
if (error.stack) {
|