diff --git a/AI_CONTEXT.md b/AI_CONTEXT.md new file mode 100644 index 0000000..7f7d714 --- /dev/null +++ b/AI_CONTEXT.md @@ -0,0 +1,75 @@ +# Fauto Platform - AI Context & Developer Guide + +> **用途**:本文档旨在为后续接入的 AI 助手或开发者提供项目的核心上下文、架构设计与开发准则。 +> **更新时间**:2026-01-27 + +## 1. 项目愿景 (Vision) +**Fauto** 是一个**完全不同**的低代码 + AI 平台。 +它的核心理念是:**拒绝黑盒,源码即真理 (Source is Truth)**。 + +与传统低代码平台(生成 JSON 描述或私有 DSL,运行时解释)不同,Fauto 致力于: +* **源码级生成**:所有配置直接生成可维护的 Vue3 和 Java 源码。 +* **非入侵式**:生成的代码遵循标准框架规范(RuoYi-Vue3),不依赖平台运行时黑盒。 +* **双向同步**:支持可视化拖拽修改,也支持开发者手动修改源码,两者互不冲突(通过 AST 解析)。 +* **极速热更**:利用 Vue HMR 和 Java HotswapAgent 实现“改码即生效”,无需重启服务。 +* **AI 协同**:内置 AI 终端,人类与 AI 在同一个代码库上通过自然语言和可视化工具共同协作。 + +## 2. 核心组件与技术栈 (Core Components) + +### 2.1 底座 (Foundation) +* **框架**:基于 [RuoYi-Vue3](https://gitee.com/y_project/RuoYi-Vue) 进行改造。 +* **后端**:Spring Boot, MyBatis Plus。 +* **前端**:Vue3, Vite, Element Plus。 + +### 2.2 关键子系统 (Key Subsystems) +1. **前端可视化编辑器 (fauto-design)** + * *状态*:已验证 Demo (见 `fauto-design/`)。 + * *原理*:基于 AST (Abstract Syntax Tree) 解析 `.vue` 文件,实现源码级拖拽和属性编辑。 + * *服务*:需要一个 Node.js 伴生服务 (`vue-template-service`) 来处理文件读写和 AST 转换。 + +2. **后端动态引擎 (java-g)** + * *状态*:已验证 Demo (见 `java-g/`)。 + * *原理*: + * **MyBatisGeneratorUtils**:基于对象模型生成复杂的 MyBatis XML 和 ResultMap,支持无限层级关联查询。 + * **JavaParser**:用于分析和修改现有的 Java Controller/Service/Entity,实现增量更新(保留用户手写代码)。 + +3. **热更新环境 (Hot Swap Env)** + * *Java*:集成 **DCEVM** + **HotswapAgent**,支持 Class 重定义、资源文件热更。 + * *Vue*:Vite HMR。 + +4. **AI 协作终端** + * *实现*:Web 端集成 xterm.js,后端集成 pty4j。 + * *功能*:允许在浏览器中直接运行 Trae CLI / Qoder CLI,进行自然语言编程。 + +## 3. 业务流程 (Workflow) + +1. **对象建模**:用户在平台定义数据对象(字段、类型、关联关系)。 +2. **页面设计**: + * 平台根据对象模型生成初始 Vue 页面源码。 + * 用户使用可视化编辑器拖拽组件(修改源码)。 +3. **后端生成**: + * 平台根据对象模型生成/更新 Entity, Mapper XML, Service, Controller。 + * 使用 JavaParser 确保不覆盖用户自定义逻辑。 +4. **热重载**: + * 修改的文件自动触发 Hotswap,用户即刻在预览界面看到效果。 +5. **二次开发**: + * 用户或 AI 可以直接在 IDE 或 Web 终端修改生成的源码,平台通过 AST 重新解析以保持同步。 + +## 4. 项目结构规划 (Project Structure) + +```text +D:\workspace\Fauto\ +├── fauto-platform/ # [平台本身] (基于 RuoYi-Vue3 改造) +│ ├── fauto-generator/ # 核心:代码生成与 AST 引擎 +│ ├── fauto-manager/ # 核心:项目进程管理、环境控制 +│ └── ... +├── workspace/ # [用户项目区] +│ ├── project-A/ # 用户生成的独立项目 +│ └── project-B/ +└── tools/ # [工具链] (HotswapAgent, JDK 等) +``` + +## 5. 开发准则 (Guidelines) +* **优先修改源码**:所有功能的实现最终都应体现为对目标项目源码的修改,而不是数据库里的配置记录。 +* **保持独立性**:生成的项目应当脱离平台也能独立运行。 +* **AST 优于 模板**:为了支持“往返工程”(Round-trip engineering),尽量使用 AST 解析修改,避免使用一次性模板覆盖。 diff --git a/README.md b/README.md index e69de29..bab9e06 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,80 @@ +# Fauto - 下一代低代码 + AI 协作平台 + +> **Status**: 初始化建设中 (Inception Phase) +> **Core Philosophy**: Source-Code Level, Non-Intrusive, Hot-Swappable, AI-Collaborative. + +## 📖 项目简介 + +Fauto 是一个旨在打破传统低代码平台“黑盒”限制的创新型开发平台。我们不生成私有的 JSON 定义,也不依赖复杂的运行时解释器。**Fauto 直接生产高质量、可维护的源码**。 + +通过结合 **Vue3 源码级可视化拖拽**、**Java 增量式代码生成** 以及 **AI 智能终端**,Fauto 允许开发者、业务人员和 AI 助手在同一个代码库上无缝协作。 + +## 🏗️ 总体架构与设计思路 + +### 1. 核心理念:源码即真理 (Source is Truth) +* **传统低代码**:Model JSON -> Runtime Engine (黑盒)。 +* **Fauto**:Visual Editor -> AST Modification -> **Source Code** -> Standard Compiler -> Application。 +* 平台生成的代码与人类手写的代码完全一致,可以被 Git 管理,可以被 IDE 编辑,可以脱离平台运行。 + +### 2. 三大引擎 + +#### A. 前端可视化引擎 (fauto-design) +* **技术**: Vue3 AST, Node.js. +* **功能**: 直接解析 `.vue` 文件,将其转化为可视化编辑器中的组件树。用户的拖拽操作实时转换为对 `.vue` 源码的修改(Template, Script, Style)。 + +#### B. 后端动态生成引擎 (java-g) +* **技术**: JavaParser, MyBatis Dynamic SQL. +* **功能**: + * **智能依赖**: 自动分析对象关系,生成能够处理复杂嵌套查询的 MyBatis XML。 + * **增量更新**: 使用 JavaParser 分析现有 Java 类,只在特定位置插入新字段或方法,严格保护用户手动编写的业务逻辑。 + +#### C. 热重载运行时 (Hot Swap Runtime) +* **技术**: DCEVM, HotswapAgent. +* **功能**: 无论是前端页面的修改,还是后端 Entity/Service 的变更,都能在毫秒级内热更新,提供类似脚本语言的开发体验。 + +### 3. AI 协作层 +* 集成 Web Terminal 与 AI CLI (Trae/Qoder)。 +* 允许用户通过自然语言指令,指挥 AI 直接修改项目文件,与可视化操作形成互补。 + +--- + +## 📅 实施计划 (Implementation Plan) + +### Phase 1: 地基搭建 (Foundation) +- [ ] **项目结构重构**: 建立平台与用户工作区 (`workspace`) 分离的目录结构。 +- [ ] **项目管理器**: 实现基于 Web 的项目创建、导入、与文件系统浏览。 +- [ ] **进程守护**: 实现对子项目 JVM 进程和 Vite 进程的启动、停止与日志监控。 + +### Phase 2: 后端生成引擎 (Backend Engine) +- [ ] **移植 java-g**: 将 `MyBatisGeneratorUtils` 核心逻辑集成到平台。 +- [ ] **引入 JavaParser**: 实现对 Controller/Service 的增量修改能力。 +- [ ] **对象建模器**: 开发用于定义数据模型的前端界面。 + +### Phase 3: 前端可视化集成 (Frontend Integration) +- [ ] **集成 fauto-design**: 将设计器前端合并入平台。 +- [ ] **启动伴生服务**: 运行 `vue-ast-server` 处理前端源码修改请求。 +- [ ] **全链路打通**: 模型定义 -> 代码生成 -> 页面设计 -> 实时预览。 + +### Phase 4: AI 终端与优化 (AI & Polish) +- [ ] **Web Terminal**: 集成 xterm.js + pty4j。 +- [ ] **AI 环境预设**: 预装 Trae CLI,配置 AI 协作上下文。 +- [ ] **体验优化**: 统一 UI 风格,完善错误处理。 + +--- + +## 📂 目录结构 + +```text +D:\workspace\Fauto\ +├── fauto-platform/ # 平台源码 (RuoYi-Vue3 改造) +├── fauto-design/ # (参考) 前端设计器 Demo +├── java-g/ # (参考) 后端生成引擎 Demo +├── workspace/ # 用户创建的项目存放地 +└── AI_CONTEXT.md # AI 协作上下文指南 +``` + +## 🚀 快速开始 (Coming Soon) + +目前项目处于架构搭建阶段。 +1. 查看 `AI_CONTEXT.md` 了解详细技术背景。 +2. 关注 `fauto-platform` 目录下的开发进展。