输入与命令层

模块存在意义

这一层负责回答两个问题:用户刚刚输入的内容是什么,以及它应该进入哪条执行路径。它把“纯文本输入”变成真正可执行的系统动作。

关键文件与入口

文件/目录作用
src/utils/processUserInput/processUserInput.ts输入处理中心,把 prompt、slash command、附件和 hook 串在一起。
src/commands.ts所有命令的注册中心,是 slash command 的总索引。
src/commands/命令的具体实现目录,例如 /review/config/tasks
src/query.ts查询入口封装,衔接输入与 QueryEngine。

对上游 / 下游的依赖关系

  • 上游:终端输入、远程桥接输入、系统生成的 meta prompt。
  • 下游:QueryEngine、本地命令执行结果、UI 状态更新。

运行时扮演的角色

  • 识别 /command、普通 prompt、附件消息和内部控制消息。
  • 在真正调用模型前,执行 submit hooks、输入扩展和安全检查。
  • 决定这次输入是否应该进入 QueryEngine,还是只在本地命令层完成。

新读者建议的阅读顺序

  1. src/utils/processUserInput/processUserInput.ts
  2. src/commands.ts
  3. src/commands/help/src/commands/config/ 这类相对直观的命令实现
  4. src/query.ts

这层最重要的边界

  • 命令系统是“用户显式触发”的能力入口。
  • 工具系统是“模型可调用”的能力入口。
  • 输入层的任务就是在两者之间做第一轮分流,不应该把太多业务压在这里。