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

View File

@ -23,26 +23,29 @@
```text
focus/
├── crates/
│ ├── focus-json/ # 极简 JSON 解析器 / 序列化器(零外部依赖)
│ ├── focus-core/ # ★ 核心层:领域类型 + Agent 循环 + Tool / StreamProvider trait
│ ├── 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组装所有模块
├── Cargo.toml # workspace 清单
├── README.md # 本文件
├── AGENTS.md # 工程规范(依赖白名单、代码/测试/提交规范)
├── LICENSE # MIT
├── 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
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-providers ← focus-core, focus-transport
focus-tools ← focus-core
focus-providers ← focus-core, focus-transport, focus-json, tokio
focus-tools ← focus-core, focus-json
focus-harness ← focus-core, focus-json
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/
├── Cargo.toml # [workspace]
├── AGENTS.md # 工程规范
└── crates/
├── focus-core/ # agent 层:类型、循环、工具 trait纯 std + 手写 JSON
├── focus-transport/ # Transport trait 定义(纯 std
├── focus-providers/ # provider 实现(依赖 transport用 curl 子进程)
├── focus-json/ # 极简 JSON 解析/序列化(零外部依赖)
├── focus-core/ # agent 层:类型、循环、工具 trait纯 std + 手写 JSON无 tokio
├── focus-transport/ # 传输层HTTPStokio + rustls、HTTP/1.1、SSE
├── focus-providers/ # provider 实现Anthropic / OpenAI
├── focus-harness/ # 会话/压缩/系统提示(纯 std
├── focus-tools/ # 文件工具(纯 std
└── focus-cli/ # 入口(组合上述
├── focus-tools/ # 文件工具(read / write / edit / shell
└── focus-tui/ # 终端交互层ratatui + crossterm
```
> 注:早期规划中的 `focus-cli` 最终由 `focus-tui` 取代。
## 十、学习路线
### 第一阶段:吃透核心(按顺序)