feat: 初始化考培练系统项目

- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
111
2026-01-24 19:33:28 +08:00
commit 998211c483
1197 changed files with 228429 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
#!/bin/bash
# Agent打包脚本 - 用于快速打包某个Agent的所有文件
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 显示使用说明
show_usage() {
echo "使用方法: ./package_agent.sh [Agent编号或名称]"
echo ""
echo "示例:"
echo " ./package_agent.sh 01"
echo " ./package_agent.sh Auth"
echo " ./package_agent.sh 01-Agent-Auth"
echo ""
echo "可用的Agent:"
ls -d [0-9][0-9]-Agent-* 2>/dev/null | sed 's/^/ /'
}
# 检查参数
if [ -z "$1" ]; then
show_usage
exit 1
fi
# 查找Agent目录
AGENT_DIR=""
SEARCH_TERM=$1
# 尝试不同的匹配方式
if [ -d "$SEARCH_TERM" ]; then
AGENT_DIR="$SEARCH_TERM"
elif [ -d "[0-9][0-9]-Agent-$SEARCH_TERM" ]; then
AGENT_DIR=$(ls -d [0-9][0-9]-Agent-$SEARCH_TERM 2>/dev/null | head -1)
elif [ -d "$SEARCH_TERM-Agent-"* ]; then
AGENT_DIR=$(ls -d $SEARCH_TERM-Agent-* 2>/dev/null | head -1)
else
# 模糊匹配
AGENT_DIR=$(ls -d *-Agent-*$SEARCH_TERM* 2>/dev/null | head -1)
fi
# 检查是否找到目录
if [ -z "$AGENT_DIR" ] || [ ! -d "$AGENT_DIR" ]; then
echo -e "${RED}错误: 找不到Agent目录 '$SEARCH_TERM'${NC}"
echo ""
show_usage
exit 1
fi
echo -e "${GREEN}找到Agent目录: $AGENT_DIR${NC}"
# 创建输出目录
OUTPUT_DIR="packaged"
mkdir -p "$OUTPUT_DIR"
# 生成输出文件名
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
OUTPUT_FILE="$OUTPUT_DIR/${AGENT_DIR}_${TIMESTAMP}.tar.gz"
# 创建临时目录
TEMP_DIR=$(mktemp -d)
PACKAGE_DIR="$TEMP_DIR/$AGENT_DIR"
mkdir -p "$PACKAGE_DIR"
# 复制Agent文件
echo "正在打包Agent文件..."
cp -r "$AGENT_DIR"/* "$PACKAGE_DIR/" 2>/dev/null
# 复制通用基础文件
echo "添加通用基础文件..."
mkdir -p "$PACKAGE_DIR/00-通用基础"
cp -r "00-通用基础"/* "$PACKAGE_DIR/00-通用基础/" 2>/dev/null
# 添加项目脚手架的关键文件引用
echo "添加项目基础代码引用..."
mkdir -p "$PACKAGE_DIR/_project_base"
cat > "$PACKAGE_DIR/_project_base/README.md" << EOF
# 项目基础代码引用
这些是项目脚手架中的关键文件Agent开发时需要参考
## 基础模型
- app/models/base.py - BaseModel, SoftDeleteMixin, AuditMixin
- app/schemas/base.py - BaseSchema, ResponseModel, PageModel
## 核心功能
- app/core/exceptions.py - 统一异常处理
- app/core/logger.py - 日志配置
- app/core/middleware.py - 中间件定义
- app/config/settings.py - 系统配置
## 开发规范
请查看 00-通用基础/base_prompt.md 了解详细的开发规范。
EOF
# 添加快速启动脚本
cat > "$PACKAGE_DIR/START_HERE.md" << EOF
# $AGENT_DIR 快速启动指南
## 1. 了解你的角色
请先阅读 \`prompt.md\` 了解你的职责和任务。
## 2. 理解项目上下文
查看 \`context.md\` 了解项目结构和依赖关系。
## 3. 查看API规范
如果有 \`api_contract.yaml\`请仔细阅读API接口定义。
## 4. 参考示例代码
查看 \`examples/\` 目录中的示例代码。
## 5. 遵循开发规范
务必遵循 \`00-通用基础/base_prompt.md\` 中的规范。
## 6. 使用检查清单
按照 \`checklist.md\` 进行开发和自检。
## 开始开发
\`\`\`
我是$AGENT_DIR准备开始开发工作。
我已经阅读了所有相关文档,理解了我的职责。
请确认项目根目录路径,我将开始创建代码。
\`\`\`
EOF
# 创建压缩包
cd "$TEMP_DIR"
tar -czf "$OUTPUT_FILE" "$AGENT_DIR"
cd - > /dev/null
# 清理临时文件
rm -rf "$TEMP_DIR"
# 显示结果
echo -e "${GREEN}✅ 打包完成!${NC}"
echo -e "输出文件: ${YELLOW}$OUTPUT_FILE${NC}"
echo -e "文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)"
echo ""
echo "你可以:"
echo "1. 将此文件上传到Cursor云端"
echo "2. 解压后在本地Cursor中使用"
echo "3. 分享给其他开发者"
# 显示包含的文件
echo ""
echo "包含的文件:"
tar -tzf "$OUTPUT_FILE" | head -20
if [ $(tar -tzf "$OUTPUT_FILE" | wc -l) -gt 20 ]; then
echo "... 以及更多文件"
fi