{ "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" }