86 lines
3.8 KiB
Markdown
86 lines
3.8 KiB
Markdown
# Inbox Modules
|
||
|
||
本文档描述当前 `inbox/` 的真实模块边界和最近一次收口后的职责落点。
|
||
|
||
## 总原则
|
||
|
||
- 业务入口只有一个:HTTP
|
||
- 启动命令只有两个:`server` 和 `api`
|
||
- 程序装配只留在入口层,不把 service 组装散落到业务 handler
|
||
- app 层按用例职责划分,store 层按聚合划分,不按页面或临时调用方划分
|
||
|
||
## 当前模块
|
||
|
||
### 1. 启动层
|
||
|
||
| 模块 | 路径 | 职责 |
|
||
| --- | --- | --- |
|
||
| 程序入口 | `cmd/inbox/` | CLI 入口与最终 wiring |
|
||
| CLI 壳层 | `internal/cli/` | 识别 `server` 与 `api` 命令 |
|
||
| HTTP client | `internal/client/` | 通用 HTTP 请求封装 |
|
||
| AI CLI 封装 | `internal/clientcmd/` | 面向 AI 的 `api` 命令封装 |
|
||
| Server 启动器 | `internal/servercmd/` | 解析 flag,产出启动配置并启动 HTTP 服务 |
|
||
| Server 组装 | `internal/inboxserver/` | 生产路径上的 store / service / handler composition root |
|
||
|
||
### 2. 基础与领域层
|
||
|
||
| 模块 | 路径 | 职责 |
|
||
| --- | --- | --- |
|
||
| 基础能力 | `internal/base/` | `timeutil`、`slug`、`idgen`、`httpx` |
|
||
| 领域模型 | `internal/domain/` | `role`、`skill`、`topic`、`message`、`workflow`、`merge`、`docspec`、`workspace`、`lane`、`task`、`taskgraph` |
|
||
|
||
### 3. 应用层
|
||
|
||
| 模块 | 路径 | 职责 |
|
||
| --- | --- | --- |
|
||
| roles | `internal/app/roles/` | 角色配置管理与技能绑定 |
|
||
| runtimeconfig | `internal/app/runtimeconfig/` | workspace 维度的运行时角色解析 |
|
||
| skills | `internal/app/skills/` | 技能管理 |
|
||
| topics | `internal/app/topics/` | topic、message、确认/停止 相关用例 |
|
||
| lanes | `internal/app/lanes/` | lane CRUD 与启动/停止 |
|
||
| tasks | `internal/app/tasks/` | task CRUD 与依赖写入 |
|
||
| taskexec | `internal/app/taskexec/` | lane 内 task 认领、执行完成、topic 收口 |
|
||
| leaderloop | `internal/app/leaderloop/` | leader delivery 轮询、规划执行、图谱落库 |
|
||
| workflowrun | `internal/app/workflowrun/` | workflow run 与日志用例 |
|
||
| workspaces | `internal/app/workspaces/` | project/workspace catalog CRUD 与 resolve |
|
||
| workspacelifecycle | `internal/app/workspacelifecycle/` | workspace runtime inspect / provision / ensure |
|
||
| workspaceprovision | `internal/app/workspaceprovision/` | provision 过程编排 |
|
||
| workspaceruntime | `internal/app/workspaceruntime/` | worktree / binary / container runtime 生命周期 |
|
||
| systemfs | `internal/app/systemfs/` | 系统目录浏览与创建 |
|
||
| dashboard | `internal/app/dashboard/` | dashboard 读模型与聚合视图 |
|
||
|
||
### 4. 传输层
|
||
|
||
| 模块 | 路径 | 职责 |
|
||
| --- | --- | --- |
|
||
| HTTP API | `internal/httpapi/` | `/api/v2/*` handler,只做 transport 解析、调用 app service、写响应 |
|
||
|
||
### 5. 持久化层
|
||
|
||
| 模块 | 路径 | 职责 |
|
||
| --- | --- | --- |
|
||
| SQLite store | `internal/store/sqlite/` | schema、migration、repository 实现 |
|
||
|
||
当前 store 已按聚合拆分主要文件:
|
||
|
||
- `projects_workspaces.go`:project / workspace 持久化
|
||
- `topics_documents.go`:topic 持久化
|
||
- `messages.go`:message 与 delivery 持久化
|
||
- `workflow_runs_store.go`:workflow run 与 log 持久化
|
||
- `chains_store.go`、`tasks_store.go`:lane / task 持久化
|
||
- `task_graph_versions.go`:task graph version 持久化
|
||
- `roles_store.go`、`skills_store.go`:配置类持久化
|
||
- `taskexec_store.go`:task execution 认领与完成写入
|
||
|
||
## 已删除或收口的旧边界
|
||
|
||
以下形态已经不再保留:
|
||
|
||
- 顶层 `inbox/*.go` facade 包装层
|
||
- handler 中直接做 filesystem 业务
|
||
- handler 中直接做 patch merge 规则
|
||
- `roles` 包里的 runtime role resolve 适配层
|
||
- `dashboard_queries.go` / `entities.go` 这种跨多个聚合的大一统 store 文件
|
||
|
||
如果后续继续扩展 `inbox`,优先遵守现有边界,不再恢复“按页面切 repo”或“transport 里做业务编排”的旧模式。
|