git:20261104.0b713a5 to git:20261105.425b0d7
1 added, 1 removed. Audit A to A.
# Components Agent Guide
适用于本目录及其子目录,同时遵循 [Frontend Agent Guide](../../../../AGENTS.md)。
## 视图层边界
- - 本目录只承载可复用的 UI 展示与交互,当前包括目录树与文件预览视图。组件的归属由职责决定。
+ - 本目录只承载可复用的 UI 展示与交互,当前包括目录树、文件预览、TUI、作用域选择与 Agent 接入视图。组件的归属由职责决定。
- 通过 props 接收渲染所需的数据及加载、空态、错误等状态,通过事件回调表达展开、搜索、保存、重试等用户意图。回调可以返回组件渲染所需的输入(例如编辑前取回的完整正文),但不得返回任一宿主接口的数据结构;组件不能依赖某个宿主既定的接口格式。上层执行数据操作后,业务状态仍以 props 传入。
- 不自行调用 fetch、Axios 或业务 SDK,不创建业务 WebSocket/SSE 连接,也不通过私有 Hook、工具或 Store 间接引入数据获取逻辑。请求参数、响应适配、分页请求、流式连接和取消由上层负责。
- 组件内可做格式化等展示计算,可维护折叠、焦点、输入草稿等实例内交互状态。业务数据处理、权限判断、账号作用域、持久化和请求缓存由上层负责;组件接收处理后的数据与可操作状态。
- 组件不依赖业务模块、应用路由或业务服务。上层 [modules](../modules/AGENTS.md) 或宿主通过 Hook 获取和处理数据,再组合这些组件;组件仍可由宿主直接使用。
## 新增与迁移
- 每个组件独占一个 kebab-case 目录,入口文件与目录同名;组件私有的子组件、Hook、类型和样式就近放置。
- 迁入代码时先拆出数据获取和业务编排,组件仅保留视图、交互和必要的公开接口。示例使用固定公开数据,由示例外层模拟状态更新;组件在没有后端连接时也应能独立展示和操作。
- 组件公开入口为 `components/<模块>`,样式入口为 `components/<模块>/style.css`,并纳入 `components/style.css` 和整包 `style.css`。单组件 CSS 必须可独立消费,JS 入口不隐式加载 CSS。不提供 `components` 聚合 JS 入口。
- 更新公开入口时同步维护包导出、Rslib 入口、声明路径及示例;验证要求沿用 Frontend Agent Guide。