VSCode AutoGenCRUD AI
一个基于 VSCode Extension API、TypeScript 5、Vue3、Vite 与 Pinia 的 AutoGenCRUD AI 助手插件项目。它不只是普通聊天窗口,更偏向“CRUD 页面生成器 + 结构化任务交接器”:先用确定性生成器生成基础页面,再把字段二开、上下文、允许修改范围、验收结果和 diff artifact 整理成可控 AgentRun。
技术栈
- VSCode Extension API
- TypeScript 5 严格类型
- Vue3 Composition API 与
<script setup lang="ts">
- Vite
- Pinia
- VSCode Webview postMessage 通信
- @anthropic-ai/sdk
- vsce VSIX 打包
目录结构
.vscode/ VSCode 调试与任务配置
diagram/ 架构图和产品原型图
src/shared/ Extension 与 Webview 共用的纯规则和协议白名单
src/extension/ 插件主进程代码
core/AssistantViewProvider.ts
service/platform/ VS Code、配置、日志、历史、主聊天等平台能力
service/page/ OpenAPI 页面生成和 PageWorkspace 编排
service/agent/ AgentRun 创建、执行、同步、修复、验收和任务包
service/agent/prompts/ AgentRun 执行 prompt、修复 prompt 和 prompt 预算
service/artifact/ patch artifact 创建、应用、撤销和 diff 预览
command/registerCommands.ts
types/
src/webview/ Vue Webview 前端
src/components/
src/components/AgentRunCard.vue
src/components/AgentRunTimeline.vue
src/components/useAgentRunTimeline.ts
src/store/chatStore.ts
src/store/helpers/
src/hooks/useVsCodeApi.ts
src/types/
dist/ 构建产物
package.json
README.md
架构与路线文档
PRODUCT_ARCHITECTURE_OPTIMIZATION.md:从产品、Agent 工程化、团队协作和长期演进角度说明后续优化方向。
ARCHITECTURE.md:当前项目技术架构、核心链路和安全边界说明。
HANDWRITE_IMPLEMENTATION_GUIDE.md:面向新同事的手写实现训练手册,按协议、状态机、流式请求、AgentRun、Policy、artifact、验收和任务包拆解实现原理。
TASK_PACKAGE_TEAM_VALIDATION.md:任务包真实团队验证手册,用于记录接手评分、回填质量、本轮结论和下一轮改进决策。
examples/validation-record-template.md:团队验证记录模板,复制后填写即可交给 score:task-package 评分。
SUB_AGENT_IMPLEMENTATION.md:早期方案归档,只做历史背景,不作为当前实现依据。
diagram/optimized-architecture/optimized-architecture.svg:当前优化后的架构图。
安装依赖
npm install
本地调试
- 在 VSCode 打开本项目目录。
- 执行
npm install。
- 按 F5 启动 Extension Development Host。
- 在 Activity Bar 打开 AutoGenCRUD AI 侧边栏。
- 配置可用 AI 接口后即可使用流式对话;未配置时会显示中文错误提示。
插件配置
在 VSCode Settings 中配置:
aiAssistant.apiBaseUrl:Anthropic-compatible Messages API 地址,例如 https://api.anthropic.com、https://api.anthropic.com/v1 或 https://api.anthropic.com/v1/messages
aiAssistant.apiKey:接口密钥,仅插件主进程读取,不传入 Webview
aiAssistant.model:模型名称
aiAssistant.temperature:保留兼容旧配置,当前主聊天请求不会发送该字段
aiAssistant.maxTokens:最大生成长度
aiAssistant.timeout:请求超时时间(毫秒)
真实 AI 接口
真实接口兼容 Anthropic Messages Stream:
POST {apiBaseUrl}/v1/messages
插件主进程会携带当前会话历史、当前文件路径、语言、选中代码和操作类型。Webview 不保存也不接收 API Key。
常用命令
npm run compile # 编译插件主进程
npm run watch # 监听插件主进程 TS 编译
npm run build:webview # 构建 Vue Webview
npm run build # 完整构建
npm run verify # 运行架构护栏、纯逻辑、Agent Core 和 Webview 类型验证
npm run verify:architecture # 验证历史隔离、日志脱敏、任务包可信生成、Webview 原生能力隔离、协议白名单和 shared 纯逻辑边界
npm run score:task-package -- ./validation-record.md [...more-record.md] # 计算单条或多条任务包真实团队验证记录得分
npm run package # 构建并打包 VSIX
npm run vsce:package # 仅执行 VSIX 打包
功能说明
- 侧边栏 AutoGenCRUD AI Webview View
- 基础对话、Enter 发送、Shift+Enter 换行
- Anthropic-compatible SSE 流式消息展示
- 新建会话、清空当前会话
- 会话历史保存、加载、删除、清空
- 编辑器选区读取
- 右键命令:解释代码、优化代码、修复 Bug、翻译代码
- AI 代码块复制、插入、替换当前选区
- OpenAPI URL 识别与页面文件生成
- PageWorkspacePlan 字段上下文展示
- AgentRun 生成 diff artifact,展示执行步骤、验收结果和改动总结
- AgentRun 卡片支持复制单次运行任务包,并在卡片内展示复制中、成功和失败反馈
- 单次运行任务包包含元信息、交接状态、接手成熟度、失败交接重点、字段上下文、安全边界和验收方式
- 字段摘要卡支持复制整页 PageWorkspace 任务包,用于把整页 CRUD 二开交给团队继续处理
- 页面级任务包包含元信息、交接状态、接手成熟度和 P0/P1/P2 团队接手清单,方便团队判断先处理改动、先修复还是继续分工
- 单次和页面级任务包都会提示时效边界:任务包只是生成时刻的历史快照,接手前必须重新读取当前磁盘文件
- 单次和页面级任务包都会包含接手验收清单,要求接手方回填改动文件、验收结果、剩余风险和下一步
- Webview 会在 AgentRun 卡片和页面字段摘要上显示轻量接手成熟度标签,例如“可交接”“需补需求”“先处理改动”“先修失败”
- 接手成熟度判断来自
src/shared/taskReadiness.ts,任务包正文和 Webview 标签复用同一套优先级
- 历史按当前 VS Code 工作区隔离保存,并在保存前自动裁剪长 thinking、长工具日志和完整 diff
- 普通聊天和 AgentRun 的调试日志会自动脱敏并截断,避免完整源码、密钥或长 tool result 留在 OutputChannel
- artifact 预览、应用和撤销
- VSCode CSS 变量适配明暗主题
VSIX 打包
npm run vsce:package
成功后会在项目根目录生成 .vsix 文件,可通过 VSCode 的 Install from VSIX 安装。
已知限制
- Markdown 渲染使用
marked + DOMPurify 做安全处理,交互控件由 Vue 结构化渲染。
- 语法高亮为轻量代码块展示,未引入高亮库。
- 真实接口需要用户自行配置可用的 Anthropic-compatible Messages 服务。
- 历史只保存裁剪后的工作区快照;完整 diff、新文件内容、API Key 和完整工具日志不会写入会话历史。
- 任务包是交接摘要,不包含完整源码或完整 diff;它只代表生成时刻的历史快照,接手方需要在本地仓库按相关文件重新读取当前内容、sha256 和最新改动。
后续扩展方向
- 多模型与多供应商适配
- 按
TASK_PACKAGE_TEAM_VALIDATION.md 用真实 CRUD 二开任务验证接手验收清单是否足够闭环
- 更细的页面级冲突检测和字段分工流程
- 受控批量字段任务
- Prompt 模板继续产品化
- 项目级轻量上下文检索
| |