包含 extensions、skills、prompts、settings、auth、models、mcp 等配置。 排除 node_modules、npm 缓存、sessions 等运行时数据。
1166 lines
38 KiB
JSON
1166 lines
38 KiB
JSON
{
|
||
"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"
|
||
} |