docuking-mcp 2.5.2 → 2.5.4
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/index.js +25 -31
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* - yy_All_Docu/_Infra_Config/: 민감 정보 백업 (.env 자동 복사, 팀 공유)
|
|
11
11
|
* - yy_All_Docu/_Private/ : 오너 비공개 폴더 (오너만 접근)
|
|
12
12
|
* - yy_Coworker_{폴더명}/ : 협업자 폴더 (yy_All_Docu와 별도, 동기화 대상)
|
|
13
|
-
* - zz_ai_1_Talk/ : AI 대화록 (
|
|
14
|
-
* - zz_ai_2_Todo/ : AI 투두 (
|
|
15
|
-
* - zz_ai_3_Plan/ : AI 플랜 (
|
|
13
|
+
* - zz_ai_1_Talk/ : AI 대화록 (킹톡, Push 대상)
|
|
14
|
+
* - zz_ai_2_Todo/ : AI 투두 (킹투두, Push 대상)
|
|
15
|
+
* - zz_ai_3_Plan/ : AI 플랜 (킹플랜, Push 대상)
|
|
16
16
|
*
|
|
17
17
|
* 접두사 규칙:
|
|
18
|
-
* - yy_ : 사람용 폴더 (문서, 협업자)
|
|
19
|
-
* -
|
|
18
|
+
* - yy_ : 사람용 폴더 (문서, 협업자) - Push 대상
|
|
19
|
+
* - zz_ai_ : AI용 폴더 (Talk, Todo, Plan) - Push 대상
|
|
20
20
|
* - _ : 비공개 폴더 (본인만 접근)
|
|
21
21
|
*
|
|
22
22
|
* 도구:
|
|
@@ -530,7 +530,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
530
530
|
},
|
|
531
531
|
{
|
|
532
532
|
name: 'docuking_talk',
|
|
533
|
-
description: '의미 있는 대화 내용을 zz_ai_1_Talk/ 폴더에 기록합니다 (
|
|
533
|
+
description: '의미 있는 대화 내용을 zz_ai_1_Talk/ 폴더에 기록합니다 (Push 대상, 킹톡). AI가 중요한 논의/결정이라고 판단하거나, 사용자가 "이거 기록해줘"라고 요청할 때 사용.',
|
|
534
534
|
inputSchema: {
|
|
535
535
|
type: 'object',
|
|
536
536
|
properties: {
|
|
@@ -557,7 +557,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
559
|
name: 'docuking_plan',
|
|
560
|
-
description: '작업 계획 문서를 zz_ai_3_Plan/ 폴더에 생성/업데이트합니다 (
|
|
560
|
+
description: '작업 계획 문서를 zz_ai_3_Plan/ 폴더에 생성/업데이트합니다 (Push 대상, 킹플랜). 작업 시작 시 계획을 작성하고, 진행하면서 결과를 upsert합니다.',
|
|
561
561
|
inputSchema: {
|
|
562
562
|
type: 'object',
|
|
563
563
|
properties: {
|
|
@@ -626,7 +626,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
626
626
|
},
|
|
627
627
|
{
|
|
628
628
|
name: 'docuking_todo',
|
|
629
|
-
description: `킹투두(King Todo) - 프로젝트 공식 할일을 zz_ai_2_Todo/z_King_Todo.md에 관리합니다 (
|
|
629
|
+
description: `킹투두(King Todo) - 프로젝트 공식 할일을 zz_ai_2_Todo/z_King_Todo.md에 관리합니다 (Push 대상).
|
|
630
630
|
|
|
631
631
|
**AI 내장 TodoWrite와 다름!** 킹투두는 웹에 동기화되고 팀과 공유됩니다.
|
|
632
632
|
|
|
@@ -700,7 +700,7 @@ DocuKing은 문서 버전 관리 시스템입니다. Git이 코드를 관리하
|
|
|
700
700
|
- **로컬**: 사용자의 yy_All_Docu/ 폴더 (동기화 대상)
|
|
701
701
|
- **웹탐색기**: DocuKing 서버의 파일 저장소 (킹폴더)
|
|
702
702
|
- **캔버스**: 선택된 파일을 시각화하는 작업 공간
|
|
703
|
-
- **AI 작업 폴더**: zz_ai_1_Talk/, zz_ai_2_Todo/, zz_ai_3_Plan/ (
|
|
703
|
+
- **AI 작업 폴더**: zz_ai_1_Talk/, zz_ai_2_Todo/, zz_ai_3_Plan/ (Push 대상)
|
|
704
704
|
|
|
705
705
|
작동 방식: 로컬 yy_All_Docu/ → Push → 킹폴더 → 캔버스에서 시각화
|
|
706
706
|
|
|
@@ -773,12 +773,12 @@ zz_ai_3_Plan/
|
|
|
773
773
|
특정 커밋으로 되돌립니다. (웹 탐색기에서 사용 가능)
|
|
774
774
|
|
|
775
775
|
### 9. docuking_talk
|
|
776
|
-
의미 있는 대화 내용을 \`zz_ai_1_Talk/\` 폴더에 기록합니다 (
|
|
776
|
+
의미 있는 대화 내용을 \`zz_ai_1_Talk/\` 폴더에 기록합니다 (Push 대상, 킹톡).
|
|
777
777
|
- AI가 중요한 논의/결정이라고 판단할 때
|
|
778
778
|
- 사용자가 "이거 기록해줘"라고 요청할 때
|
|
779
779
|
|
|
780
780
|
### 10. docuking_plan
|
|
781
|
-
작업 계획을 \`zz_ai_3_Plan/\` 폴더에 생성/업데이트합니다 (
|
|
781
|
+
작업 계획을 \`zz_ai_3_Plan/\` 폴더에 생성/업데이트합니다 (Push 대상, 킹플랜).
|
|
782
782
|
- 작업 시작 시 계획 생성
|
|
783
783
|
- 진행하면서 단계별 결과 upsert
|
|
784
784
|
- planId로 기존 계획 찾아서 업데이트
|
|
@@ -888,9 +888,9 @@ project/
|
|
|
888
888
|
├── yy_Coworker_devkim/ ← 참여자 "devkim"의 폴더 (별도)
|
|
889
889
|
│ ├── proposal.md ← 여기에만 Push 가능
|
|
890
890
|
│ └── revision.md ← 여기에만 Push 가능
|
|
891
|
-
├── zz_ai_1_Talk/ ← AI 대화록 (
|
|
892
|
-
├── zz_ai_2_Todo/ ← AI 투두 (
|
|
893
|
-
└── zz_ai_3_Plan/ ← AI 플랜 (
|
|
891
|
+
├── zz_ai_1_Talk/ ← AI 대화록 (Push 대상)
|
|
892
|
+
├── zz_ai_2_Todo/ ← AI 투두 (Push 대상)
|
|
893
|
+
└── zz_ai_3_Plan/ ← AI 플랜 (Push 대상)
|
|
894
894
|
\`\`\`
|
|
895
895
|
|
|
896
896
|
**중요 규칙:**
|
|
@@ -989,7 +989,7 @@ AI: (결정이 내려졌으므로 docuking_talk 호출)
|
|
|
989
989
|
})
|
|
990
990
|
\`\`\`
|
|
991
991
|
|
|
992
|
-
**저장 위치:** \`zz_ai_1_Talk/YYYY-MM-DD_HHMM__제목.md\` (플랫 구조,
|
|
992
|
+
**저장 위치:** \`zz_ai_1_Talk/YYYY-MM-DD_HHMM__제목.md\` (플랫 구조, Push 대상)
|
|
993
993
|
|
|
994
994
|
### 작업 계획 관리 (docuking_plan, docuking_done)
|
|
995
995
|
|
|
@@ -1040,7 +1040,7 @@ AI: docuking_done({
|
|
|
1040
1040
|
})
|
|
1041
1041
|
\`\`\`
|
|
1042
1042
|
|
|
1043
|
-
**저장 위치:** \`zz_ai_3_Plan/YYYY-MM-DD_HHMM__제목__planId.md\` (플랫 구조,
|
|
1043
|
+
**저장 위치:** \`zz_ai_3_Plan/YYYY-MM-DD_HHMM__제목__planId.md\` (플랫 구조, Push 대상)
|
|
1044
1044
|
|
|
1045
1045
|
**핵심 가치:**
|
|
1046
1046
|
- AI 세션이 끊겨도 (컴팩션, 세션 종료) 다음 AI가 계획 문서를 보고 이어서 작업 가능
|
|
@@ -1116,15 +1116,15 @@ C:\\Projects\\MyApp\\
|
|
|
1116
1116
|
├── src/
|
|
1117
1117
|
├── package.json
|
|
1118
1118
|
├── yy_All_Docu/ ← 프로젝트 A와 연결 (동기화)
|
|
1119
|
-
├── zz_ai_1_Talk/ ← AI 대화록 (
|
|
1120
|
-
├── zz_ai_2_Todo/ ← AI 투두 (
|
|
1121
|
-
└── zz_ai_3_Plan/ ← AI 플랜 (
|
|
1119
|
+
├── zz_ai_1_Talk/ ← AI 대화록 (Push 대상)
|
|
1120
|
+
├── zz_ai_2_Todo/ ← AI 투두 (Push 대상)
|
|
1121
|
+
└── zz_ai_3_Plan/ ← AI 플랜 (Push 대상)
|
|
1122
1122
|
|
|
1123
1123
|
C:\\Projects\\MyWebsite\\
|
|
1124
1124
|
├── pages/
|
|
1125
1125
|
├── components/
|
|
1126
1126
|
├── yy_All_Docu/ ← 프로젝트 B와 연결
|
|
1127
|
-
└── zz_ai_*/ ←
|
|
1127
|
+
└── zz_ai_*/ ← AI 작업 폴더들 (Push 대상)
|
|
1128
1128
|
\`\`\`
|
|
1129
1129
|
|
|
1130
1130
|
**AI가 해야 할 일:**
|
|
@@ -1326,9 +1326,9 @@ docuking_init 호출 시 apiKey 파라미터를 포함해주세요.`,
|
|
|
1326
1326
|
|
|
1327
1327
|
폴더 구조:
|
|
1328
1328
|
- yy_All_Docu/ : 동기화 대상 (킹폴더)
|
|
1329
|
-
- zz_ai_1_Talk/ : AI 대화록 (
|
|
1330
|
-
- zz_ai_2_Todo/ : AI 투두 (
|
|
1331
|
-
- zz_ai_3_Plan/ : AI 플랜 (
|
|
1329
|
+
- zz_ai_1_Talk/ : AI 대화록 (Push 대상, 킹톡)
|
|
1330
|
+
- zz_ai_2_Todo/ : AI 투두 (Push 대상, 킹투두)
|
|
1331
|
+
- zz_ai_3_Plan/ : AI 플랜 (Push 대상, 킹플랜)`,
|
|
1332
1332
|
},
|
|
1333
1333
|
],
|
|
1334
1334
|
};
|
|
@@ -1598,7 +1598,7 @@ docuking_init을 먼저 실행하세요.`,
|
|
|
1598
1598
|
}
|
|
1599
1599
|
}
|
|
1600
1600
|
|
|
1601
|
-
if (filesToPush.length === 0) {
|
|
1601
|
+
if (filesToPush.length === 0 && emptyFolders.length === 0) {
|
|
1602
1602
|
return {
|
|
1603
1603
|
content: [
|
|
1604
1604
|
{
|
|
@@ -2368,10 +2368,9 @@ function collectFilesSimple(basePath, relativePath, results, excludedFiles = nul
|
|
|
2368
2368
|
}
|
|
2369
2369
|
}
|
|
2370
2370
|
|
|
2371
|
-
// 유틸: 디렉토리 재귀 탐색 (기존
|
|
2371
|
+
// 유틸: 디렉토리 재귀 탐색 (기존 호환용, 현재 미사용)
|
|
2372
2372
|
// excludedFiles: 제외된 파일 목록을 수집할 배열 (선택)
|
|
2373
2373
|
// largeFiles: 대용량 파일 목록을 수집할 배열 (선택)
|
|
2374
|
-
// zz_* 폴더는 로컬 전용이므로 동기화에서 제외
|
|
2375
2374
|
function collectFiles(basePath, relativePath, results, excludedFiles = null, largeFiles = null) {
|
|
2376
2375
|
const fullPath = path.join(basePath, relativePath);
|
|
2377
2376
|
const entries = fs.readdirSync(fullPath, { withFileTypes: true });
|
|
@@ -2380,11 +2379,6 @@ function collectFiles(basePath, relativePath, results, excludedFiles = null, lar
|
|
|
2380
2379
|
const entryRelPath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
|
|
2381
2380
|
|
|
2382
2381
|
if (entry.isDirectory()) {
|
|
2383
|
-
// zz_* 폴더는 로컬 전용 (AI 작업 기록 등)이므로 동기화에서 제외
|
|
2384
|
-
if (entry.name.startsWith('zz_')) {
|
|
2385
|
-
console.error(`[DocuKing] 제외됨: ${entryRelPath}/ (zz_* 폴더 - 로컬 전용)`);
|
|
2386
|
-
continue;
|
|
2387
|
-
}
|
|
2388
2382
|
collectFiles(basePath, entryRelPath, results, excludedFiles, largeFiles);
|
|
2389
2383
|
} else if (entry.isFile()) {
|
|
2390
2384
|
const fileType = getFileType(entry.name);
|