@whispering233/ai-editor-server 0.0.21 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/client-dist/assets/index-0zEqGbv5.css +1 -0
  2. package/client-dist/assets/index-DMtHdMMq.js +521 -0
  3. package/client-dist/index.html +3 -3
  4. package/dist/backup.d.ts +78 -78
  5. package/dist/backup.d.ts.map +1 -1
  6. package/dist/backup.js +138 -139
  7. package/dist/backup.js.map +1 -1
  8. package/dist/consistency.d.ts +3 -3
  9. package/dist/consistency.d.ts.map +1 -1
  10. package/dist/consistency.js +4 -4
  11. package/dist/consistency.js.map +1 -1
  12. package/dist/debug.d.ts +1 -1
  13. package/dist/debug.js +7 -7
  14. package/dist/debug.js.map +1 -1
  15. package/dist/index.d.ts +9 -9
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +37 -37
  18. package/dist/index.js.map +1 -1
  19. package/dist/middleware/error.d.ts +4 -4
  20. package/dist/middleware/error.d.ts.map +1 -1
  21. package/dist/middleware/error.js +7 -9
  22. package/dist/middleware/error.js.map +1 -1
  23. package/dist/middleware/project.d.ts +9 -9
  24. package/dist/middleware/project.d.ts.map +1 -1
  25. package/dist/middleware/project.js +23 -23
  26. package/dist/middleware/project.js.map +1 -1
  27. package/dist/reference-files.d.ts +12 -12
  28. package/dist/reference-files.d.ts.map +1 -1
  29. package/dist/reference-files.js +20 -21
  30. package/dist/reference-files.js.map +1 -1
  31. package/dist/routes/chat.d.ts +18 -18
  32. package/dist/routes/chat.d.ts.map +1 -1
  33. package/dist/routes/chat.js +70 -83
  34. package/dist/routes/chat.js.map +1 -1
  35. package/dist/routes/delta.d.ts.map +1 -1
  36. package/dist/routes/delta.js +27 -28
  37. package/dist/routes/delta.js.map +1 -1
  38. package/dist/routes/entity.d.ts.map +1 -1
  39. package/dist/routes/entity.js +44 -45
  40. package/dist/routes/entity.js.map +1 -1
  41. package/dist/routes/names.d.ts.map +1 -1
  42. package/dist/routes/names.js +8 -9
  43. package/dist/routes/names.js.map +1 -1
  44. package/dist/routes/outline.d.ts +1 -1
  45. package/dist/routes/outline.d.ts.map +1 -1
  46. package/dist/routes/outline.js +23 -24
  47. package/dist/routes/outline.js.map +1 -1
  48. package/dist/routes/project.d.ts +6 -6
  49. package/dist/routes/project.d.ts.map +1 -1
  50. package/dist/routes/project.js +91 -95
  51. package/dist/routes/project.js.map +1 -1
  52. package/dist/routes/proposal.d.ts.map +1 -1
  53. package/dist/routes/proposal.js +40 -42
  54. package/dist/routes/proposal.js.map +1 -1
  55. package/dist/routes/reference.d.ts.map +1 -1
  56. package/dist/routes/reference.js +1 -2
  57. package/dist/routes/reference.js.map +1 -1
  58. package/dist/routes/relation.d.ts.map +1 -1
  59. package/dist/routes/relation.js +14 -15
  60. package/dist/routes/relation.js.map +1 -1
  61. package/dist/routes/settings.d.ts +35 -17
  62. package/dist/routes/settings.d.ts.map +1 -1
  63. package/dist/routes/settings.js +157 -52
  64. package/dist/routes/settings.js.map +1 -1
  65. package/dist/routes/trash.d.ts.map +1 -1
  66. package/dist/routes/trash.js +15 -16
  67. package/dist/routes/trash.js.map +1 -1
  68. package/package.json +7 -7
  69. package/client-dist/assets/index-B51Kcb1K.css +0 -1
  70. package/client-dist/assets/index-zgl3whdc.js +0 -104
@@ -1,31 +1,14 @@
1
1
  // 对话路由(U3 切片 1 + S7.6):GET /api/v1/chat/sessions、GET /api/v1/chat/sessions/:id/messages、
2
- // POST /api/v1/chat(POST + SSE 对话端点,切片 7 最后一张卡)
2
+ // POST /api/v1/chat(POST + SSE 对话端点,切片 7 最后一张卡)
3
3
  //
4
- // 契约来源:
5
- // - doc/api/endpoints.md 第 752-803 行(POST /api/v1/chat 整节:Req { message, session_id?,
6
- // context? };SSE 事件 ping/tool_call/tool_result/text/proposal/done/error 与 data 形态;
7
- // 顺序与生命周期约定——proposal 在对应 tool_result 后、循环继续前,error 后流立即关闭,
8
- // 确认/拒绝提案与 SSE 生命周期解耦;客户端解析约束——POST+SSE,EventSource 不支持)
9
- // - doc/design/decisions.md 决策 16(SSE 断开全链路取消:AbortController 终止 agent 循环、
10
- // 中止 DeepSeek fetch;未确认提案按产生它的会话作废——本文件 B2 取舍见 cancel 后注释)、
11
- // 决策 17(key 来源:环境变量 DEEPSEEK_API_KEY > ~/.ai-editor/config.json,settings.ts
12
- // 的 effectiveApiKey 解析)、决策 18(chat_messages 持久化:用户/assistant/tool 消息落库、
13
- // tool_calls/tool_call_id 配对列)、决策 20(心跳 15-30s + 三路断开检测 + 半开连接限制)
14
- // - S7.3 run.ts(runAgent 输入输出契约:produce 闭包转发 onEvent 给 chatStream、失败 resolve
15
- // 不 throw;onMessages 每轮输出 [assistant, ...tool 结果],用户消息自行持久化;AgentEvent
16
- // 六类事件 + turn_start——本文件只转 SSE 帧、不产生事件)
17
- // - S7.4 executor.ts(createToolDispatcher 真实现;提案仓 defaultProposalStore)
18
- // - S6.1 llm client.ts(chatStream:tools 需 OpenAI function schema 格式)
19
- // - S6.3-S6.6 registry.ts(listTools 33 个 AUTO+PROPOSAL 工具;执行类不注册不暴露——
20
- // 本文件 zod schema → JSON Schema 转换,zod 4 内置 toJSONSchema,无新依赖)
21
4
  //
22
5
  // 语义约定:
23
- // - 无当前项目 → 409 NO_PROJECT_OPEN(requireCurrentProject,与其他业务路由一致)
24
- // - 请求体校验失败 → 400 VALIDATION_ERROR(JSON,非 SSE——校验在开流之前)
25
- // - 未配置 DeepSeek key → 400 LLM_API_KEY_MISSING(决策 17;同样在开流之前,JSON)
26
- // - session_id 提供 → 按项目加载历史重建 SessionState(跨项目 session_id 加载为空数组——
27
- // 与 GET /messages 的「不泄露存在性」语义一致,新消息按当前项目写入)
28
- // - session_id 缺省 → generateRuntimeId("session") 新建 sess_ 会话(endpoints.md id 约定)
6
+ // - 无当前项目 → 409 NO_PROJECT_OPEN(requireCurrentProject,与其他业务路由一致)
7
+ // - 请求体校验失败 → 400 VALIDATION_ERROR(JSON,非 SSE——校验在开流之前)
8
+ // - 未配置 DeepSeek key → 400 LLM_API_KEY_MISSING(同样在开流之前,JSON)
9
+ // - session_id 提供 → 按项目加载历史重建 SessionState(跨项目 session_id 加载为空数组——
10
+ // 与 GET /messages 的「不泄露存在性」语义一致,新消息按当前项目写入)
11
+ // - session_id 缺省 → generateRuntimeId("session") 新建 sess_ 会话( id 约定)
29
12
  //
30
13
  // 可测试性:路由经 createChatRoutes(deps) 工厂构造——测试注入 mock produce/dispatcher/心跳/
31
14
  // 时间/提案仓,避免真实 DeepSeek 调用与全局单例污染;index.ts 挂载默认实例 chatRoutes。
@@ -41,11 +24,11 @@ import { chatMessagesResSchema, chatSendReqSchema, chatSessionsResSchema } from
41
24
  import { HttpError, ok } from "../middleware/error.js";
42
25
  import { requireCurrentProject } from "../middleware/project.js";
43
26
  import { debugLog, isCategoryEnabled } from "../debug.js";
44
- import { DEFAULT_MODEL, DEFAULT_THINKING_LEVEL, effectiveApiKey, getUserConfig } from "./settings.js";
27
+ import { DEFAULT_MODEL, DEFAULT_THINKING_LEVEL, effectiveApiKey, effectiveProvider, getUserConfig, providerDisplayName, providerEnvVar } from "./settings.js";
45
28
  // ============ 常量 ============
46
- /** 心跳间隔(决策 20:15-30s 随机;测试经 deps.heartbeat 覆盖为毫秒级) */
29
+ /** 心跳间隔(15-30s 随机;测试经 deps.heartbeat 覆盖为毫秒级) */
47
30
  export const DEFAULT_HEARTBEAT_MS = { minMs: 15_000, maxMs: 30_000 };
48
- /** 续聊历史重建的条数上限(超限按尾部保留——决策 6 的 token 裁剪由 S7.2 buildContext
31
+ /** 续聊历史重建的条数上限(超限按尾部保留—— 的 token 裁剪由 S7.2 buildContext
49
32
  * 按预算二次兜底,此处仅防御病态超长会话的加载开销) */
50
33
  export const SESSION_HISTORY_MAX_MESSAGES = 2000;
51
34
  // ============ zod → JSON Schema(OpenAI function calling 格式) ============
@@ -53,8 +36,8 @@ export const SESSION_HISTORY_MAX_MESSAGES = 2000;
53
36
  * 单个工具 argsSchema(zod)→ OpenAI 兼容 JSON Schema(LLMToolDefinition.parameters)。
54
37
  * 方案:**zod 4 内置 toJSONSchema**(`import { toJSONSchema } from "zod"`,v4.4+ 自带,
55
38
  * 无新增依赖)——33 个工具参数均为简单对象 + string/enum/array/record/literal/union 字段,
56
- * 内置转换全覆盖且输出 draft 2020-12 合法 schema(`.strict()` → additionalProperties:false、
57
- * `.refine()` 仅影响校验不改变类型 schema、`z.record` → propertyNames 形态)。
39
+ * 内置转换全覆盖且输出 draft 2020-12 合法 schema(`.strict` → additionalProperties:false、
40
+ * `.refine` 仅影响校验不改变类型 schema、`z.record` → propertyNames 形态)。
58
41
  * 仅剥离顶层 `$schema` 关键字——OpenAI 兼容端点(含 DeepSeek)对 parameters 内未知关键字
59
42
  * 存在严格模式拒绝风险,剥离后零风险(其余关键字为标准 JSON Schema 内容,兼容)。
60
43
  */
@@ -79,31 +62,32 @@ export function toLLMToolDefinitions(defs) {
79
62
  }
80
63
  // ============ 真实 produce / dispatcher 构造 ============
81
64
  /**
82
- * 真实 produce 闭包(S7.3 契约:把 onEvent 转发给 chatStream 的 onEvent——runAgent 依赖它
83
- * 累积文本与收集工具调用;失败按 chatStream 契约 resolve 出 { ok:false, ... } 不 throw;
84
- * signal 由 runAgent 注入 attempt 级独立控制器——超时 abort 与用户取消分离,决策 15)。
65
+ * 真实 produce 闭包(S7.3 onEvent 转发给 chatStream 的 onEvent——runAgent 依赖它
66
+ * 累积文本与收集工具调用;失败按 chatStream resolve 出 { ok:false, ... } 不 throw;
67
+ * signal 由 runAgent 注入 attempt 级独立控制器——超时 abort 与用户取消分离)。
85
68
  */
86
- function createRealProduce(apiKey, model, tools, debugStream, thinking = DEFAULT_THINKING_LEVEL) {
69
+ function createRealProduce(apiKey, provider, model, tools, debugStream, thinking = DEFAULT_THINKING_LEVEL) {
87
70
  return (messages, signal, onEvent) =>
88
71
  // debugStream 显式传布尔(含 false)——stream 类别关时压过 env,保证配置文件类别隔离语义
89
- // reasoning(思考强度,决策 34):off 不传(模型默认推理),low/medium/high 传 pi-ai 统一接口
90
- chatStream({ apiKey, model, messages, tools, signal, onEvent, debugStream, reasoning: thinking });
72
+ // reasoning(思考强度):off 不传(模型默认推理),low/medium/high 传 pi-ai 统一接口
73
+ // provider(批次十六):模型只在 provider 目录内解析(llm 层兜底)
74
+ chatStream({ apiKey, provider, model, messages, tools, signal, onEvent, debugStream, reasoning: thinking });
91
75
  }
92
76
  // ============ [llm] 请求 / usage 调试日志装饰器(细粒度类别 request / usage) ============
93
77
  /**
94
78
  * [llm] 请求调试日志装饰器:给 produce 包一层(真实路径经
95
79
  * `createLLMRequestLogger(createRealProduce(...), { model, tools })` 组装),对应类别开启时:
96
80
  * - **request 日志**(类别 request):模型名 + 请求参数 + **完整 messages JSON(不截断——
97
- * 用户核心诉求「最终组装的 prompt」)** + 工具名列表;每轮每次 attempt 各打一次(含重试)
81
+ * 用户核心诉求「最终组装的 prompt」)** + 工具名列表;每轮每次 attempt 各打一次(含重试)
98
82
  * - **usage 日志**(类别 usage):onEvent 转发处捕获 finish 事件,打真实 token 数
99
- * (需求 3,流内真实 usage)——与 request **分开判定**(categories: ["request","usage"]
100
- * 时只显示请求与 tokens 统计)
83
+ * (需求 3,流内真实 usage)——与 request **分开判定**(categories: ["request","usage"]
84
+ * 时只显示请求与 tokens 统计)
101
85
  * - **敏感红线**:只打印请求体(messages 本身无 key——key 走 fetch header),
102
- * 绝不打印 apiKey / headers
86
+ * 绝不打印 apiKey / headers
103
87
  * - 两类别全关(request + usage 均未开启)时**零开销直通**:不包装 onEvent、不拼接字符串
104
88
  * 独立成装饰器而非塞进 createRealProduce:测试可用 mock produce 直测日志层,
105
89
  * 不经真实 DeepSeek 网络调用(与 createChatEventLogger 的「工厂 + 组合」同款模式)。
106
- * 注:produce 契约(run.ts)不含 maxTokens/temperature(当前无对应配置),如实标注 <未设置>。
90
+ * 注:produce run.ts)不含 maxTokens/temperature(当前无对应配置),如实标注 <未设置>。
107
91
  */
108
92
  export function createLLMRequestLogger(produce, ctx) {
109
93
  const toolNames = ctx.tools.map((t) => t.name).join(", ");
@@ -131,7 +115,7 @@ export function createLLMRequestLogger(produce, ctx) {
131
115
  }
132
116
  // ============ 聚焦上下文拼装(S7.2 输入形态) ============
133
117
  /**
134
- * 聚焦上下文文本(决策 6 聚焦层):focus_entity_* → getEntity 查询实体、focus_node_id →
118
+ * 聚焦上下文文本( 聚焦层):focus_entity_* → getEntity 查询实体、focus_node_id →
135
119
  * 大纲节点查询,拼成结构化文本注入 system 聚焦消息。
136
120
  * 查询不到(已软删/不存在/跨项目)→ 跳过该项(不报错)——聚焦缺失不阻断对话,属防御性
137
121
  * 正常路径(客户端可能携带过期 focus 发送);两项皆无 → undefined(无聚焦注入)。
@@ -193,12 +177,12 @@ function debugSummary(value, max = DEBUG_FIELD_MAX) {
193
177
  /**
194
178
  * 创建 [chat] 事件调试日志器(对话链路调试,打到服务端终端 stdout/stderr;类别 chat):
195
179
  * - 类别未开启(配置文件未列 chat 且 env 关)时零开销早退——不做任何字符串拼接
196
- * (onEvent 高频路径无条件调用)
180
+ * (onEvent 高频路径无条件调用)
197
181
  * - turn_start → 轮次;tool_call → 工具名 + 参数 JSON 摘要(截断);tool_result → 工具名 + 结果
198
- * 摘要(截断);proposal → proposal_id + type;text → **只打 delta 长度**(流式高频防刷屏);
199
- * done → sessionId + 轮次;error → code + message
200
- * - 注:AgentEvent.tool_result 契约(run.ts)不含 ok/isError 字段——工具成败已编码进 result
201
- * 文本(失败为错误说明),日志只摘要该文本
182
+ * 摘要(截断);proposal → proposal_id + type;text → **只打 delta 长度**(流式高频防刷屏);
183
+ * done → sessionId + 轮次;error → code + message
184
+ * - 注:AgentEvent.tool_result run.ts)不含 ok/isError 字段——工具成败已编码进 result
185
+ * 文本(失败为错误说明),日志只摘要该文本
202
186
  */
203
187
  export function createChatEventLogger() {
204
188
  let round = 0; // 轮次计数器(turn_start 刷新;done 事件附带——AgentEvent.done 无轮次字段)
@@ -235,8 +219,8 @@ export function createChatEventLogger() {
235
219
  /**
236
220
  * POST /chat 处理器工厂(测试经 createChatRoutes 注入 deps)。
237
221
  * 流程:项目/请求校验(JSON 错误,不开流)→ 会话解析(历史重建或新建 sess_)→ 用户消息落库
238
- * (决策 18)→ 三路断开检测挂接 → SSE 流内:心跳协程 + runAgent(produce/dispatcher 组装、
239
- * onEvent 转 SSE 帧、onMessages 落库)→ 取消作废提案(决策 16,B2 取舍见下)→ 关流。
222
+ * 三路断开检测挂接 → SSE 流内:心跳协程 + runAgent(produce/dispatcher 组装、
223
+ * onEvent 转 SSE 帧、onMessages 落库)→ 取消作废提案(B2 取舍见下)→ 关流。
240
224
  */
241
225
  export function chatSendHandler(deps = {}) {
242
226
  return async (c) => {
@@ -248,30 +232,33 @@ export function chatSendHandler(deps = {}) {
248
232
  throw parsed.error; // → app.onError → 400 VALIDATION_ERROR(含 fields)
249
233
  }
250
234
  const { message, session_id, context } = parsed.data;
251
- // ---- key/模型/工具解析(决策 17:环境变量 > 用户级配置;测试注入 deps 时无需真实 key) ----
252
- const envKey = deps.apiKey ?? effectiveApiKey().key;
235
+ // ---- key/模型/工具解析(批次十六:按激活 provider 独立解析;测试注入 deps 时无需真实 key) ----
236
+ // provider:config.provider 未注册时缺省 deepseek(effectiveProvider 兜底)
237
+ const provider = effectiveProvider();
238
+ const envKey = deps.apiKey ?? effectiveApiKey(provider).key;
253
239
  if (envKey === null && deps.produce === undefined) {
254
- throw new HttpError(400, "LLM_API_KEY_MISSING", "未配置 DeepSeek API key:请设置环境变量 DEEPSEEK_API_KEY 或在设置页配置(决策 17)");
240
+ const envVar = providerEnvVar(provider);
241
+ throw new HttpError(400, "LLM_API_KEY_MISSING", `未配置 ${providerDisplayName(provider)} API key:请设置环境变量 ${envVar ?? provider} 或在设置页配置()`);
255
242
  }
256
243
  // 守卫收窄:deps.produce 注入(测试)时不使用 apiKey;否则 envKey 已保证非 null
257
244
  const apiKey = envKey ?? "";
258
245
  const model = deps.model ?? getUserConfig().model ?? DEFAULT_MODEL;
259
- // 思考强度(决策 34):用户级配置持久化,POST /chat 读取后传 llm(chatStream reasoning)
246
+ // 思考强度:用户级配置持久化,POST /chat 读取后传 llm(chatStream reasoning)
260
247
  const thinking = getUserConfig().thinking_level ?? DEFAULT_THINKING_LEVEL;
261
248
  const tools = deps.tools ?? toLLMToolDefinitions(listTools());
262
249
  const store = deps.store ?? defaultProposalStore;
263
250
  const now = deps.now ?? nowIso;
264
251
  return streamSSE(c, async (stream) => {
265
- // ---- 1. 会话解析(决策 18 续聊重建) ----
252
+ // ---- 1. 会话解析( 续聊重建) ----
266
253
  const sessionId = session_id ?? generateRuntimeId("session");
267
254
  // 跨项目 session_id:listMessageRows 按项目过滤 → 空历史(不泄露存在性,与 GET 一致);
268
255
  // 后续写入按当前项目——单项目 MVP 下等价于「该项目内的续聊」,注释留扩展点
269
256
  const session = session_id === undefined
270
257
  ? []
271
258
  : restoreSession(listMessageRows(project.db, sessionId, project.config.id), deps.sessionHistoryMaxCount ?? SESSION_HISTORY_MAX_MESSAGES);
272
- // ---- 2. 聚焦上下文(决策 6;查不到跳过,不阻断) ----
259
+ // ---- 2. 聚焦上下文(查不到跳过,不阻断) ----
273
260
  const focus = buildFocusText(project, context);
274
- // ---- 3. 用户消息落库(决策 18;assistant/tool 消息由 onMessages 落库) ----
261
+ // ---- 3. 用户消息落库(assistant/tool 消息由 onMessages 落库) ----
275
262
  insertChatMessage(project.db, {
276
263
  session_id: sessionId,
277
264
  project_id: project.config.id,
@@ -279,15 +266,15 @@ export function chatSendHandler(deps = {}) {
279
266
  content: message,
280
267
  created_at: now(),
281
268
  });
282
- // ---- 4. 取消信号 + 三路断开检测(决策 16/20) ----
283
- // controller.signal 即 runAgent 的 signal(决策 16 全链路第 0 层——四层穿透的
269
+ // ---- 4. 取消信号 + 三路断开检测 ----
270
+ // controller.signal 即 runAgent 的 signal 全链路第 0 层——四层穿透的
284
271
  // fetch/读循环/工具执行/重试 sleep 已由 llm/tools/agent 各层承担,本卡链路总装)
285
272
  const controller = new AbortController();
286
273
  const cancel = () => {
287
274
  if (!controller.signal.aborted)
288
275
  controller.abort();
289
276
  };
290
- // ① stream.onAbort:客户端断开 → 响应流 cancel → Hono StreamingApi.abort() → 本回调
277
+ // ① stream.onAbort:客户端断开 → 响应流 cancel → Hono StreamingApi.abort → 本回调
291
278
  stream.onAbort(cancel);
292
279
  // ② c.req.raw 的 close/error 监听:@hono/node-server v2 的 c.req.raw 是标准 Request
293
280
  // (无 close 事件,signal 随请求中止触发)——两种形态按能力探测都挂上,双保险
@@ -297,10 +284,10 @@ export function chatSendHandler(deps = {}) {
297
284
  rawReq.on("close", cancel);
298
285
  rawReq.on("error", cancel);
299
286
  }
300
- // ③ 心跳写失败:Hono write() 吞错无法从 promise 观察写失败(stream.js write try/catch)
301
- // ——断连时 ① 已同步置位 controller.signal,心跳每次写后复查该旗标兜底
302
- // (时延 ≤ 心跳间隔,决策 20 三路并用中的最后一道防线)
303
- // ---- 5. SSE 写帧器(endpoints.md 事件契约;断连后不再写) ----
287
+ // ③ 心跳写失败:Hono write 吞错无法从 promise 观察写失败(stream.js write try/catch)
288
+ // ——断连时 ① 已同步置位 controller.signal,心跳每次写后复查该旗标兜底
289
+ // (时延 ≤ 心跳间隔, 三路并用中的最后一道防线)
290
+ // ---- 5. SSE 写帧器( 事件;断连后不再写) ----
304
291
  const writeEvent = async (event, data) => {
305
292
  if (controller.signal.aborted)
306
293
  return; // 已断开:写也失败,跳过
@@ -311,7 +298,7 @@ export function chatSendHandler(deps = {}) {
311
298
  cancel(); // 写抛错(writeSSE 理论上吞错,防御路径)
312
299
  }
313
300
  };
314
- // ---- 6. 心跳协程(决策 20:15-30s 随机 ping;停止/断连即时唤醒退出) ----
301
+ // ---- 6. 心跳协程(15-30s 随机 ping;停止/断连即时唤醒退出) ----
315
302
  const heartbeatStop = new AbortController();
316
303
  const heartbeat = (async () => {
317
304
  const { minMs, maxMs } = deps.heartbeat ?? DEFAULT_HEARTBEAT_MS;
@@ -345,7 +332,7 @@ export function chatSendHandler(deps = {}) {
345
332
  void writeEvent("tool_result", { tool: event.tool, result: event.result, id: event.id });
346
333
  return;
347
334
  case "proposal":
348
- // endpoints.md:proposal 在对应 tool_result 之后、循环继续之前(runAgent 保证)
335
+ // :proposal 在对应 tool_result 之后、循环继续之前(runAgent 保证)
349
336
  void writeEvent("proposal", {
350
337
  proposal_id: event.proposal.proposal_id,
351
338
  type: event.proposal.type,
@@ -353,7 +340,7 @@ export function chatSendHandler(deps = {}) {
353
340
  });
354
341
  return;
355
342
  case "done":
356
- // 需求 3(决策 34):附带本轮真实 usage,前端计算上下文占用
343
+ // 需求 3:附带本轮真实 usage,前端计算上下文占用
357
344
  void writeEvent("done", { session_id: event.sessionId, ...(lastUsage !== null ? { usage: lastUsage } : {}) });
358
345
  return;
359
346
  case "error":
@@ -363,9 +350,9 @@ export function chatSendHandler(deps = {}) {
363
350
  return;
364
351
  }
365
352
  };
366
- // ---- 8. onMessages → 落库(决策 18:assistant + tool 消息,含 tool_calls/tool_call_id 配对) ----
367
- // 硬契约(run.ts 注释):onMessages 抛错不逃逸(runAgent 兜底吞掉)——落库失败
368
- // 不中断 agent 循环,此处由 db 抛错自然触发该契约(本路由不额外 try/catch)
353
+ // ---- 8. onMessages → 落库(assistant + tool 消息,含 tool_calls/tool_call_id 配对) ----
354
+ // 硬(run.ts 注释):onMessages 抛错不逃逸(runAgent 兜底吞掉)——落库失败
355
+ // 不中断 agent 循环,此处由 db 抛错自然触发该(本路由不额外 try/catch)
369
356
  const onMessages = (messages) => {
370
357
  const ts = now();
371
358
  for (const m of messages) {
@@ -384,14 +371,14 @@ export function chatSendHandler(deps = {}) {
384
371
  // 真实 produce 外包 [llm] 请求/usage 调试日志装饰器(细粒度类别 request/usage,关闭零开销直通);
385
372
  // debugStream 按 stream 类别显式传入(false 也传——压过 env,保证类别隔离语义)
386
373
  const produce = deps.produce ??
387
- createLLMRequestLogger(createRealProduce(apiKey, model, tools, isCategoryEnabled("stream"), thinking), {
374
+ createLLMRequestLogger(createRealProduce(apiKey, provider, model, tools, isCategoryEnabled("stream"), thinking), {
388
375
  model,
389
376
  tools,
390
377
  });
391
378
  // S7.4 真实现:ToolContext { db, outlineDir, projectId } + 同仓提案(S7.5 消费)
392
379
  const dispatcher = deps.dispatcher ?? createToolDispatcher({ db: project.db, outlineDir: project.root, projectId: project.config.id }, { store });
393
- // ---- 9.5 上下文占用数据(需求 3,决策 34):包裹 produce 捕获流内 finish 事件的真实 usage,
394
- // 在 done SSE 帧附带——前端据此计算上下文占用(usage.total / 模型 contextWindow) ----
380
+ // ---- 9.5 上下文占用数据(需求 3):包裹 produce 捕获流内 finish 事件的真实 usage,
381
+ // 在 done SSE 帧附带——前端据此计算上下文占用(usage.total / 模型 contextWindow) ----
395
382
  let lastUsage = null;
396
383
  const produceWithUsage = async (messages, signal, onEvent) => {
397
384
  const tee = (e) => {
@@ -406,18 +393,18 @@ export function chatSendHandler(deps = {}) {
406
393
  userMessage: message, // runAgent 追加进会话(传入 session 不应已含本轮消息)
407
394
  session,
408
395
  focus,
409
- // 决策 41:项目规则唯一事实源 = 项目目录 AGENTS.md(取代 project.config.prompt)——
396
+ // 项目规则唯一事实源 = 项目目录 (取代 project.config.prompt)——
410
397
  // 每次对话实时读文件(外部编辑立即可见);文件不存在 → undefined(「## 项目设定」段跳过)
411
398
  projectPrompt: readAgentsFile(project.root) ?? undefined,
412
399
  deps: { produce: produceWithUsage, dispatcher, onEvent, onMessages },
413
- signal: controller.signal, // 决策 16:断开即取消(abort 永不重试)
400
+ signal: controller.signal, // 断开即取消(abort 永不重试)
414
401
  });
415
- // ---- 10. B2 取舍落地(决策 16「未确认提案按产生它的会话作废」) ----
402
+ // ---- 10. B2 取舍落地(「未确认提案按产生它的会话作废」) ----
416
403
  // 三选项评估:a) Proposal 加 sessionId + 仓按会话清除(跨包改动 S6.6/S7.4,成本中);
417
- // b) SSE 取消时 clear() 全量;c) 依赖 TTL(10 分钟)。
404
+ // b) SSE 取消时 clear 全量;c) 依赖 TTL(10 分钟)。
418
405
  // 选择 **b**:最小改动、单项目单会话 MVP 下与「按会话作废」语义等价——取消只发生在
419
- // 客户端断连(同会话)或项目切换(提案本就按项目绑定,切换时全清)场景,clear() 不会
420
- // 误伤其他会话的待确认提案。与决策 16 原文的偏差(提案记录来源 session_id、按会话粒度
406
+ // 客户端断连(同会话)或项目切换(提案本就按项目绑定,切换时全清)场景,clear 不会
407
+ // 误伤其他会话的待确认提案。与 原文的偏差(提案记录来源 session_id、按会话粒度
421
408
  // 作废)记录为扩展点:多会话并发(backlog 多标签页)时按选项 a 演进——Proposal 增
422
409
  // session_id 字段、ProposalStore 增 clearBySession(sessionId),调度时由 S7.6 透传会话。
423
410
  if (result.aborted) {
@@ -430,7 +417,7 @@ export function chatSendHandler(deps = {}) {
430
417
  await stream.close();
431
418
  },
432
419
  // 防御路径 onError:cb 内部异常(正常流程 error 事件已由 runAgent 发出,理论不可达)——
433
- // 转契约形态 JSON error 帧(客户端 use-sse 收到 error 即终止解析)
420
+ // 转形态 JSON error 帧(客户端 use-sse 收到 error 即终止解析)
434
421
  async (err, stream) => {
435
422
  console.error("[server] chat SSE 流异常:", err);
436
423
  try {
@@ -471,8 +458,8 @@ export function createChatRoutes(deps = {}) {
471
458
  /** 默认对话路由实例(index.ts 挂载于 /api/v1/chat) */
472
459
  export const chatRoutes = createChatRoutes();
473
460
  /**
474
- * sessions 响应契约自检出口(参照 project.ts listResponse):
475
- * parse 失败 = 服务端构造的响应不符合 shared 契约(服务端 bug),转 500 INTERNAL_ERROR;
461
+ * sessions 响应自检出口(参照 project.ts listResponse):
462
+ * parse 失败 = 服务端构造的响应不符合 shared (服务端 bug),转 500 INTERNAL_ERROR;
476
463
  * 不让 ZodError 冒泡——否则 errorHandler 会按入参语义误报 400 VALIDATION_ERROR。
477
464
  */
478
465
  function sessionsResponse(c, sessions) {
@@ -480,16 +467,16 @@ function sessionsResponse(c, sessions) {
480
467
  return c.json(ok(chatSessionsResSchema.parse({ sessions })));
481
468
  }
482
469
  catch (err) {
483
- throw new HttpError(500, "INTERNAL_ERROR", `sessions 响应不符合契约: ${err instanceof Error ? err.message : String(err)}`);
470
+ throw new HttpError(500, "INTERNAL_ERROR", `sessions 响应不符合${err instanceof Error ? err.message : String(err)}`);
484
471
  }
485
472
  }
486
- /** messages 响应契约自检出口(同上;db 消息含 sessionId/projectId 附加字段,parse 按契约剥离) */
473
+ /** messages 响应自检出口(同上;db 消息含 sessionId/projectId 附加字段,parse 按剥离) */
487
474
  function messagesResponse(c, sessionId, messages) {
488
475
  try {
489
476
  return c.json(ok(chatMessagesResSchema.parse({ sessionId, messages })));
490
477
  }
491
478
  catch (err) {
492
- throw new HttpError(500, "INTERNAL_ERROR", `messages 响应不符合契约: ${err instanceof Error ? err.message : String(err)}`);
479
+ throw new HttpError(500, "INTERNAL_ERROR", `messages 响应不符合${err instanceof Error ? err.message : String(err)}`);
493
480
  }
494
481
  }
495
482
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/routes/delta.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,2CAA2C;AAC3C,eAAO,MAAM,WAAW,4EAAa,CAAC"}
1
+ {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/routes/delta.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,2CAA2C;AAC3C,eAAO,MAAM,WAAW,4EAAa,CAAC"}
@@ -1,18 +1,17 @@
1
1
  // Delta 路由(S5.3):POST /api/v1/delta(追加)/ GET /node/:nodeId(按节点查询)/ POST /compute(状态计算)
2
2
  //
3
- // 契约来源:doc/api/endpoints.md 第 395-510 行(Delta 变更追踪)、决策 9(computeState 累积规则)、
4
- // 决策 12 修订(可见性联动)、S13.3 收紧(变更目标仅实体类型——大纲节点不可作为变更目标,
5
- // 历史 outline_node 目标数据保留展示,创建路径拒绝)。
6
- // 错误映射(对照 endpoints.md 错误码):
7
- // 参数校验失败 400 VALIDATION_ERROR(zod 抛错由 errorHandler 统一映射,含 fields;
8
- // per-op 必填字段(endpoints.md 407-418 行)因 op 而异、zod 无法表达,路由层补校验
9
- // HttpError 400 VALIDATION_ERROR,与 entity.ts validateDataByType 同思路;
10
- // S13.3 target_type 白名单校验同此 400——schema target_type 为宽松 z.string(),
11
- // 收紧在路由层(shared schema 不动,同 S12.1 节点 data 校验模式))
12
- // 触发节点不存在或已软删 → 404 OUTLINE_NODE_NOT_FOUND(POST /delta /delta/compute 路由层前置校验;
13
- // POST /delta 契约虽未定义该错误码,但 db 层 insertDelta 不校验节点(delta.ts 注释:缺失节点记录
14
- // 因可见性规则永久不可见),路由层拦截防死记录——oracle 建议)
15
- // 目标实体不存在或已软删 → 404 ENTITY_NOT_FOUND(POST /delta/compute)
3
+ // (可见性联动)、S13.3 收紧(变更目标仅实体类型——大纲节点不可作为变更目标,
4
+ // 历史 outline_node 目标数据保留展示,创建路径拒绝)。
5
+ // 错误映射(对照 错误码):
6
+ // 参数校验失败 400 VALIDATION_ERROR(zod 抛错由 errorHandler 统一映射,含 fields;
7
+ // per-op 必填字段()因 op 而异、zod 无法表达,路由层补校验
8
+ // HttpError 400 VALIDATION_ERROR,与 entity.ts validateDataByType 同思路;
9
+ // S13.3 target_type 白名单校验同此 400——schema target_type 为宽松 z.string,
10
+ // 收紧在路由层(shared schema 不动,同 S12.1 节点 data 校验模式))
11
+ // 触发节点不存在或已软删 404 OUTLINE_NODE_NOT_FOUND(POST /delta 与 /delta/compute 路由层前置校验;
12
+ // POST /delta 虽未定义该错误码,但 db 层 insertDelta 不校验节点(delta.ts 注释:缺失节点记录
13
+ // 因可见性规则永久不可见),路由层拦截防死记录——oracle 建议)
14
+ // 目标实体不存在或已软删 → 404 ENTITY_NOT_FOUND(POST /delta/compute)
16
15
  import { Hono } from "hono";
17
16
  import { computeState, findOutlineNode, getEntity, insertDelta, listDeltasByNode, readOutlineFile } from "@whispering233/ai-editor-db";
18
17
  import { ENTITY_TYPES, mapRowToDelta } from "@whispering233/ai-editor-shared";
@@ -23,8 +22,8 @@ import { requireCurrentProject } from "../middleware/project.js";
23
22
  export const deltaRoutes = new Hono();
24
23
  /**
25
24
  * 前置校验大纲节点存在且未软删(oracle 建议,防死记录):
26
- * db 层 insertDelta / computeState 均不校验触发节点存在性(契约未定义该错误码,delta.ts 注释),
27
- * 缺失节点记录会因可见性规则(决策 12 修订:触发节点缺失视同不可见)永久不可见,
25
+ * db 层 insertDelta / computeState 均不校验触发节点存在性(未定义该错误码,delta.ts 注释),
26
+ * 缺失节点记录会因可见性规则(触发节点缺失视同不可见)永久不可见,
28
27
  * 故路由层拦截并映射 404 OUTLINE_NODE_NOT_FOUND;computeState 的 getOutlinePathIds
29
28
  * 对缺失节点抛错(视为调用方 bug),同样由本校验先行兜底。
30
29
  */
@@ -36,8 +35,8 @@ function assertOutlineNode(project, nodeId) {
36
35
  }
37
36
  }
38
37
  /**
39
- * per-op 必填字段校验(endpoints.md 第 407-418 行):
40
- * op=set → to 必填;op=update → from+to 必填;op=add → value 必填;op=remove → value 必填。
38
+ * per-op 必填字段校验():
39
+ * op=set → to 必填;op=update → from+to 必填;op=add → value 必填;op=remove → value 必填。
41
40
  * deltaChangeSchema 的字段均 optional——必填语义因 op 而异,schema 层无法表达,
42
41
  * 由路由层按 op 分派校验(与 entity.ts validateDataByType「schema 之外按类型精校验」同思路)。
43
42
  * 不满足 → 400 VALIDATION_ERROR(message 注明 changes 下标与缺失字段)。
@@ -75,23 +74,23 @@ function validateChangesByOp(changes) {
75
74
  * 变更目标类型白名单校验(S13.3 收紧:仅实体类型——大纲节点代表的
76
75
  * 故事导致实体发生变更,节点结构化信息不应出现在变更记录中;历史 outline_node 目标数据保留展示,
77
76
  * 仅创建路径拒绝)。
78
- * **排除 event(C2 oracle 审查口径,决策 26)**:event(时间轴事件)不产生 Delta——
77
+ * **排除 event(C2 oracle 审查口径)**:event(时间轴事件)不产生 Delta——
79
78
  * **本收紧覆盖 REST 创建路径**(API 直连):client 目标下拉已过滤(delta-create.ts),
80
79
  * REST 层同步拒绝(不产生「死 Delta」:无字段清单可编辑、client 无管理入口);
81
- * AI 提案通道(propose_add_delta)在 tools 层独立拒绝(proposal/delta.ts,同决策 26)。
82
- * 已存在的 event 目标历史数据仍按实体端点展示(db 层 ENTITY_TARGET_TYPES 已含 event,决策 26)。
83
- * schema 层 target_type 为宽松 z.string()(shared 不动),收紧在路由层
80
+ * AI 提案通道(propose_add_delta)在 tools 层独立拒绝(proposal/delta.ts,同)。
81
+ * 已存在的 event 目标历史数据仍按实体端点展示(db 层 ENTITY_TARGET_TYPES 已含 event)。
82
+ * schema 层 target_type 为宽松 z.string(shared 不动),收紧在路由层
84
83
  * (与 S12.1 节点 data 按层级校验同模式)。不通过 → 400 VALIDATION_ERROR(参照 entity.ts parseTypeParam 错误风格)。
85
84
  */
86
85
  function assertDeltaTargetType(targetType) {
87
86
  const allowed = ENTITY_TYPES.filter((t) => t !== "event");
88
87
  if (!allowed.includes(targetType)) {
89
- throw new HttpError(400, "VALIDATION_ERROR", `非法变更目标类型: ${targetType}(变更目标仅限实体类型: ${allowed.join("/")};event 不产生 Delta,决策 26)`);
88
+ throw new HttpError(400, "VALIDATION_ERROR", `非法变更目标类型: ${targetType}(变更目标仅限实体类型: ${allowed.join("/")};event 不产生 Delta,)`);
90
89
  }
91
90
  }
92
91
  // POST /api/v1/delta —— 追加属性变更(201;order 服务端全局单调生成)
93
92
  // 校验顺序(oracle 建议):schema → target_type 白名单(400,S13.3 请求形状校验,无 DB 读)→
94
- // 触发节点存在性(404)→ per-op 必填(400)→ insert
93
+ // 触发节点存在性(404)→ per-op 必填(400)→ insert
95
94
  deltaRoutes.post("/", async (c) => {
96
95
  const project = requireCurrentProject();
97
96
  const raw = await c.req.json().catch(() => null);
@@ -102,7 +101,7 @@ deltaRoutes.post("/", async (c) => {
102
101
  const { node_id, target_type, target_id, changes, description } = parsed.data;
103
102
  assertDeltaTargetType(target_type); // S13.3:变更目标仅实体类型(shared schema 不动,路由层收紧)
104
103
  assertOutlineNode(project, node_id); // 触发节点必须存在且未软删(防死记录)
105
- validateChangesByOp(changes); // per-op 必填字段(endpoints.md 第 407-418 行)
104
+ validateChangesByOp(changes); // per-op 必填字段()
106
105
  const row = insertDelta(project.db, {
107
106
  nodeId: node_id,
108
107
  targetType: target_type,
@@ -113,7 +112,7 @@ deltaRoutes.post("/", async (c) => {
113
112
  return c.json(ok({ id: row.id, applied: mapRowToDelta(row) }), 201);
114
113
  });
115
114
  // GET /api/v1/delta/node/:nodeId —— 按触发节点查询(200)
116
- // 契约未定义该端点 404(endpoints.md 第 436-462 行):节点缺失/软删 → 空数组(listDeltasByNode
115
+ // 未定义该端点 404():节点缺失/软删 → 空数组(listDeltasByNode
117
116
  // 内置可见性三态过滤,触发节点缺失视同不可见),不 404。
118
117
  deltaRoutes.get("/node/:nodeId", (c) => {
119
118
  const project = requireCurrentProject();
@@ -121,10 +120,10 @@ deltaRoutes.get("/node/:nodeId", (c) => {
121
120
  const deltas = listDeltasByNode(project.db, nodeId, project.root);
122
121
  return c.json(ok({ nodeId, deltas }));
123
122
  });
124
- // POST /api/v1/delta/compute —— 累积状态计算(决策 9,endpoints.md 第 464-510 行)
123
+ // POST /api/v1/delta/compute —— 累积状态计算()
125
124
  // 校验顺序(任务规格):schema → at_node_id 存在性(404 OUTLINE_NODE_NOT_FOUND,
126
- // computeState 的 getOutlinePathIds 对缺失节点抛错——路由层先拦截)→ 目标实体存在性
127
- // (404 ENTITY_NOT_FOUND;computeState 对缺失/软删实体返回 null)→ computeState → 200
125
+ // computeState 的 getOutlinePathIds 对缺失节点抛错——路由层先拦截)→ 目标实体存在性
126
+ // (404 ENTITY_NOT_FOUND;computeState 对缺失/软删实体返回 null)→ computeState → 200
128
127
  deltaRoutes.post("/compute", async (c) => {
129
128
  const project = requireCurrentProject();
130
129
  const raw = await c.req.json().catch(() => null);
@@ -1 +1 @@
1
- {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/routes/delta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/routes/delta.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/routes/entity.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAqB5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAelE,wCAAwC;AACxC,eAAO,MAAM,YAAY,4EAAa,CAAC;AAEvC,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAMvD"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/routes/entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAqB5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAelE,wCAAwC;AACxC,eAAO,MAAM,YAAY,4EAAa,CAAC;AAEvC,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAMvD"}