模块职责
这一页把分散目录折叠成可理解的模块族。目标不是穷举文件,而是帮你快速判断“某类问题应该去哪里看、上下游是谁、真正的边界在哪里”。
看每个模块族的职责边界,而不是看所有目录本身。
先按问题类型锁定模块,再回源码找关键入口文件。
适合定位改动点、理解协作关系、快速建立目录心智图。
责任矩阵阅读方式
下面的结构不再直接依赖一张宽表格,而是按模块族逐段展开。这样在 Web 端仍然保留层次感,在移动端也能顺序阅读,不会因为横向表格而挤压正文。模块族总览
src/main.tsx、src/entrypoints/、src/bootstrap/
- 职责:程序启动、配置预热、环境准备、会话上下文注入
- 上游:进程入口、CLI 参数
- 下游:命令系统、工具系统、UI、服务层
src/commands.ts、src/commands/、src/utils/processUserInput/
- 职责:把输入转成命令执行、消息对象或后续查询请求
- 上游:用户输入、桥接输入
- 下游:QueryEngine、本地命令结果、状态更新
src/QueryEngine.ts、src/query.ts、src/context/
- 职责:维护消息历史、发起模型调用、编排工具回合
- 上游:输入解析、上下文构建
- 下游:工具层、服务层、状态层
src/Tool.ts、src/tools.ts、src/tools/、src/utils/permissions/
- 职责:暴露模型能力、管理工具协议与权限控制
- 上游:QueryEngine
- 下游:文件系统、网络、插件、子代理、状态
src/components/、src/hooks/、src/ink/、src/screens/
- 职责:把内部状态渲染成终端 UI,承载交互式会话体验
- 上游:AppState、任务状态、消息流
- 下游:用户可见输出、后续输入
src/state/、src/tasks/、src/history.ts
- 职责:管理应用状态、任务生命周期、会话记录与切换
- 上游:QueryEngine、命令、工具
- 下游:UI、恢复流程、统计与遥测
src/services/、src/bridge/、src/remote/、src/server/
- 职责:对接 API、MCP、LSP、远程桥接与服务端能力
- 上游:主循环、命令、工具
- 下游:模型提供方、IDE、远程会话
src/plugins/、src/skills/、src/memdir/、src/coordinator/
- 职责:承载插件、技能、记忆目录和多代理协作
- 上游:命令、工具、服务
- 下游:更高层工作流与定制能力
src/utils/、src/types/、src/constants/、src/migrations/
- 职责:提供通用工具、类型、常量、迁移和横切能力
- 上游:全模块共享
- 下游:全模块共享
各模块族的一句话定位
运行时与启动
决定程序怎样启动、初始环境如何准备、哪些全局变量和缓存先被预热。输入与命令
决定“用户说的话”是变成 slash command、本地行为,还是进入模型对话主循环。查询主循环
是对话级别的调度器,决定消息如何积累、模型如何请求、工具如何往返。工具执行层
是系统的能力边界,模型能做什么、怎么做、是否允许做,都要经过这里。UI 渲染层
把复杂内部状态折成终端界面,让交互式会话保持可读、可操作、可恢复。状态与任务
负责把一次执行变成可跟踪的任务,把一轮会话变成可恢复的状态。服务与集成
处理真正与外界通信的地方,例如 API、MCP、LSP、bridge、remote。扩展生态
承载可插拔、可组合、可演化的能力,让仓库不是单一 CLI,而是一个平台。基础支撑
为其它模块提供通用设施,是规模化代码库最重要的“稳定底板”。建议怎么用这张表
- 先根据问题类型锁定模块族,再回到源码搜索具体文件。
- 如果一个功能跨越多个模块族,优先从上游入口开始看。
- 如果你要做改动,先确认边界属于“命令”“工具”还是“服务”,这样最不容易改错层。