Files
shumengya 50edff80f5 feat: 导出 SproutClaw .sproutclaw 配置
包含 extensions、skills、prompts、settings、auth、models、mcp 等配置。
排除 node_modules、npm 缓存、sessions 等运行时数据。
2026-06-26 15:48:56 +08:00

1166 lines
38 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"project_root": "/Users/xxx/Documents/code/Software Copyright/StudioAgent",
"selection_required": true,
"model_selection_required": true,
"confirmation_required": true,
"user_confirmed": true,
"target_pages": 60,
"lines_per_page": 60,
"target_lines": 3600,
"estimated_selected_lines": 5037,
"estimated_selected_pages": 84,
"estimated_all_candidate_lines": 5137,
"estimated_all_candidate_pages": 86,
"supplement_rule": "模型优先选择能体现软件核心功能和真实运行逻辑的源码不足60页时再从其他相关源码中补充候选源码仍不足时才生成全部代码材料。",
"confirmation_stage": "code-selection",
"next_action": "请由模型填写 草稿/代码文件选择.json 的抽取选择和选择理由,再让用户确认;确认后运行 confirm_stage.py --stage code-selection。",
"instructions": "The script only inventories source files. The model must choose selected/start_line/end_line/model_reason before user confirmation.",
"files": [
{
"path": "frontend/src/app/layout.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 22,
"priority": 0,
"selection_tier": "frontend",
"evidence": "入口文件证据",
"model_reason": "前端应用根布局,体现页面框架和全局结构。"
},
{
"path": "frontend/src/app/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 24,
"priority": 0,
"selection_tier": "frontend",
"evidence": "入口文件证据",
"model_reason": "系统首页入口,体现 StudioAgent 产品入口和开始创作路径。"
},
{
"path": "backend/app/agents/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/agents/compaction.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 14,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "上下文压缩服务骨架,体现长对话维护能力。"
},
{
"path": "backend/app/agents/graph.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 187,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "LangGraph Swarm 编排核心,体现六 Agent 创建、handoff 和图编译。"
},
{
"path": "backend/app/agents/nodes/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/agents/session.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 25,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "会话生命周期骨架,体现 prompt、resume、steer、abort 等会话控制。"
},
{
"path": "backend/app/agents/sse_transformer.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 111,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Agent 事件到 SSE 协议转换,体现前后端流式协作协议。"
},
{
"path": "backend/app/agents/state.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 82,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "生产状态定义,体现项目计划、角色、场景、剧本、分镜、资产和交互模式。"
},
{
"path": "backend/app/agents/tools/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/agents/tools/base.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 29,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Agent 工具基类,体现工具定义和执行上下文。"
},
{
"path": "backend/app/agents/tools/camera_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 89,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "摄影工具定义,体现角色、场景、分镜画面生成和图片修改。"
},
{
"path": "backend/app/agents/tools/candidate.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 14,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "候选状态模型,体现候选素材抽卡状态结构。"
},
{
"path": "backend/app/agents/tools/confirm.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 38,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "用户确认工具,体现关键节点中断和人机协同控制。"
},
{
"path": "backend/app/agents/tools/director_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 52,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "导演工具定义,体现分镜生成、镜头规划和视觉一致性审核。"
},
{
"path": "backend/app/agents/tools/editor_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 52,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "剪辑工具定义,体现视频生成、延长和时间线编排。"
},
{
"path": "backend/app/agents/tools/global_asset_picker.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "全局素材选择工具,体现跨项目素材复用入口。"
},
{
"path": "backend/app/agents/tools/producer_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 97,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Producer 工具定义,体现方案规划、成本估算和项目状态查询。"
},
{
"path": "backend/app/agents/tools/reference_collector.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 29,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "参考图收集工具,体现角色、场景和草图参考素材组织。"
},
{
"path": "backend/app/agents/tools/screenwriter_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 69,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "编剧工具定义,体现文本分析、角色提取、场景提取、剧本生成和编辑。"
},
{
"path": "backend/app/agents/tools/sound_tools.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 60,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "音效工具定义,体现对白分析、语音生成、音效和背景音乐设计。"
},
{
"path": "backend/app/api/asset_hub.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 124,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "全局素材库接口,体现文件夹、全局角色、场景和音色管理。"
},
{
"path": "backend/app/api/assets.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 59,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "项目资产接口,体现角色、场景、剧集、分镜、任务和全局素材复制入口。"
},
{
"path": "backend/app/api/auth.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 43,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "认证接口,体现注册、登录和获取当前用户信息。"
},
{
"path": "backend/app/api/billing.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 23,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "计费接口,体现余额、交易记录和充值入口。"
},
{
"path": "backend/app/api/candidates.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 52,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "候选抽卡接口,体现候选确认、取消、撤回和历史恢复能力。"
},
{
"path": "backend/app/api/conversations.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 153,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "对话接口体现项目会话创建、消息发送、SSE 流式响应和恢复入口。"
},
{
"path": "backend/app/api/projects.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 65,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "项目接口,体现项目创建、列表、详情、更新和软删除。"
},
{
"path": "backend/app/config.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 72,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "后端配置管理体现数据库、Redis、LLM 和多媒体生成服务参数。"
},
{
"path": "backend/app/db/migrations/env.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 67,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "数据库迁移环境,体现模型元数据和迁移运行配置。"
},
{
"path": "backend/app/db/migrations/versions/001_initial_schema.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 224,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "初始数据库迁移,体现用户、项目、对话、资产、任务和交易表结构。"
},
{
"path": "backend/app/db/session.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 24,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "数据库连接会话,体现异步数据库访问基础。"
},
{
"path": "backend/app/deps.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 67,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "后端依赖注入,体现数据库会话、当前用户和 Agent 图依赖。"
},
{
"path": "backend/app/generators/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 5,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/generators/base.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 30,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "多媒体生成器抽象接口,体现图像、视频和语音生成统一结构。"
},
{
"path": "backend/app/generators/image/flux.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "FLUX 图片生成器骨架,体现图像生成备选服务接入。"
},
{
"path": "backend/app/generators/image/imagen.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Imagen 图片生成器骨架,体现图像生成备选服务接入。"
},
{
"path": "backend/app/generators/image/seedream.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Seedream 图片生成器骨架,体现图像生成服务接入。"
},
{
"path": "backend/app/generators/video/kling.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Kling 视频生成器骨架,体现视频生成备选服务接入。"
},
{
"path": "backend/app/generators/video/seedance.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Seedance 视频生成器骨架,体现视频生成服务接入。"
},
{
"path": "backend/app/generators/video/veo.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Veo 视频生成器骨架,体现视频生成备选服务接入。"
},
{
"path": "backend/app/generators/voice/elevenlabs.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "ElevenLabs 语音生成器骨架,体现英文配音服务接入。"
},
{
"path": "backend/app/generators/voice/qwen_tts.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 11,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "Qwen TTS 语音生成器骨架,体现中文配音服务接入。"
},
{
"path": "backend/app/llm/__init__.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 85,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "LLM 工厂和模型注册表,体现多 Provider 模型接入。"
},
{
"path": "backend/app/llm/base.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 53,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "LLM Provider 抽象接口,体现模型消息和响应结构。"
},
{
"path": "backend/app/main.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 76,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "FastAPI 应用入口,体现路由挂载、健康检查和跨域配置。"
},
{
"path": "backend/app/models/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 30,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/models/asset.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 124,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "资产模型,体现角色、形象、场景、分镜等制片资产结构。"
},
{
"path": "backend/app/models/conversation.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 37,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "对话和消息模型,体现 Agent 消息、推理内容和元数据保存。"
},
{
"path": "backend/app/models/project.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 23,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "项目模型,体现视频项目基本信息和软删除状态。"
},
{
"path": "backend/app/models/task.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 45,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "任务和交易模型,体现异步任务状态和余额流水。"
},
{
"path": "backend/app/models/user.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 27,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "用户模型,体现账号、余额和偏好数据。"
},
{
"path": "backend/app/schemas/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/schemas/auth.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 31,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "认证接口数据结构,体现注册、登录和用户响应字段。"
},
{
"path": "backend/app/schemas/conversation.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 41,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "对话接口数据结构,体现消息发送、恢复和消息响应字段。"
},
{
"path": "backend/app/schemas/project.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 31,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "项目接口数据结构,体现创建、更新和响应字段。"
},
{
"path": "backend/app/services/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/services/auth_service.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 46,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "认证服务,体现密码哈希、用户创建、用户查询和令牌生成。"
},
{
"path": "backend/app/services/conversation_service.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 62,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "对话服务,体现会话创建、消息存储和历史查询。"
},
{
"path": "backend/app/services/project_service.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 45,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "项目服务,体现项目创建、查询、更新和软删除业务逻辑。"
},
{
"path": "backend/app/workers/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "backend/app/workers/image_worker.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 9,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "图像任务 Worker体现图像生成异步任务入口。"
},
{
"path": "backend/app/workers/text_worker.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 9,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "文本任务 Worker体现文本生成异步任务入口。"
},
{
"path": "backend/app/workers/video_worker.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 9,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "视频任务 Worker体现视频生成异步任务入口。"
},
{
"path": "backend/app/workers/voice_worker.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 9,
"priority": 20,
"selection_tier": "supplement",
"evidence": "页面文件证据",
"model_reason": "语音任务 Worker体现配音生成异步任务入口。"
},
{
"path": "frontend/src/app/(auth)/login/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 88,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "登录页面源码,体现用户身份认证的前端操作流程。"
},
{
"path": "frontend/src/app/(auth)/register/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 99,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "注册页面源码,体现账号创建和登录状态写入流程。"
},
{
"path": "frontend/src/app/asset-hub/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 32,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "全局素材库页面,体现素材分类管理入口。"
},
{
"path": "frontend/src/app/billing/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 8,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "计费管理页面入口,体现成本信息查看功能。"
},
{
"path": "frontend/src/app/projects/[id]/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 99,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "核心制片工作区页面,体现左侧对话、右侧资产和底部费用状态布局。"
},
{
"path": "frontend/src/app/projects/[id]/settings/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 8,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "项目设置页面入口,体现单项目配置功能。"
},
{
"path": "frontend/src/app/projects/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 164,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "项目列表与新建项目页面,体现项目管理主流程。"
},
{
"path": "frontend/src/app/providers.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 22,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "前端全局 Provider体现客户端状态和请求上下文承载。"
},
{
"path": "frontend/src/app/settings/page.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 8,
"priority": 20,
"selection_tier": "frontend",
"evidence": "页面文件证据",
"model_reason": "用户设置页面入口,体现系统配置功能。"
},
{
"path": "frontend/src/stores/conversation.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 19,
"priority": 40,
"selection_tier": "frontend",
"evidence": "状态或数据文件证据",
"model_reason": "对话状态管理,体现会话状态数据结构。"
},
{
"path": "frontend/src/stores/user.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 33,
"priority": 40,
"selection_tier": "frontend",
"evidence": "状态或数据文件证据",
"model_reason": "用户状态管理,体现登录用户、令牌和余额状态保存。"
},
{
"path": "frontend/src/components/agent/AgentStatusBar.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 36,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "多 Agent 状态栏组件,体现制片人、编剧、导演等角色的协作状态展示。"
},
{
"path": "frontend/src/components/agent/ChatInput.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 42,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "对话输入组件,体现用户发送自然语言制作需求的交互。"
},
{
"path": "frontend/src/components/agent/ChatPanel.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 61,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "AI 剧组对话面板,体现消息列表、状态栏和输入区组合。"
},
{
"path": "frontend/src/components/agent/MessageBubble.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 71,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "消息气泡组件体现用户、Agent 和工具结果的展示方式。"
},
{
"path": "frontend/src/components/assets/AssetPanel.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 26,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "项目资产面板,体现角色、场景、分镜、视频和音频分类查看。"
},
{
"path": "frontend/src/components/ui/avatar.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 109,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "基础头像组件,支撑用户和 Agent 视觉标识展示。"
},
{
"path": "frontend/src/components/ui/button.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 64,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "基础按钮组件,支撑注册、登录、创建项目和候选确认等操作。"
},
{
"path": "frontend/src/components/ui/card.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 92,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "基础卡片组件,支撑项目、素材和结果信息展示。"
},
{
"path": "frontend/src/components/ui/input.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 21,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "基础输入组件,支撑账号、项目等表单输入。"
},
{
"path": "frontend/src/components/ui/label.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 24,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "表单标签组件,支撑表单字段说明。"
},
{
"path": "frontend/src/components/ui/scroll-area.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 58,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "滚动区域组件,支撑对话和素材列表浏览。"
},
{
"path": "frontend/src/components/ui/textarea.tsx",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 18,
"priority": 50,
"selection_tier": "frontend",
"evidence": "页面组成文件证据",
"model_reason": "基础多行输入组件,支撑项目描述和创意文本输入。"
},
{
"path": "frontend/src/hooks/useAgentStream.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 216,
"priority": 60,
"selection_tier": "frontend",
"evidence": "通用能力文件证据",
"model_reason": "SSE 流式对话 Hook体现消息发送、Agent 事件处理、确认请求和交接状态更新。"
},
{
"path": "frontend/src/hooks/useCandidateSystem.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 85,
"priority": 60,
"selection_tier": "frontend",
"evidence": "通用能力文件证据",
"model_reason": "候选素材状态 Hook体现候选选择、确认、取消和撤回的前端逻辑。"
},
{
"path": "frontend/src/lib/api.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 29,
"priority": 60,
"selection_tier": "frontend",
"evidence": "通用能力文件证据",
"model_reason": "API 客户端封装,体现统一接口请求和鉴权头处理。"
},
{
"path": "frontend/src/lib/utils.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 6,
"priority": 60,
"selection_tier": "frontend",
"evidence": "通用能力文件证据",
"model_reason": "前端样式工具函数,支撑组件类名组合。"
},
{
"path": "frontend/next-env.d.ts",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 6,
"priority": 80,
"selection_tier": "frontend",
"evidence": "普通源码文件",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "frontend/next.config.ts",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 15,
"priority": 80,
"selection_tier": "frontend",
"evidence": "普通源码文件",
"model_reason": "前端构建和 API 代理配置,体现前后端联调路径。"
},
{
"path": "frontend/postcss.config.js",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 5,
"priority": 80,
"selection_tier": "frontend",
"evidence": "普通源码文件",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "frontend/src/app/globals.css",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 128,
"priority": 90,
"selection_tier": "frontend",
"evidence": "样式文件证据",
"model_reason": "全局样式,体现 Web 界面的基础视觉与暗色模式样式。"
},
{
"path": "backend/pyproject.toml",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 74,
"priority": 95,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "后端依赖和开发工具配置,体现 FastAPI、LangGraph、数据库和测试工具依赖。"
},
{
"path": "docker-compose.dev.yml",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 19,
"priority": 95,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "开发环境容器覆写配置,体现本地开发服务启动方式。"
},
{
"path": "docker-compose.yml",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 124,
"priority": 95,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "容器编排配置体现数据库、Redis、后端、Worker 和前端服务组成。"
},
{
"path": "backend/celery_app.py",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 29,
"priority": 100,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "Celery 任务队列配置,体现图像、视频、语音和文本队列路由。"
},
{
"path": "backend/tests/__init__.py",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 1,
"priority": 100,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "frontend/components.json",
"selected": false,
"start_line": 1,
"end_line": null,
"line_count": 23,
"priority": 100,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "未选:与本次软著核心业务链路关联较弱,或为过短的包初始化/辅助文件。"
},
{
"path": "frontend/package.json",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 45,
"priority": 100,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "前端依赖和脚本配置,体现运行、构建和依赖环境。"
},
{
"path": "frontend/tsconfig.json",
"selected": true,
"start_line": 1,
"end_line": null,
"line_count": 23,
"priority": 100,
"selection_tier": "supplement",
"evidence": "补充源码证据",
"model_reason": "前端 TypeScript 配置,体现路径别名和类型检查环境。"
}
],
"confirmation_note": "用户确认代码文件选择",
"confirmed_at": "2026-04-29T09:02:33+00:00"
}