Skip to content

refactor: 拆分超千行大文件,提升代码可维护性#39

Merged
robscc merged 1 commit intomainfrom
refactor/split-large-files
Mar 29, 2026
Merged

refactor: 拆分超千行大文件,提升代码可维护性#39
robscc merged 1 commit intomainfrom
refactor/split-large-files

Conversation

@robscc
Copy link
Copy Markdown
Owner

@robscc robscc commented Mar 29, 2026

Summary

  • tools/builtin.py (1477→140行): 按领域拆分为 builtin_fs / builtin_browser / builtin_cli / builtin_agent 四个子模块,原文件仅保留 re-export + BUILTIN_TOOLS 注册表
  • ChatPage.tsx (1918→863行): 提取 8 个子组件到 components/chat/,类型定义到 types/chat.ts,工具函数到 utils/chatHelpers.ts
  • personal_assistant.py (1608→1507行): 提取 7 个模块级 helper 函数到 agents/_llm_helpers.py
  • 所有原始导入路径通过 re-export 保持完全向后兼容,零行为变更

变更详情

Backend — tools/builtin.py 拆分

新文件 行数 内容
builtin_fs.py 137 execute_shell_command, read_file, write_file, edit_file, _text_response
builtin_browser.py 184 browser_use, _browser_use_playwright, _playwright_task, _browser_use_httpx
builtin_cli.py 550 skill_cli, cron_cli, plan_cli, get_current_time, send_file_to_user
builtin_agent.py 524 dispatch_sub_agent, execute_python_code, produce_artifact, _get_scheduler
builtin.py 140 re-export + BUILTIN_TOOLS 注册表

Frontend — ChatPage.tsx 拆分

新文件 行数 内容
types/chat.ts 76 ToolCallEntry, FileAttachment, ToolGuardRequest, PlanStep, PlanData, RetryEntry, Message
utils/chatHelpers.ts 61 parseShellOutput, mapHistoryToMessages, LEVEL_LABELS
components/chat/*.tsx 957 ThinkingBubble, ShellOutput, PythonCodeOutput, ToolGuardCard, ToolCallCard, TaskResultCard, PlanCard, SessionMetaPanel

Backend — personal_assistant.py 精简

新文件 行数 内容
agents/_llm_helpers.py 117 _build_model, _build_user_message, _default_model_config, _extract_text, _extract_thinking, _get_tool_names, _rebuild_multimodal

其他修改

  • test_browser_use.py: mock 路径从 builtin 改为 builtin_browser(跟随代码迁移)
  • api/index.ts: 补充 SessionMeta / SessionConfigUpdate 缺失的 sub_agent_mode 字段

Test plan

  • pytest tests/unit/ tests/integration/ — 810 passed,13 failed(全部为重构前已存在的失败)
  • npm run build — 前端编译通过
  • 所有原有 import 路径通过 re-export 保持不变,无需修改消费方代码

🤖 Generated with Claude Code

- tools/builtin.py (1477→140行): 按领域拆分为 builtin_fs / builtin_browser / builtin_cli / builtin_agent 四个子模块
- ChatPage.tsx (1918→863行): 提取 8 个子组件到 components/chat/,类型到 types/chat.ts,工具函数到 utils/chatHelpers.ts
- personal_assistant.py (1608→1507行): 提取 7 个模块级 helper 到 agents/_llm_helpers.py
- 所有原始导入路径通过 re-export 保持向后兼容,零行为变更

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robscc robscc merged commit 59fc0b2 into main Mar 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant