From 279e6715cdfb81177c8c0de4db6ba9e314234030 Mon Sep 17 00:00:00 2001 From: Jay Date: Sat, 18 Apr 2026 16:32:55 +0900 Subject: [PATCH] feat: parse real workspace files for knowledge graph topology and add organic organic movement --- src/extension.ts | 79 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 25 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index c940907..b489e79 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -393,7 +393,7 @@ console.log('Connect AI extension activated.'); ); } -function showBrainNetwork(context: vscode.ExtensionContext) { +async function showBrainNetwork(context: vscode.ExtensionContext) { const panel = vscode.window.createWebviewPanel( 'brainTopology', 'Neural Construct (Brain)', @@ -401,6 +401,28 @@ function showBrainNetwork(context: vscode.ExtensionContext) { { enableScripts: true, retainContextWhenHidden: true } ); + // Scan REAL workspace files + const uris = await vscode.workspace.findFiles('**/*.{md,ts,js,json,html,css,py,tsx,jsx}', '{**/node_modules/**,**/.git/**,**/dist/**,**/out/**,**/.svelte-kit/**}', 400); + + const realClusters: Record = {}; + for (const uri of uris) { + const pathParts = uri.path.split('/'); + const fileName = pathParts.pop() || 'Unknown'; + const folderName = pathParts.pop() || 'Root'; + // Prefix folder to group them + const groupName = folderName === 'local-ai-coder' || folderName === 'Root' ? 'Project Core' : folderName; + + if (!realClusters[groupName]) realClusters[groupName] = []; + realClusters[groupName].push(fileName); + } + + // Fallback if empty + if (Object.keys(realClusters).length === 0) { + realClusters['Empty Node'] = ['No files found in workspace...']; + } + + const clustersJsonString = JSON.stringify(realClusters); + panel.webview.html = ` @@ -420,24 +442,15 @@ function showBrainNetwork(context: vscode.ExtensionContext) {
-

\\u2726 Neural Construct

+

\\u2726 Neural Construct

loading...

`;