GitNexus 完整技术栈分析

文章目录

  • 前言
      • [🏗️ **整体架构**](#🏗️ 整体架构)
    • [💾 **核心技术栈详解**](#💾 核心技术栈详解)
    • [📊 **技术栈总览表**](#📊 技术栈总览表)
    • [🔌 **集成点**](#🔌 集成点)
    • [🚀 **部署选项**](#🚀 部署选项)
      • [**1. CLI (本地)**](#1. CLI (本地))
      • [**2. Web (WASM)**](#2. Web (WASM))
      • [**3. Docker**](#3. Docker)
      • [**4. Enterprise (SaaS)**](#4. Enterprise (SaaS))
    • [📈 **性能关键点**](#📈 性能关键点)
    • [🔐 **安全特性**](#🔐 安全特性)

前言

🏗️ 整体架构

复制代码
GitNexus (Monorepo)
├── CLI/Core (Node.js)
├── Web UI (React + Vite)
├── Shared Types (TypeScript)
├── Evaluation Framework (Python)
└── Editor Integrations (Static Config)

💾 核心技术栈详解

一、CLI/Core (gitnexus/) - Node.js + TypeScript

核心依赖
json 复制代码
{
  "Runtime": {
    "node": ">=22.0.0",
    "type": "module (ESM)"
  },
  
  "CodeParsing": {
    "@huggingface/transformers": "^4.1.0",     // 向量化 + 语义搜索
    "tree-sitter": "^0.21.1",                   // 核心 AST 解析器
    "tree-sitter-*": [
      "typescript", "javascript", "python",
      "java", "kotlin", "c#", "go", "rust",
      "php", "ruby", "c", "c++", "dart"
    ]
  },
  
  "GraphDatabase": {
    "@ladybugdb/core": "^0.16.1"              // 知识图谱存储 (WASM 友好)
  },
  
  "GraphProcessing": {
    "graphology": "^0.26.0",                  // 图数据结构
    "graphology-indices": "^0.17.0",          // 图算法库
    "graphology-utils": "^2.3.0",             // 图工具
    "mnemonist": "^0.40.3",                   // 高效数据结构
    "pandemonium": "^2.4.0"                   // 并发工具
  },
  
  "ML/Embeddings": {
    "onnxruntime-node": "^1.24.0",            // 运行 ONNX 模型 (本地推理)
    "@huggingface/transformers": "^4.1.0"     // Hugging Face 模型库
  },
  
  "ServerFramework": {
    "express": "^5.2.1",                      // HTTP API (serve 命令)
    "express-rate-limit": "^8.4.1",           // 速率限制
    "cors": "^2.8.5"                          // 跨域支持
  },
  
  "MCP(AgentInterface)": {
    "@modelcontextprotocol/sdk": "^1.0.0"     // Model Context Protocol
  },
  
  "CLI": {
    "commander": "^14.0.3",                   // CLI 参数解析
    "cli-progress": "^3.12.0",                // 进度条
    "pino": "^10.3.1",                        // 日志库
    "pino-pretty": "^13.1.3"                  // 美化日志输出
  },
  
  "Utilities": {
    "js-yaml": "^4.1.1",                      // YAML 解析
    "jsonc-parser": "^3.3.1",                 // JSON with Comments
    "uuid": "^14.0.0",                        // UUID 生成
    "lru-cache": "^11.0.0",                   // 缓存
    "glob": "^13.0.6",                        // 文件匹配
    "ignore": "^7.0.5"                        // gitignore 支持
  }
}
开发工具
json 复制代码
{
  "TypeScript": "^5.4.5",
  "Vitest": "^4.0.18",                        // 单元 + 集成测试
  "tsx": "^4.0.0",                            // TypeScript 直接执行
  "Coverage": "@vitest/coverage-v8"
}
可选依赖 (native addon)
json 复制代码
{
  "tree-sitter-kotlin": "^0.3.8",             // 可选 Kotlin 支持
  "node-gyp-build": "^4.8.0",                 // 原生模块编译
  "node-addon-api": "^8.0.0"
}

二、Web UI (gitnexus-web/) - React + Vite

前端框架
json 复制代码
{
  "Runtime": {
    "react": "^19.2.5",                       // 最新 React
    "react-dom": "^19.2.6"
  },
  
  "BuildTool": {
    "vite": "^8.0.11",                        // 闪电快速构建
    "typescript": "^5.4.5",
    "@vitejs/plugin-react": "^5.1.4"          // React JSX 支持
  },
  
  "Styling": {
    "tailwindcss": "^4.2.4",                  // Utility-first CSS
    "@tailwindcss/vite": "^4.3.0"             // Vite 集成
  },
  
  "GraphVisualization": {
    "sigma": "^3.0.2",                        // WebGL 图可视化引擎
    "@sigma/edge-curve": "^3.1.0",            // 弧形边
    "graphology": "^0.26.0",                  // 图数据结构
    "graphology-indices": "^0.17.0",
    "graphology-layout-force": "^0.2.4",      // 力导向布局
    "graphology-layout-forceatlas2": "^0.10.1", // ForceAtlas2 算法
    "graphology-layout-noverlap": "^0.4.2",   // 防重叠布局
    "graphology-utils": "^2.3.0",
    "d3": "^7.9.0"                            // 数据可视化
  },
  
  "AIAgent": {
    "@langchain/anthropic": "^1.3.29",        // Claude 集成
    "@langchain/openai": "^1.4.5",            // GPT 集成
    "@langchain/google-genai": "^2.1.30",     // Gemini 集成
    "@langchain/ollama": "^1.2.6",            // 本地 Ollama
    "@langchain/langgraph": "^1.2.9",         // 多步骤代理
    "@langchain/core": "^1.1.44",             // 核心库
    "langchain": "^1.3.5",                    // 完整工具箱
    "zod": "^4.4.3"                           // 数据验证 (LangChain)
  },
  
  "MarkdownRendering": {
    "react-markdown": "^10.1.0",              // Markdown → React
    "remark-gfm": "^4.0.1",                   // GitHub Flavor 支持
    "react-syntax-highlighter": "^16.1.1"    // 代码高亮
  },
  
  "i18n": {
    "i18next": "^26.2.0",                     // 国际化框架
    "react-i18next": "^17.0.8",               // React 绑定
    "i18next-browser-languagedetector": "^8.2.1" // 语言检测
  },
  
  "Utils": {
    "axios": "^1.16.0",                       // HTTP 客户端
    "lru-cache": "^11.2.4",                   // 缓存
    "uuid": "^14.0.0",                        // UUID
    "dompurify": "^3.4.3",                    // HTML 清理 (安全)
    "mermaid": "^11.15.0",                    // 图表生成
    "react-zoom-pan-pinch": "^4.0.3",         // 图交互
    "lucide-react": "^1.14.0"                 // 图标库
  }
}
测试工具
json 复制代码
{
  "UnitTesting": "vitest ^4.1.5",
  "E2ETesting": "@playwright/test ^1.58.2",
  "Testing": [
    "@testing-library/react ^16.3.2",
    "@testing-library/jest-dom ^6.9.1",
    "@testing-library/user-event ^14.6.1"
  ]
}

三、共享库 (gitnexus-shared/) - TypeScript

json 复制代码
{
  "Role": "类型定义 + 常量共享",
  "Dependencies": ["typescript ^6.0.3"],
  "Exports": [
    "./dist/index.js       → 主类型",
    "./dist/test-helpers.js → 测试工具"
  ]
}

四、评估框架 (eval/) - Python

依赖
toml 复制代码
[dependencies]
mini-swe-agent     = ">=2.0.0"    # SWE-bench 代理基础
litellm            = ">=1.83.7"   # 多 LLM 提供商支持
datasets           = ">=3.0.0"    # SWE-bench 数据集
typer              = ">=0.12.0"   # CLI 工具
rich               = ">=13.0.0"   # 美化输出
pyyaml             = ">=6.0"      # YAML 配置
pandas             = ">=2.0.0"    # 数据分析
tabulate           = ">=0.9.0"    # 表格输出
python-dotenv      = ">=1.2.2"    # .env 支持

[dev-dependencies]
pytest             = ">=9.0.3"
ruff               = ">=0.5.0"    # 代码检查
hypothesis         = ">=6.88.0"   # 属性测试
coverage           = ">=7.6.0"    # 覆盖率

Python 版本 : >=3.11


五、DevOps 工具链

代码质量
json 复制代码
{
  "Linting": {
    "eslint": "^9.39.4",
    "@typescript-eslint/eslint-plugin": "^8.57.2",
    "@typescript-eslint/parser": "^8.57.2",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-unused-imports": "^4.4.1"
  },
  
  "Formatting": {
    "prettier": "^3.8.0",
    "prettier-plugin-tailwindcss": "^0.7.0"  // Tailwind 类排序
  },
  
  "GitHooks": {
    "husky": "^9.1.7",
    "lint-staged": "^15.5.0"                  // 提交前检查
  }
}
容器化
dockerfile 复制代码
# CLI/Server (Node.js)
Dockerfile.cli
├── 基础镜像: node:22+
├── Python 支持
└── Tree-sitter 原生模块编译

# Web UI (Static)
Dockerfile.web
├── 构建: gitnexus-shared + gitnexus-web
└── Nginx 服务静态文件

# Orchestration
docker-compose.yaml (2 个服务)

📊 技术栈总览表

按层级分类

技术 版本 用途
编程语言 TypeScript, JavaScript, Python TS 5.4, Py 3.11+ 类型安全、数据处理
运行时 Node.js >=22.0 CLI 执行
代码解析 Tree-sitter 0.21.1 14 种语言 AST
图数据库 LadybugDB 0.16.1 知识图谱持久化
图处理 Graphology 0.26.0 社区检测、路径查询
向量化 Hugging Face + ONNX 4.1.0 本地语义搜索
前端框架 React 19.2.5 UI 组件
构建工具 Vite 8.0.11 高性能打包
图可视化 Sigma.js 3.0.2 WebGL 渲染
API 框架 Express.js 5.2.1 HTTP 服务器
Agent 接口 MCP SDK 1.0.0 代理通信
AI 集成 LangChain 1.3.5 多模型支持
日志 Pino 10.3.1 结构化日志
测试 Vitest, Playwright 4.0.18, 1.58.2 单元 + E2E
CSS Tailwind 4.2.4 原子化样式
包管理 npm - monorepo 管理
CI/CD GitHub Actions - 自动化工作流

🔌 集成点

编辑器支持

编辑器 集成方式 配置文件
Claude Code MCP + 钩子 .claude/ + 动态
Cursor MCP + 钩子 ~/.cursor/mcp.json + .cursor/hooks.json
Windsurf MCP .windsurf/ 或全局
Codex MCP 全局配置
OpenCode MCP ~/.config/opencode/config.json

🚀 部署选项

1. CLI (本地)

  • 依赖: Node.js 22+
  • 命令: npm install -g gitnexus
  • 存储: LadybugDB 原生 (.gitnexus/)

2. Web (WASM)

  • 浏览器: 现代浏览器 (Chrome/Firefox/Safari)
  • 存储: LadybugDB WASM (内存)
  • 无需后端

3. Docker

bash 复制代码
# CLI 镜像
docker run ghcr.io/abhigyanpatwari/gitnexus:latest

# Web UI 镜像
docker run ghcr.io/abhigyanpatwari/gitnexus-web:latest

# Compose 编排
docker-compose up -d

4. Enterprise (SaaS)

  • Hosted at akonlabs.com
  • 附加功能: OCaml, 自动重索引, PR 审查

📈 性能关键点

复制代码
解析管道:
├─ Tree-sitter 原生绑定 (C++)
├─ Worker threads (并行处理)
├─ 增量解析 (缓存策略)
└─ LadybugDB 优化索引

搜索:
├─ BM25 (关键词)
├─ 向量化 (ONNX 本地推理)
└─ RRF (排名融合)

API:
├─ Express.js (轻量快速)
├─ 连接池 (多仓库)
└─ 缓存 (LRU + 图查询结果)

🔐 安全特性

本地优先 : 所有数据在本地存储

开源 : 可自审计代码

没有 LLM 调用 : 索引过程离线

Cosign 签名 : Docker 镜像验证

SBOM 报告: 供应链透明


相关推荐
数智化管理手记26 分钟前
手工统计指标误差大、效率低?指标管理系统如何告别人工算数痛点?
大数据·运维·数据库·人工智能·云计算
fthux4 小时前
RenoPit 能为普通业主做什么?看懂图纸、审查合同,提前发现装修坑
javascript·人工智能·ai·开源·github·chrome扩展·open source·edge扩展·firefox扩展
火山引擎开发者社区6 小时前
火山引擎混合云 veStack 智算平台 Day0 适配 Kimi K3
人工智能
RSABLOCKCHAIN7 小时前
AI Agents in LangGraph-2
人工智能·python
cd_949217217 小时前
哪些AI工具适合生成游戏开发用的3D道具模型?从道具草稿到引擎测试的选择方法
人工智能·3d
FII工业富联科技服务7 小时前
工业设备运维如何Agentic化?拆解Factory Brain的设备运维架构
大数据·运维·人工智能·架构·制造
糖果店的幽灵7 小时前
人已经用 WorkBuddy 找工作拿了面试,你还在一份份手工改简历
人工智能·面试·职场和发展·langgraph
qq29538 小时前
2026 财搭子决策模拟器:多智能体投研架构能力拆解
大数据·人工智能·架构
满怀冰雪9 小时前
12-PaddlePaddle, 飞桨, 分类模型, 训练循环, 损失函数, 优化器, cross_entropy, Adam
人工智能·深度学习·分类·paddlepaddle
冬奇Lab9 小时前
AI 评测系列(08):评测 CI/CD——持续质量门控
人工智能