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

@@ -164,11 +164,28 @@
"uninstall": "Uninstall",
"uninstalling": "Uninstalling...",
"uninstallConfirm": "Are you sure you want to uninstall CCW MCP?",
"uninstallScopeConfirm": "Are you sure you want to remove CCW MCP from {scope}?",
"saveConfig": "Save Configuration",
"saving": "Saving..."
},
"scope": {
"global": "Global",
"project": "Project",
"addScope": "Install to other scope",
"installToProject": "Also install to project",
"installToGlobal": "Also install to global",
"uninstallFrom": "Uninstall by scope",
"uninstallGlobal": "Remove from global",
"uninstallProject": "Remove from project"
},
"codexNote": "Requires: npm install -g claude-code-workflow"
},
"conflict": {
"badge": "Conflict",
"title": "Scope Conflict",
"description": "This server exists in both project and global scopes. The {scope} version is used at runtime.",
"resolution": "Consider removing this server from one of the scopes."
},
"recommended": {
"title": "Recommended Servers",
"description": "Quickly install popular MCP servers with one click",

View File

@@ -121,6 +121,7 @@
"disabled": "Disabled",
"platforms": "Platform Configuration",
"events": "Event Triggers",
"selectPlatforms": "Select which platforms to notify for this event:",
"noPlatforms": "No platforms",
"configured": "Configured",
"save": "Save",
@@ -151,6 +152,36 @@
"method": "HTTP Method",
"headers": "Custom Headers (JSON)",
"headersHint": "Optional JSON object with custom headers"
},
"feishu": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "Get from Feishu robot settings",
"useCard": "Use Card Format",
"useCardHint": "Send as rich interactive card",
"title": "Card Title (optional)"
},
"dingtalk": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "Get from DingTalk robot settings",
"keywords": "Security Keywords",
"keywordsHint": "Comma-separated keywords for security check"
},
"wecom": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "Get from WeCom robot settings",
"mentionedList": "Mention Users",
"mentionedListHint": "User IDs to mention, use '@all' for everyone"
},
"email": {
"host": "SMTP Host",
"hostHint": "e.g., smtp.gmail.com",
"port": "Port",
"secure": "Use TLS",
"username": "Username",
"password": "Password",
"from": "Sender Email",
"to": "Recipients",
"toHint": "Comma-separated email addresses"
}
},
"versionCheck": {

View File

@@ -78,9 +78,51 @@
"layoutSplitV": "Split Vertical",
"layoutGrid": "Grid 2x2",
"launchCli": "Launch CLI",
"tool": "Tool",
"mode": "Mode",
"modeDefault": "Default",
"modeYolo": "Yolo",
"quickCreate": "Quick Create",
"configure": "Configure..."
},
"cliConfig": {
"title": "Create CLI Session",
"description": "Configure tool, model, mode, shell, and working directory.",
"tool": "Tool",
"model": "Model",
"modelAuto": "Auto",
"mode": "Mode",
"modeDefault": "Default",
"modeYolo": "Yolo",
"shell": "Shell",
"workingDir": "Working Directory",
"workingDirPlaceholder": "e.g. /path/to/project",
"browse": "Browse",
"errors": {
"workingDirRequired": "Working directory is required.",
"createFailed": "Failed to create session."
}
},
"fileBrowser": {
"title": "File Browser",
"open": "Open file browser",
"selected": "Selected file",
"noSelection": "No file selected",
"copyPath": "Copy path",
"copied": "Copied",
"insertPath": "Insert into terminal",
"loading": "Loading...",
"loadFailed": "Failed to load file tree"
},
"artifacts": {
"types": {
"workflowSession": "Workflow",
"liteSession": "Lite",
"claudeMd": "CLAUDE.md",
"ccwConfig": "CCW Config",
"issue": "Issue"
}
},
"pane": {
"selectSession": "Select a session",
"selectSessionHint": "Choose a terminal session from the dropdown",

View File

@@ -164,11 +164,28 @@
"uninstall": "卸载",
"uninstalling": "卸载中...",
"uninstallConfirm": "确定要卸载 CCW MCP 吗?",
"uninstallScopeConfirm": "确定要从{scope}移除 CCW MCP 吗?",
"saveConfig": "保存配置",
"saving": "保存中..."
},
"scope": {
"global": "全局",
"project": "项目",
"addScope": "安装到其他作用域",
"installToProject": "同时安装到项目",
"installToGlobal": "同时安装到全局",
"uninstallFrom": "按作用域卸载",
"uninstallGlobal": "从全局移除",
"uninstallProject": "从项目移除"
},
"codexNote": "需要全局安装npm install -g claude-code-workflow"
},
"conflict": {
"badge": "冲突",
"title": "作用域冲突",
"description": "此服务器同时存在于项目和全局作用域。运行时使用{scope}版本。",
"resolution": "建议从其中一个作用域移除该服务器。"
},
"recommended": {
"title": "推荐服务器",
"description": "一键快速安装热门 MCP 服务器",

View File

@@ -121,6 +121,7 @@
"disabled": "已禁用",
"platforms": "平台配置",
"events": "事件触发器",
"selectPlatforms": "选择此事件要通知的平台:",
"noPlatforms": "无平台",
"configured": "已配置",
"save": "保存",
@@ -151,6 +152,36 @@
"method": "HTTP 方法",
"headers": "自定义请求头JSON",
"headersHint": "可选的 JSON 对象,包含自定义请求头"
},
"feishu": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "从飞书机器人设置中获取",
"useCard": "使用卡片格式",
"useCardHint": "以富交互卡片形式发送",
"title": "卡片标题(可选)"
},
"dingtalk": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "从钉钉机器人设置中获取",
"keywords": "安全关键词",
"keywordsHint": "逗号分隔的关键词,用于安全校验"
},
"wecom": {
"webhookUrl": "Webhook URL",
"webhookUrlHint": "从企业微信机器人设置中获取",
"mentionedList": "提醒用户",
"mentionedListHint": "要提醒的用户 ID使用 '@all' 提醒所有人"
},
"email": {
"host": "SMTP 服务器",
"hostHint": "例如smtp.gmail.com",
"port": "端口",
"secure": "使用 TLS",
"username": "用户名",
"password": "密码",
"from": "发件人邮箱",
"to": "收件人",
"toHint": "逗号分隔的邮箱地址"
}
},
"versionCheck": {

View File

@@ -78,9 +78,51 @@
"layoutSplitV": "上下分割",
"layoutGrid": "2x2 网格",
"launchCli": "启动 CLI",
"tool": "工具",
"mode": "模式",
"modeDefault": "默认",
"modeYolo": "Yolo",
"quickCreate": "快速创建",
"configure": "配置..."
},
"cliConfig": {
"title": "创建 CLI 会话",
"description": "配置工具、模型、模式、Shell 与工作目录。",
"tool": "工具",
"model": "模型",
"modelAuto": "自动",
"mode": "模式",
"modeDefault": "默认",
"modeYolo": "Yolo",
"shell": "Shell",
"workingDir": "工作目录",
"workingDirPlaceholder": "例如:/path/to/project",
"browse": "浏览",
"errors": {
"workingDirRequired": "工作目录不能为空。",
"createFailed": "创建会话失败。"
}
},
"fileBrowser": {
"title": "文件浏览器",
"open": "打开文件浏览器",
"selected": "已选文件",
"noSelection": "未选择文件",
"copyPath": "复制路径",
"copied": "已复制",
"insertPath": "插入到终端",
"loading": "加载中...",
"loadFailed": "加载文件树失败"
},
"artifacts": {
"types": {
"workflowSession": "工作流",
"liteSession": "Lite",
"claudeMd": "CLAUDE.md",
"ccwConfig": "配置",
"issue": "问题"
}
},
"pane": {
"selectSession": "选择会话",
"selectSessionHint": "从下拉菜单中选择终端会话",