fix: recursive Second Brain parsing (v1.0.15)
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "connect-ai-lab",
|
"name": "connect-ai-lab",
|
||||||
"displayName": "Connect AI",
|
"displayName": "Connect AI",
|
||||||
"description": "100% 로컬 AI 코딩 에이전트 — 파일 생성, 코드 편집, 터미널 실행을 오프라인으로. Ollama + Gemma/Llama/DeepSeek 지원.",
|
"description": "100% 로컬 AI 코딩 에이전트 — 파일 생성, 코드 편집, 터미널 실행을 오프라인으로. Ollama + Gemma/Llama/DeepSeek 지원.",
|
||||||
"version": "1.0.14",
|
"version": "1.0.15",
|
||||||
"publisher": "connectailab",
|
"publisher": "connectailab",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"icon": "assets/icon.png",
|
"icon": "assets/icon.png",
|
||||||
|
|||||||
+25
-7
@@ -330,14 +330,32 @@ class SidebarChatProvider implements vscode.WebviewViewProvider {
|
|||||||
|
|
||||||
let combined = '';
|
let combined = '';
|
||||||
try {
|
try {
|
||||||
const files = fs.readdirSync(brainDir);
|
// 하위 폴더까지 재귀적으로 탐색하여 지식을 긁어오는 함수
|
||||||
for (const file of files) {
|
const findFilesRecursive = (dir: string): string[] => {
|
||||||
// 마크다운(.md)과 텍스트 파일만 수집
|
let results: string[] = [];
|
||||||
if (file.endsWith('.md') || file.endsWith('.txt')) {
|
const list = fs.readdirSync(dir);
|
||||||
const content = fs.readFileSync(path.join(brainDir, file), 'utf-8');
|
for (const file of list) {
|
||||||
// 컨텍스트 크기 제한 방지 (각 파일당 최대 5000자 반영)
|
const filePath = path.join(dir, file);
|
||||||
combined += `\n--- [User Knowledge Base: ${file}] ---\n${content.slice(0, 5000)}\n`;
|
const stat = fs.statSync(filePath);
|
||||||
|
if (stat && stat.isDirectory()) {
|
||||||
|
// Git 폴더 등은 무시
|
||||||
|
if (file !== '.git' && file !== 'node_modules') {
|
||||||
|
results = results.concat(findFilesRecursive(filePath));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (file.endsWith('.md') || file.endsWith('.txt')) {
|
||||||
|
results.push(filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
|
||||||
|
const files = findFilesRecursive(brainDir);
|
||||||
|
for (const file of files) {
|
||||||
|
const content = fs.readFileSync(file, 'utf-8');
|
||||||
|
// 컨텍스트 크기 제한 방지 (각 파일당 최대 3000자 반영)
|
||||||
|
combined += `\n--- [User Knowledge Base: ${path.basename(file)}] ---\n${content.slice(0, 3000)}\n`;
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Brain read error', e);
|
console.error('Brain read error', e);
|
||||||
|
|||||||
Reference in New Issue
Block a user