docs: 同步开发文档至代码最新状态

This commit is contained in:
2026-06-01 23:33:16 +08:00
parent ab7b7fb189
commit 29bf61f7a3
3 changed files with 22 additions and 19 deletions

View File

@@ -42,6 +42,7 @@ AI 工具必须严格遵守以下全部约束。
| `src/server/` | 后端,禁止 import src/web/ |
| `src/server/db/` | 数据库层schema、connection、migration、DAO |
| `src/server/ai/` | AI Provider Registry + Agent + 工具 |
| `src/server/config/` | 配置子系统types、variables、issues、schema |
| `src/server/helpers/` | 跨路由工具响应格式化、URL 拼接 |
| `src/server/middleware/` | 参数校验 + 错误处理中间件 |
| `src/web/` | 前端,禁止 import src/server/ 运行时实现 |
@@ -54,7 +55,8 @@ AI 工具必须严格遵守以下全部约束。
### 类型与配置
- 共享类型唯一源头:`src/shared/api.ts`;应用常量唯一源头:`src/shared/app.ts`;版本号唯一源头:`package.json`
- 配置加载流程unknown → AuthoringConfig → NormalizedConfig → ValidatedConfig → ServerConfig。
- 配置加载流程unknown → AuthoringConfig → NormalizedConfig → ValidatedConfig → ResolvedConfig。
- 配置系统入口:`src/server/config.ts`(统一配置加载、运行时校验、默认值解析)。
- Ajv 严格拒绝模式:不类型转换、不注入默认值、不删除未知字段。
- 新增/修改配置字段必须同步更新 TypeBox schema、`config.schema.json`、测试和用户文档。

View File

@@ -6,8 +6,8 @@
dev.ts / main.ts
-> parseRuntimeArgs(cli args) — 必须指定 config.yaml
-> bootstrap({ configPath, mode })
-> loadServerConfig(configPath)
-> createRuntimeLogger(config.logging)
-> loadServerConfig(configPath) — 加载并校验配置config.ts
-> createRuntimeLogger(config.logging) — 创建 Logger 实例
-> mkdirSync(dataDir)
-> 加载 migrations生产嵌入 bytes开发磁盘 drizzle/
-> createDatabase(dataDir)
@@ -33,18 +33,20 @@ Request -> Bun.serve routes 声明式匹配 -> routes/*.ts handler -> helpers/
## 主要模块
| 模块 | 职责 |
| ------------------------- | ------------------------------------------------ |
| `src/server/bootstrap.ts` | 统一启动引导、DB 初始化、shutdown 编排 |
| `src/server/server.ts` | Bun HTTP server + routes 注册 |
| `src/server/routes/` | API handler按资源端点拆分 |
| `src/server/db/` | SQLite 连接、schema、migration、data access |
| `src/server/ai/` | AI Provider Registry + Agent 流式调用 |
| `src/server/config/` | 配置解析types、variables、normalizer、schema |
| `src/server/helpers/` | 响应格式化、URL 工具 |
| `src/server/middleware/` | 参数校验 + 错误处理 |
| `src/shared/api.ts` | 前后端共享 API 类型 |
| `src/shared/app.ts` | 应用全局常量 |
| 模块 | 职责 |
| ------------------------- | -------------------------------------------------------- |
| `src/server/bootstrap.ts` | 统一启动引导、DB 初始化、shutdown 编排 |
| `src/server/config.ts` | 配置加载入口YAML 解析、规范化、契约校验、运行时校验 |
| `src/server/config/` | 配置子系统types、variables、issues、normalizer、schema |
| `src/server/logger.ts` | Logger 接口 + Pino 实现 + 测试替身 |
| `src/server/server.ts` | Bun HTTP server + routes 注册 |
| `src/server/routes/` | API handler按资源端点拆分 |
| `src/server/db/` | SQLite 连接、schema、migration、data access |
| `src/server/ai/` | AI Provider Registry + Agent + 工具 |
| `src/server/helpers/` | 响应格式化、URL 工具 |
| `src/server/middleware/` | 参数校验 + 错误处理 |
| `src/shared/api.ts` | 前后端共享 API 类型 |
| `src/shared/app.ts` | 应用全局常量 |
## 路由分组

View File

@@ -28,7 +28,7 @@ SQLite + bun:sqlite + Drizzle ORM。
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `projects.ts` | createProject、getProject、listProjects、updateProject、deleteProject、archiveProject、restoreProject |
| `providers.ts` | createProvider、getProvider、listProviders、listProviderOptions、updateProvider、deleteProvider |
| `models.ts` | createModel、getModel、listModels、getModelsByProviderId、updateModel、deleteModel |
| `models.ts` | createModel、getModel、listModels、getModelWithProvider、getModelsByProviderId、updateModel、deleteModel |
| `conversations.ts` | createConversation、getConversation、listConversations、updateConversation、updateConversationTimestamp、deleteConversation、createMessage、createMessages、listMessages |
输入输出类型来自 `src/shared/api.ts`
@@ -38,9 +38,8 @@ SQLite + bun:sqlite + Drizzle ORM。
- `src/server/ai/types.ts``AIProviderConfig`name、type、baseUrl、apiKey`AIModelConfig`providerId、modelId、capabilities
- `src/server/ai/registry.ts`
- `buildProviderRegistry(db)` — 从 DB 查询供应商构建 AI SDK Provider Registry每次调用重建不缓存。通过 `registry.languageModel('providerId:modelId')` 获取模型实例。
- `testProviderConnection(config)` — 测试 Base URL 可达性 + `/models` 接口
- `testModelConnection(config)` — 测试模型连通性
- `countModels(db)` — 统计已配置模型数
- `testProviderConnection(config, logger)` — 测试 Base URL 可达性 + `/models` 接口
- `testModelConnection(config, logger)` — 测试模型连通性(需传入含 modelId 的合并配置)
- `src/server/ai/agents/alfred-agent.ts``createAlfredAgent(model)` — ToolLoopAgent + `stepCountIs(20)` + `getCurrentTime` 工具。
- `src/server/ai/tools/`AI 工具定义。