feat: add CodexLens v2 management features including model management, index operations, env config, and MCP config

- Implemented CodexLens routes for model listing, downloading, and deleting.
- Added hooks for managing CodexLens models, index status, environment variables, and MCP configuration.
- Created frontend components for managing environment settings, index status, and models.
- Developed the main CodexLens page with tab navigation for easy access to different management features.
- Introduced a new file structure for CodexLens related components and hooks.
This commit is contained in:
catlog22
2026-03-18 16:26:42 +08:00
parent b91bdcdfa4
commit 1e036edddc
15 changed files with 1298 additions and 6 deletions

View File

@@ -1,6 +1,70 @@
{
"title": "Search Manager",
"description": "V2 semantic search index management",
"page": {
"title": "CodexLens v2",
"description": "Semantic code search engine — manage MCP config, embedding models, index state, and environment settings."
},
"tabs": {
"mcp": "MCP Config",
"models": "Model Manager",
"index": "Index Manager",
"env": "Env Settings"
},
"mcp": {
"embedMode": "Embed mode",
"configTitle": "MCP Config JSON",
"copy": "Copy",
"copied": "Copied",
"regenerate": "Regenerate Config",
"loading": "Loading config...",
"error": "Failed to load MCP config.",
"noConfig": "No config available.",
"installTitle": "Installation Instructions",
"installSteps": {
"step1": "Copy the MCP config JSON above using the Copy button.",
"step2": "Open your Claude Desktop or MCP-compatible client configuration file.",
"step3": "Add the copied JSON under the mcpServers key.",
"step4": "Save the configuration file and restart your client.",
"step5": "Verify the CodexLens server appears as an available MCP tool."
}
},
"models": {
"embedMode": "Current embed mode",
"loading": "Loading models...",
"error": "Failed to load models.",
"noModels": "No models found.",
"installed": "Installed",
"notInstalled": "Not installed",
"download": "Download",
"delete": "Delete"
},
"index": {
"pathPlaceholder": "Enter project path (e.g. /home/user/myproject)",
"add": "Add",
"loading": "Loading status...",
"error": "Failed to load index status.",
"filesTracked": "Files tracked",
"totalChunks": "Total chunks",
"deletedChunks": "Deleted chunks",
"sync": "Sync",
"rebuild": "Rebuild",
"refresh": "Refresh Status",
"empty": "Enter a project path above to view index status and manage indexing.",
"removeProject": "Remove project"
},
"env": {
"loading": "Loading environment settings...",
"save": "Save",
"saving": "Saving...",
"clearForm": "Clear Form",
"sections": {
"embed": "Embed Config",
"reranker": "Reranker Config",
"performance": "Performance Tuning",
"index": "Index Params"
}
},
"reindex": "Reindex",
"reindexing": "Reindexing...",
"statusError": "Failed to load search index status",

View File

@@ -426,10 +426,10 @@
},
"exa": {
"name": "Exa Search",
"desc": "AI-powered web search with real-time crawling capabilities",
"desc": "AI-powered web search via remote MCP server (mcp.exa.ai)",
"field": {
"apiKey": "API Key",
"apiKey.desc": "Your Exa API key (optional, some features may require it)"
"apiKey.desc": "Your Exa API key (optional, adds to URL to overcome free plan rate limits)"
}
},
"enterprise": {

View File

@@ -4,6 +4,70 @@
"reindex": "重建索引",
"reindexing": "重建中...",
"statusError": "加载搜索索引状态失败",
"page": {
"title": "CodexLens v2",
"description": "语义代码搜索引擎 — 管理 MCP 配置、嵌入模型、索引状态和环境变量"
},
"tabs": {
"mcp": "MCP 配置",
"models": "模型管理",
"index": "索引管理",
"env": "环境变量"
},
"mcp": {
"embedMode": "嵌入模式",
"configTitle": "MCP 配置 JSON",
"copy": "复制",
"copied": "已复制",
"regenerate": "重新生成配置",
"loading": "加载配置中...",
"error": "加载 MCP 配置失败",
"noConfig": "暂无配置",
"installTitle": "安装说明",
"installSteps": {
"step1": "点击复制按钮复制 MCP 配置 JSON。",
"step2": "打开 Claude Desktop 或兼容 MCP 的客户端配置文件。",
"step3": "将复制的 JSON 添加到 mcpServers 键下。",
"step4": "保存配置文件并重启客户端。",
"step5": "验证 CodexLens 服务器是否作为可用 MCP 工具出现。"
}
},
"models": {
"embedMode": "当前嵌入模式",
"loading": "加载模型中...",
"error": "加载模型失败",
"noModels": "未找到模型",
"installed": "已安装",
"notInstalled": "未安装",
"download": "下载",
"delete": "删除"
},
"index": {
"pathPlaceholder": "输入项目路径(例如 /home/user/myproject",
"add": "添加",
"loading": "加载状态中...",
"error": "加载索引状态失败",
"filesTracked": "跟踪文件数",
"totalChunks": "总分块数",
"deletedChunks": "已删除分块",
"sync": "同步",
"rebuild": "重建",
"refresh": "刷新状态",
"empty": "在上方输入项目路径以查看索引状态和管理索引",
"removeProject": "移除项目"
},
"env": {
"loading": "加载环境设置中...",
"save": "保存",
"saving": "保存中...",
"clearForm": "清空表单",
"sections": {
"embed": "嵌入配置",
"reranker": "重排序配置",
"performance": "性能调优",
"index": "索引参数"
}
},
"indexStatus": {
"title": "索引状态",
"status": "状态",

View File

@@ -415,10 +415,10 @@
},
"exa": {
"name": "Exa 搜索",
"desc": "AI 驱动的网络搜索,支持实时抓取",
"desc": "通过远程 MCP 服务器 (mcp.exa.ai) 实现 AI 驱动的网络搜索",
"field": {
"apiKey": "API 密钥",
"apiKey.desc": "您的 Exa API 密钥(可选,部分功能可能需要"
"apiKey.desc": "您的 Exa API 密钥(可选,填入后将作为 URL 参数传递以突破免费计划限速"
}
},
"enterprise": {