输入与命令层
模块存在意义
这一层负责回答两个问题:用户刚刚输入的内容是什么,以及它应该进入哪条执行路径。它把“纯文本输入”变成真正可执行的系统动作。关键文件与入口
| 文件/目录 | 作用 |
|---|---|
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,还是只在本地命令层完成。
新读者建议的阅读顺序
src/utils/processUserInput/processUserInput.tssrc/commands.tssrc/commands/help/或src/commands/config/这类相对直观的命令实现src/query.ts
这层最重要的边界
- 命令系统是“用户显式触发”的能力入口。
- 工具系统是“模型可调用”的能力入口。
- 输入层的任务就是在两者之间做第一轮分流,不应该把太多业务压在这里。