feat: add experimental support for AST parsing and static graph indexing

- Introduced CLI options for using AST grep parsers and enabling static graph relationships during indexing.
- Updated configuration management to load new settings for AST parsing and static graph types.
- Enhanced AST grep processor to handle imports with aliases and improve relationship tracking.
- Modified TreeSitter parsers to support synthetic module scopes for better static graph persistence.
- Implemented global relationship updates in the incremental indexer for static graph expansion.
- Added new ArtifactTag and FloatingFileBrowser components to the frontend for improved terminal dashboard functionality.
- Created utility functions for detecting CCW artifacts in terminal output with associated tests.
This commit is contained in:
catlog22
2026-02-15 23:12:06 +08:00
parent 48a6a1f2aa
commit 8938c47f88
39 changed files with 2956 additions and 297 deletions

View File

@@ -21,6 +21,7 @@ import {
crossCliCopy,
type McpServer,
type McpServersResponse,
type McpServerConflict,
type McpProjectConfigType,
type McpTemplate,
type McpTemplateInstallRequest,
@@ -66,6 +67,7 @@ export interface UseMcpServersReturn {
servers: McpServer[];
projectServers: McpServer[];
globalServers: McpServer[];
conflicts: McpServerConflict[];
totalCount: number;
enabledCount: number;
isLoading: boolean;
@@ -95,6 +97,7 @@ export function useMcpServers(options: UseMcpServersOptions = {}): UseMcpServers
const projectServers = query.data?.project ?? [];
const globalServers = query.data?.global ?? [];
const conflicts = query.data?.conflicts ?? [];
const allServers = scope === 'project' ? projectServers : scope === 'global' ? globalServers : [...projectServers, ...globalServers];
const enabledServers = allServers.filter((s) => s.enabled);
@@ -111,6 +114,7 @@ export function useMcpServers(options: UseMcpServersOptions = {}): UseMcpServers
servers: allServers,
projectServers,
globalServers,
conflicts,
totalCount: allServers.length,
enabledCount: enabledServers.length,
isLoading: query.isLoading,
@@ -224,6 +228,7 @@ export function useToggleMcpServer(): UseToggleMcpServerReturn {
return {
project: updateServer(old.project),
global: updateServer(old.global),
conflicts: old.conflicts ?? [],
};
});