docs: sync dependency graphs and trees with the actual layout

- focus-core no longer lists tokio in the README/AGENTS dependency graphs
  (the core is pure sync); both graphs now fully match the real Cargo.tomls
  (providers + focus-json+tokio, tools + focus-json)
- README: workspace tree gains Cargo.toml/README/LICENSE and the no-tokio
  note on focus-core
- AGENTS.md: workspace tree matches reality (LICENSE/README added, the
  nonexistent tests/ dir dropped)
- docs/architecture/00: the early proposal tree (focus-cli) is updated to
  the final 7-crate layout with a superseded note
This commit is contained in:
DaiChaoXiong 2026-08-09 23:20:18 +08:00
parent bf92590fcd
commit 1c214ec567
3 changed files with 31 additions and 23 deletions

View File

@ -120,6 +120,8 @@ let b = self.buf.pop_front();
focus/ focus/
├── AGENTS.md # 本文件 ├── AGENTS.md # 本文件
├── Cargo.toml # [workspace] + 共享依赖版本 ├── Cargo.toml # [workspace] + 共享依赖版本
├── LICENSE # MIT
├── README.md # 项目总览与使用说明
├── rust-toolchain.toml # channel = "stable" ├── rust-toolchain.toml # channel = "stable"
├── crates/ ├── crates/
│ ├── focus-json/ # 极简 JSON 解析器(零外部依赖) │ ├── focus-json/ # 极简 JSON 解析器(零外部依赖)
@ -129,19 +131,18 @@ focus/
│ ├── focus-tools/ # 文件工具read / write / edit / shell │ ├── focus-tools/ # 文件工具read / write / edit / shell
│ ├── focus-harness/ # 会话持久化 + 上下文压缩 + 系统提示模板 │ ├── focus-harness/ # 会话持久化 + 上下文压缩 + 系统提示模板
│ └── focus-tui/ # 终端交互层ratatui + crossterm │ └── focus-tui/ # 终端交互层ratatui + crossterm
├── docs/ └── docs/
│ └── architecture/ # 架构解读文档(已存在) └── architecture/ # 架构解读文档
└── tests/ # workspace 级集成测试(可选)
``` ```
### 3.1 依赖图(强制单向,禁止循环) ### 3.1 依赖图(强制单向,禁止循环)
```text ```text
focus-json ← (零外部依赖,纯 std focus-json ← (零外部依赖,纯 std
focus-core ← focus-json, tokio focus-core ← focus-json(纯同步逻辑,不依赖 tokio
focus-transport ← focus-json, tokio, rustls, tokio-rustls, rustls-native-certs focus-transport ← focus-json, tokio, rustls, tokio-rustls, rustls-native-certs
focus-providers ← focus-core, focus-transport focus-providers ← focus-core, focus-transport, focus-json, tokio
focus-tools ← focus-core focus-tools ← focus-core, focus-json
focus-harness ← focus-core, focus-json focus-harness ← focus-core, focus-json
focus-tui ← focus-core, focus-providers, focus-tools, focus-harness, focus-json, ratatui, crossterm focus-tui ← focus-core, focus-providers, focus-tools, focus-harness, focus-json, ratatui, crossterm
``` ```

View File

@ -23,26 +23,29 @@
```text ```text
focus/ focus/
├── crates/ ├── Cargo.toml # workspace 清单
│ ├── focus-json/ # 极简 JSON 解析器 / 序列化器(零外部依赖) ├── README.md # 本文件
│ ├── focus-core/ # ★ 核心层:领域类型 + Agent 循环 + Tool / StreamProvider trait ├── AGENTS.md # 工程规范(依赖白名单、代码/测试/提交规范)
│ ├── focus-transport/ # 传输层HTTPS 客户端tokio + rustls、HTTP/1.1、SSE 解析 ├── LICENSE # MIT
│ ├── focus-providers/ # Provider 实现Anthropic / OpenAI
│ ├── focus-tools/ # 文件工具read / write / edit / shell
│ ├── focus-harness/ # 会话持久化 + 上下文压缩 + 系统提示模板
│ └── focus-tui/ # 终端交互层ratatui + crossterm组装所有模块
├── docs/architecture/ # 架构解读文档(三份精读笔记) ├── docs/architecture/ # 架构解读文档(三份精读笔记)
└── AGENTS.md # 工程规范(依赖白名单、代码/测试/提交规范) └── crates/
├── focus-json/ # 极简 JSON 解析器 / 序列化器(零外部依赖)
├── focus-core/ # ★ 核心层:领域类型 + Agent 循环 + Tool / StreamProvider trait纯同步无 tokio
├── focus-transport/ # 传输层HTTPS 客户端tokio + rustls、HTTP/1.1、SSE 解析
├── focus-providers/ # Provider 实现Anthropic / OpenAI
├── focus-tools/ # 文件工具read / write / edit / shell
├── focus-harness/ # 会话持久化 + 上下文压缩 + 系统提示模板
└── focus-tui/ # 终端交互层ratatui + crossterm组装所有模块
``` ```
### 分层依赖图 ### 分层依赖图
```text ```text
focus-json ← 零外部依赖,纯 std focus-json ← 零外部依赖,纯 std
focus-core ← focus-json, tokio focus-core ← focus-json(纯同步逻辑,不依赖 tokio
focus-transport ← focus-json, tokio, rustls, tokio-rustls, rustls-native-certs focus-transport ← focus-json, tokio, rustls, tokio-rustls, rustls-native-certs
focus-providers ← focus-core, focus-transport focus-providers ← focus-core, focus-transport, focus-json, tokio
focus-tools ← focus-core focus-tools ← focus-core, focus-json
focus-harness ← focus-core, focus-json focus-harness ← focus-core, focus-json
focus-tui ← focus-core, focus-providers, focus-tools, focus-harness, focus-json, ratatui, crossterm focus-tui ← focus-core, focus-providers, focus-tools, focus-harness, focus-json, ratatui, crossterm
``` ```

View File

@ -228,15 +228,19 @@ Anthropic SSE → pi-ai 事件映射anthropic-messages.ts:559-732
``` ```
focus/ focus/
├── Cargo.toml # [workspace] ├── Cargo.toml # [workspace]
├── AGENTS.md # 工程规范
└── crates/ └── crates/
├── focus-core/ # agent 层:类型、循环、工具 trait纯 std + 手写 JSON ├── focus-json/ # 极简 JSON 解析/序列化(零外部依赖)
├── focus-transport/ # Transport trait 定义(纯 std ├── focus-core/ # agent 层:类型、循环、工具 trait纯 std + 手写 JSON无 tokio
├── focus-providers/ # provider 实现(依赖 transport用 curl 子进程) ├── focus-transport/ # 传输层HTTPStokio + rustls、HTTP/1.1、SSE
├── focus-providers/ # provider 实现Anthropic / OpenAI
├── focus-harness/ # 会话/压缩/系统提示(纯 std ├── focus-harness/ # 会话/压缩/系统提示(纯 std
├── focus-tools/ # 文件工具(纯 std ├── focus-tools/ # 文件工具(read / write / edit / shell
└── focus-cli/ # 入口(组合上述 └── focus-tui/ # 终端交互层ratatui + crossterm
``` ```
> 注:早期规划中的 `focus-cli` 最终由 `focus-tui` 取代。
## 十、学习路线 ## 十、学习路线
### 第一阶段:吃透核心(按顺序) ### 第一阶段:吃透核心(按顺序)