@whispering233/ai-editor-agent 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.
package/dist/run.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  import { type AbortSignalLike, type ChatStreamResult, type LLMError, type LLMMessage, type LLMStreamEvent } from "@whispering233/ai-editor-llm";
2
2
  import { type ContextBudgets, type ToolListEntry } from "./context.js";
3
3
  import { type SessionMessage, type SessionState } from "./session.js";
4
- /** 轮次上限(决策 15:8 轮;持续 tool_call 死循环兜底) */
4
+ /** 轮次上限(8 轮;持续 tool_call 死循环兜底) */
5
5
  export declare const DEFAULT_MAX_ROUNDS = 8;
6
- /** 单轮总预算 ms(决策 15:120s,含 LLM 重试退避与工具执行;测试可覆盖) */
6
+ /** 单轮总预算 ms120s,含 LLM 重试退避与工具执行;测试可覆盖) */
7
7
  export declare const DEFAULT_ROUND_TIMEOUT_MS = 120000;
8
8
  /**
9
- * 单次 attempt 超时 ms(决策 15:「LLM 单次 attempt 另有自身 fetch 超时」落地——
9
+ * 单次 attempt 超时 ms(「LLM 单次 attempt 另有自身 fetch 超时」落地——
10
10
  * 独立于 120s 单轮总预算;attempt 超时映射为可重试错误,轮内重试仍受 roundDeadline 兜底)。
11
11
  */
12
12
  export declare const DEFAULT_ATTEMPT_TIMEOUT_MS = 60000;
13
- /** 上下文 token 预算(决策 15:60K——DeepSeek 64K 窗口留余量;测试可覆盖) */
13
+ /** 上下文 token 预算(60K——DeepSeek 64K 窗口留余量;测试可覆盖) */
14
14
  export declare const DEFAULT_TOKEN_BUDGET = 60000;
15
- /** 提案载荷(S7.4 工具调度层构造 preview;对齐 endpoints.md proposal 事件 data 形态) */
15
+ /** 提案载荷(S7.4 工具调度层构造 preview;对齐 proposal 事件 data 形态) */
16
16
  export interface ProposalPayload {
17
17
  proposal_id: string;
18
- /** 提案类型 = 产生它的 propose_* 工具名(endpoints.md data.type) */
18
+ /** 提案类型 = 产生它的 propose_* 工具名( data.type) */
19
19
  type: string;
20
20
  /** 提案预览(前端提案卡渲染数据;本层透传不构造) */
21
21
  preview: Record<string, unknown>;
@@ -25,11 +25,11 @@ export interface ProposalPayload {
25
25
  * - turn_start:循环内部事件(每轮开始;S7.6 可不映射 SSE 帧,用于日志/调试)
26
26
  * - text:AI 文本增量(实时转发,失败轮可能已流出的半条文本属重试语义,接受)
27
27
  * - tool_call / tool_result:工具调用与结果(按 tool_call_id 配对;length 截断的调用
28
- * 不发 dispatcher,仍发 tool_call 事件)
29
- * - proposal:恒在对应 tool_result 之后、循环继续之前发送(endpoints.md 顺序约定)
28
+ * 不发 dispatcher,仍发 tool_call 事件)
29
+ * - proposal:恒在对应 tool_result 之后、循环继续之前发送( 顺序约定)
30
30
  * - done:自然终止(无工具调用),携带 session_id
31
- * - error:终止(决策 15:模型最终失败 / 8 轮上限 / 超时 / token 超限 / 调度器缺陷)或
32
- * 用户取消(aborted=true,决策 16);S7.6 收到 error 后立即关闭流
31
+ * - error:终止(模型最终失败 / 8 轮上限 / 超时 / token 超限 / 调度器缺陷)或
32
+ * 用户取消(aborted=true);S7.6 收到 error 后立即关闭流
33
33
  */
34
34
  export type AgentEvent = {
35
35
  type: "turn_start";
@@ -70,11 +70,11 @@ export interface DispatchResult {
70
70
  id: string;
71
71
  tool: string;
72
72
  /**
73
- * 执行成功与否(与 isError 同义冗余——按任务卡接口保留双字段;ora S7.3 审核 S4:
74
- * 本卡不消费 ok,留 S7.4 真实现构造时使用,接口不动)
75
- */
73
+ * 执行成功与否(与 isError 同义冗余——按任务卡接口保留双字段;ora S7.3 审核 S4:
74
+ * 本卡不消费 ok,留 S7.4 真实现构造时使用,接口不动)
75
+ */
76
76
  ok: boolean;
77
- /** 失败标记:喂回 LLM 的内容须含错误说明(决策 15 结构化喂回自纠) */
77
+ /** 失败标记:喂回 LLM 的内容须含错误说明( 结构化喂回自纠) */
78
78
  isError: boolean;
79
79
  /** 回填 LLM 的 tool 消息内容(成功 = 结果 JSON/文本;失败 = 错误说明) */
80
80
  content: string;
@@ -84,37 +84,37 @@ export interface DispatchResult {
84
84
  /**
85
85
  * 工具调度器:
86
86
  * - 输入按原 tool_call 顺序;输出**必须同序等长**(防御:条数不符 → AGENT_DISPATCH_ERROR 终止,
87
- * 防止 tool_call ↔ tool_result 错位配对——决策 18)
88
- * - signal:决策 16 ③「工具执行中检查取消」(S7.4 executor 承担;长工具执行须监听)
87
+ * 防止 tool_call ↔ tool_result 错位配对)
88
+ * - signal:「工具执行中检查取消」(S7.4 executor 承担;长工具执行须监听)
89
89
  * - 本层不抛错(失败编码进 isError 结果);抛错视为调度器缺陷 → 循环终止。
90
- * **例外:AbortedError(tools analysis/utils,决策 16 ③ 取消语义)→ 原样抛穿**——
91
- * S7.4 executor 在工具执行中检查 signal,命中取消即抛 AbortedError;本层 dispatcher
92
- * catch 识别后按用户取消终止(aborted=true、不重试、不视为缺陷),与循环其他环节的
93
- * 取消语义一致(决策 16:取消不喂回)
90
+ * **例外:AbortedError(tools analysis/utils 取消语义)→ 原样抛穿**——
91
+ * S7.4 executor 在工具执行中检查 signal,命中取消即抛 AbortedError;本层 dispatcher
92
+ * catch 识别后按用户取消终止(aborted=true、不重试、不视为缺陷),与循环其他环节的
93
+ * 取消语义一致(取消不喂回)
94
94
  */
95
95
  export type ToolDispatcher = (calls: DispatchToolCall[], signal?: AbortSignalLike) => Promise<DispatchResult[]>;
96
96
  /** runAgent 依赖注入(S7.6 组装) */
97
97
  export interface RunAgentDeps {
98
98
  /**
99
- * 模型调用(S7.6 注入:闭包持有 apiKey/model/tools,内部调用 llm chatStream)。
100
- * **契约**:必须把 onEvent 转发给 chatStream 的 onEvent——runAgent 依赖它累积文本与
101
- * 收集工具调用(失败轮的重试会自动丢弃旧累积,无需调用方处理);失败按 chatStream
102
- * 契约 resolve 出 { ok:false, ... },不 throw。
103
- * signal 由 runAgent 注入 attempt 级独立控制器(超时 abort 与用户取消分离,决策 15)。
104
- */
99
+ * 模型调用(S7.6 注入:闭包持有 apiKey/model/tools,内部调用 llm chatStream)。
100
+ * ****:必须把 onEvent 转发给 chatStream 的 onEvent——runAgent 依赖它累积文本与
101
+ * 收集工具调用(失败轮的重试会自动丢弃旧累积,无需调用方处理);失败按 chatStream
102
+ * resolve 出 { ok:false, ... },不 throw。
103
+ * signal 由 runAgent 注入 attempt 级独立控制器(超时 abort 与用户取消分离)。
104
+ */
105
105
  produce: (messages: LLMMessage[], signal: AbortSignalLike, onEvent?: (event: LLMStreamEvent) => void) => Promise<ChatStreamResult>;
106
106
  /** 工具调度(S7.4 真实现) */
107
107
  dispatcher: ToolDispatcher;
108
108
  /**
109
- * 事件输出(S7.6 转 SSE 帧;缺省丢弃)。
110
- * **硬契约(ora S7.3 审核 S3)**:回调抛错不逃逸——run 侧统一兜底吞掉(防 runAgent
111
- * 直接 reject 导致 SSE 异常关流而非 error 事件);S7.6 不得依赖异常传播通知故障。
112
- */
109
+ * 事件输出(S7.6 转 SSE 帧;缺省丢弃)。
110
+ * **硬(ora S7.3 审核 S3)**:回调抛错不逃逸——run 侧统一兜底吞掉(防 runAgent
111
+ * 直接 reject 导致 SSE 异常关流而非 error 事件);S7.6 不得依赖异常传播通知故障。
112
+ */
113
113
  onEvent?: (event: AgentEvent) => void;
114
114
  /**
115
- * 每轮新消息序列(S7.6 持久化到 chat_messages;本层不落库)。
116
- * **硬契约同上**:抛错不逃逸(落库失败由 S7.6 自行处理,不中断 agent 循环)。
117
- */
115
+ * 每轮新消息序列(S7.6 持久化到 chat_messages;本层不落库)。
116
+ * **硬同上**:抛错不逃逸(落库失败由 S7.6 自行处理,不中断 agent 循环)。
117
+ */
118
118
  onMessages?: (messages: SessionMessage[]) => void;
119
119
  }
120
120
  export interface RunAgentInput {
@@ -124,56 +124,56 @@ export interface RunAgentInput {
124
124
  userMessage: string;
125
125
  /** 初始会话(S7.6 经 loadHistory/trimSession 加载的历史;不含本轮 userMessage) */
126
126
  session: SessionState;
127
- /** 聚焦上下文文本(决策 6 聚焦层;S7.6 查询实体/大纲节点后拼好传入) */
127
+ /** 聚焦上下文文本( 聚焦层;S7.6 查询实体/大纲节点后拼好传入) */
128
128
  focus?: string;
129
- /** 项目提示词(决策 7 项目层) */
129
+ /** 项目提示词( 项目层) */
130
130
  projectPrompt?: string;
131
- /** 临时指令(决策 7 临时层) */
131
+ /** 临时指令( 临时层) */
132
132
  instruction?: string;
133
133
  deps: RunAgentDeps;
134
- /** 用户取消信号(决策 16:全链路第 0 层;abort 永不重试) */
134
+ /** 用户取消信号(全链路第 0 层;abort 永不重试) */
135
135
  signal?: AbortSignalLike;
136
136
  /** 分层上下文预算覆盖(S7.2) */
137
137
  budgets?: Partial<ContextBudgets>;
138
138
  /** 工具清单(默认 registry listTools;S7.2 注入 system 消息) */
139
139
  tools?: ToolListEntry[];
140
- /** 轮次上限(决策 15:默认 8;测试可覆盖) */
140
+ /** 轮次上限(默认 8;测试可覆盖) */
141
141
  maxRounds?: number;
142
- /** 单轮总预算 ms(决策 15:默认 120s 含重试退避;测试可覆盖) */
142
+ /** 单轮总预算 ms(默认 120s 含重试退避;测试可覆盖) */
143
143
  roundTimeoutMs?: number;
144
- /** 单次 attempt 超时 ms(决策 15:默认 60s——LLM 单次调用独立超时,与轮次总预算分离;测试可覆盖) */
144
+ /** 单次 attempt 超时 ms(默认 60s——LLM 单次调用独立超时,与轮次总预算分离;测试可覆盖) */
145
145
  attemptTimeoutMs?: number;
146
- /** 上下文 token 预算(决策 15:默认 60K;测试可覆盖) */
146
+ /** 上下文 token 预算(默认 60K;测试可覆盖) */
147
147
  tokenBudget?: number;
148
- /** 每次模型调用最大重试次数(决策 15:默认 3;测试可覆盖) */
148
+ /** 每次模型调用最大重试次数(默认 3;测试可覆盖) */
149
149
  maxRetries?: number;
150
- /** 重试退避基数 ms(决策 15:默认 2000;测试可覆盖) */
150
+ /** 重试退避基数 ms(默认 2000;测试可覆盖) */
151
151
  retryBaseDelayMs?: number;
152
152
  }
153
153
  export interface RunAgentResult {
154
154
  ok: boolean;
155
- /** 用户取消(决策 16:abort 不重试,立即终止) */
155
+ /** 用户取消(abort 不重试,立即终止) */
156
156
  aborted: boolean;
157
157
  /** 终止原因(ok=false 时;code 为 AGENT_MAX_ITERATIONS / AGENT_TIMEOUT / AGENT_TOKEN_BUDGET
158
- * 或模型错误码 / 调度器缺陷码) */
158
+ * 或模型错误码 / 调度器缺陷码) */
159
159
  error: LLMError | null;
160
160
  /** 实际执行轮数(≤ maxRounds) */
161
161
  rounds: number;
162
162
  /**
163
- * 重试累计(决策 15:重试与轮次分开计量、不互相消耗;ora S7.3 审核 S6 断言口径——
164
- * 报告值不清零,为全程累计:最后一次成功轮前重试过几次即为其值;「成功即清零」的预算
165
- * 语义由 withRetry maxRetries 独立限制 + roundDeadline 兜底承担,无跨轮累计消耗问题)
166
- */
163
+ * 重试累计(重试与轮次分开计量、不互相消耗;ora S7.3 审核 S6 断言口径——
164
+ * 报告值不清零,为全程累计:最后一次成功轮前重试过几次即为其值;「成功即清零」的预算
165
+ * 语义由 withRetry maxRetries 独立限制 + roundDeadline 兜底承担,无跨轮累计消耗问题)
166
+ */
167
167
  retries: number;
168
168
  }
169
169
  /**
170
170
  * runAgent:对话主循环(S7.3)。每轮:buildContext(含 lastUsage 回写链)→ LLM 调用
171
171
  * (withRetry + classifyRunOutcome + attempt 独立超时)→ 文本实时转发 → 成功收尾:
172
- * - 无 tool_call → done 事件终止
173
- * - stopReason=length → 全部 tool_call 标错喂回(不执行,决策 15)
174
- * - 有合法 tool_call → dispatcher 执行 → tool_result 事件(按 id 回填)→ proposal 事件
175
- * (在 tool_result 后、循环继续前)→ 结果回填会话 → 下一轮
176
- * 三重保险(决策 15):8 轮上限 / 120s 单轮总预算(含重试退避**与工具执行**——调度前与
172
+ * - 无 tool_call → done 事件终止
173
+ * - stopReason=length → 全部 tool_call 标错喂回(不执行)
174
+ * - 有合法 tool_call → dispatcher 执行 → tool_result 事件(按 id 回填)→ proposal 事件
175
+ * (在 tool_result 后、循环继续前)→ 结果回填会话 → 下一轮
176
+ * 三重保险:8 轮上限 / 120s 单轮总预算(含重试退避**与工具执行**——调度前与
177
177
  * dispatcher 返回后均校验 deadline)/ token 预算,各自发 error 事件终止。工具失败(isError)
178
178
  * 结构化回填不终止(喂回自纠);模型失败按重试策略退避重试,重试与轮次分开计量(报告值
179
179
  * 累计不清零,见 result.retries 注释);abort 双形态归一后循环只处理 resolve 形态。
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -1,49 +1,33 @@
1
1
  // @whispering233/ai-editor-agent 主循环(S7.3)
2
2
  //
3
- // 契约来源:
4
- // - doc/design/tasks.md S7.3(三重保险:8 轮 / 120s 单轮 / token 预算;length 截断不执行
5
- // 任何 tool_call 全部标错重发;重试与轮次分开计量(报告值累计不清零,ora S7.3 审核
6
- // S6 口径——决策 15「成功即清零」为预算语义,由 withRetry maxRetries + deadline 兜底);
7
- // 120s 含重试退避与工具执行(调度前/后均校验,ora S7.3 审核 M2);
8
- // 超时信号与用户取消分离;abort 双形态归一)
9
- // - doc/design/decisions.md 决策 15(循环终止与失败处理全量)、决策 16(取消信号四层穿透——
10
- // 本层是第 0 层循环层,fetch / 读循环 / 工具执行 / 重试 sleep 已由 llm/tools 承担)、
11
- // 决策 18(半条 assistant 不喂回——失败轮重试复用原 payload)
12
- // - doc/api/endpoints.md POST /api/v1/chat 事件契约(六类事件:tool_call / tool_result /
13
- // proposal / text / done / error;proposal 在对应 tool_result 之后、循环继续之前发送;
14
- // error 后流立即关闭;done 携带 session_id)——AgentEvent 与其对齐,S7.6 路由层转 SSE 帧
15
- // - S7.2 context.ts(buildContext + meta.effectiveLastUsage 回写契约:历史段真实用量 =
16
- // usage.prompt_tokens - (system + toolList + focus 估算),下轮按换算公式重新计算传入)
17
- // - packages/llm/src/{client,retry}.ts(chatStream 结果形态 / withRetry / classifyLLMError /
18
- // ABORT_ERROR——abort 双形态归一 helper 见本文件)
19
3
  //
20
4
  // 架构边界:本包**不依赖 db**——消息持久化由 S7.6 server 层负责(onMessages 回调输出每轮
21
5
  // 新消息序列,本文件只定义接口不落库);工具执行 / 批量校验 / 提案仓在 S7.4(本文件只定义
22
- // ToolDispatcher 接口与消费契约,测试用 mock,S7.4 提供真实现)。
6
+ // ToolDispatcher 接口与消费,测试用 mock,S7.4 提供真实现)。
23
7
  import { ERROR_CODES } from "@whispering233/ai-editor-shared/schemas";
24
8
  import { ABORT_ERROR, classifyLLMError, DEFAULT_BASE_DELAY_MS, DEFAULT_MAX_RETRIES, LLM_TRANSPORT_ERROR_CODES, withRetry, } from "@whispering233/ai-editor-llm";
25
9
  import { AbortedError } from "@whispering233/ai-editor-tools";
26
10
  import { buildContext, } from "./context.js";
27
11
  import { appendMessage, retryPayload } from "./session.js";
28
- // ============ 三重保险默认值(决策 15) ============
29
- /** 轮次上限(决策 15:8 轮;持续 tool_call 死循环兜底) */
12
+ // ============ 三重保险默认值 ============
13
+ /** 轮次上限(8 轮;持续 tool_call 死循环兜底) */
30
14
  export const DEFAULT_MAX_ROUNDS = 8;
31
- /** 单轮总预算 ms(决策 15:120s,含 LLM 重试退避与工具执行;测试可覆盖) */
15
+ /** 单轮总预算 ms120s,含 LLM 重试退避与工具执行;测试可覆盖) */
32
16
  export const DEFAULT_ROUND_TIMEOUT_MS = 120_000;
33
17
  /**
34
- * 单次 attempt 超时 ms(决策 15:「LLM 单次 attempt 另有自身 fetch 超时」落地——
18
+ * 单次 attempt 超时 ms(「LLM 单次 attempt 另有自身 fetch 超时」落地——
35
19
  * 独立于 120s 单轮总预算;attempt 超时映射为可重试错误,轮内重试仍受 roundDeadline 兜底)。
36
20
  */
37
21
  export const DEFAULT_ATTEMPT_TIMEOUT_MS = 60_000;
38
- /** 上下文 token 预算(决策 15:60K——DeepSeek 64K 窗口留余量;测试可覆盖) */
22
+ /** 上下文 token 预算(60K——DeepSeek 64K 窗口留余量;测试可覆盖) */
39
23
  export const DEFAULT_TOKEN_BUDGET = 60_000;
40
24
  // ============ 内部辅助 ============
41
- /** attempt 超时合成错误(决策 15:超时映射为**可重试**类,与用户取消分离——勿把 AbortSignal.timeout 直挂用户取消链路) */
25
+ /** attempt 超时合成错误(超时映射为**可重试**类,与用户取消分离——勿把 AbortSignal.timeout 直挂用户取消链路) */
42
26
  const ATTEMPT_TIMEOUT_CODE = "ATTEMPT_TIMEOUT";
43
27
  const ATTEMPT_TIMEOUT_ERROR = {
44
28
  status: 0,
45
29
  code: ATTEMPT_TIMEOUT_CODE,
46
- message: "单次模型调用超时(轮次预算内可重试,决策 15)",
30
+ message: "单次模型调用超时(轮次预算内可重试,)",
47
31
  };
48
32
  const ATTEMPT_TIMEOUT_RESULT = {
49
33
  ok: false,
@@ -51,7 +35,7 @@ const ATTEMPT_TIMEOUT_RESULT = {
51
35
  error: ATTEMPT_TIMEOUT_ERROR,
52
36
  };
53
37
  /** length 截断兜底说明(LLMToolCallResult.error 缺失时——finalizeToolCalls 正常必已标记) */
54
- const LENGTH_TRUNCATION_NOTICE = "finish_reason=length:参数可能不完整,不执行(决策 15)";
38
+ const LENGTH_TRUNCATION_NOTICE = "finish_reason=length:参数可能不完整,不执行()";
55
39
  /**
56
40
  * 终止类错误码取值(ErrorCode 单一来源;shared barrel 仅类型导出,运行时常量走 schemas 子路径——
57
41
  * 与 tools 包同款导入策略)。
@@ -95,8 +79,8 @@ function isAttemptTimeoutError(err) {
95
79
  err.code === ATTEMPT_TIMEOUT_CODE);
96
80
  }
97
81
  /**
98
- * 主循环重试分类:可重试 = llm 传输类(429/5xx/网络断开/流截断,决策 15)∪ attempt 超时;
99
- * abort(ABORTED 码)由 classifyLLMError 判为不可重试(决策 16:取消不重试)。
82
+ * 主循环重试分类:可重试 = llm 传输类(429/5xx/网络断开/流截断)∪ attempt 超时;
83
+ * abort(ABORTED 码)由 classifyLLMError 判为不可重试(取消不重试)。
100
84
  */
101
85
  function classifyRunOutcome(outcome) {
102
86
  if (outcome.type === "error")
@@ -109,10 +93,10 @@ function classifyRunOutcome(outcome) {
109
93
  * abort 双形态归一(ora S6.2 审核 2026-08):
110
94
  * chatStream 流中返回 { ok:false, aborted }(resolve 形态)vs withRetry 尝试前/退避 sleep
111
95
  * 抛 ABORT_ERROR(throw 形态)——此处统一为 resolve 形态 { ok:false, aborted, error },
112
- * 主循环只处理一种形态。同时实现「超时信号与用户取消分离」(决策 15/16):
96
+ * 主循环只处理一种形态。同时实现「超时信号与用户取消分离」:
113
97
  * attempt 超时(timedOut=true 且非用户取消)→ 归一为**可重试** ATTEMPT_TIMEOUT;
114
98
  * 用户取消 → aborted 原样(不重试)。
115
- * 非 abort 异常照原样抛出(防御路径——chatStream 契约本不 throw,交 withRetry 分类)。
99
+ * 非 abort 异常照原样抛出(防御路径——chatStream 本不 throw,交 withRetry 分类)。
116
100
  */
117
101
  function normalizeAttemptError(err, timedOut, userAborted) {
118
102
  if (isAbortError(err)) {
@@ -136,15 +120,15 @@ function normalizeAttemptResult(result, timedOut, userAborted) {
136
120
  return result;
137
121
  }
138
122
  /**
139
- * S7.2 回写契约:历史段真实用量换算(口径统一,ora S7.3 审核 S1——三处注释等价表述,
123
+ * S7.2 回写历史段真实用量换算(口径统一,ora S7.3 审核 S1——三处注释等价表述,
140
124
  * 见 context.ts BuildContextInput.lastUsage 与 llm/token.ts EstimateMessagesTokensOptions.lastUsage):
141
125
  * - 以 usage.prompt_tokens 为起点:减 system + toolList + focus 估算(completion 属输出、
142
- * 不占 prompt_tokens,无需扣除)
126
+ * 不占 prompt_tokens,无需扣除)
143
127
  * - 以 usage.total_tokens 为起点:再减 completion_tokens(total = prompt + completion,
144
- * 两式等价:total - (system+toolList+focus+completion) = prompt - (system+toolList+focus))
128
+ * 两式等价:total - (system+toolList+focus+completion) = prompt - (system+toolList+focus))
145
129
  * 下一轮 buildContext 以该值作 lastUsage(estimateMessagesTokens 基线);上下文触发裁剪后
146
130
  * buildContext 会重置基线(meta.effectiveLastUsage=null),下轮从此处按最新 usage 重新换算——
147
- * 决策 6 防预算漂移。
131
+ * 防预算漂移。
148
132
  */
149
133
  function toHistoryBaseline(usage, tokens) {
150
134
  if (usage === null)
@@ -152,7 +136,7 @@ function toHistoryBaseline(usage, tokens) {
152
136
  const historyTokens = Math.max(0, usage.prompt_tokens - tokens.system - tokens.toolList - tokens.focus);
153
137
  return { prompt_tokens: historyTokens, completion_tokens: 0, total_tokens: historyTokens };
154
138
  }
155
- /** LLMToolCallResult(解析后形态)→ wire 请求形态(assistant.tool_calls 回填原始 arguments 串——决策 18 配对依赖 id) */
139
+ /** LLMToolCallResult(解析后形态)→ wire 请求形态(assistant.tool_calls 回填原始 arguments 串—— 配对依赖 id) */
156
140
  function toWireToolCalls(calls) {
157
141
  return calls.map((c) => ({
158
142
  id: c.id,
@@ -164,11 +148,11 @@ function toWireToolCalls(calls) {
164
148
  /**
165
149
  * runAgent:对话主循环(S7.3)。每轮:buildContext(含 lastUsage 回写链)→ LLM 调用
166
150
  * (withRetry + classifyRunOutcome + attempt 独立超时)→ 文本实时转发 → 成功收尾:
167
- * - 无 tool_call → done 事件终止
168
- * - stopReason=length → 全部 tool_call 标错喂回(不执行,决策 15)
169
- * - 有合法 tool_call → dispatcher 执行 → tool_result 事件(按 id 回填)→ proposal 事件
170
- * (在 tool_result 后、循环继续前)→ 结果回填会话 → 下一轮
171
- * 三重保险(决策 15):8 轮上限 / 120s 单轮总预算(含重试退避**与工具执行**——调度前与
151
+ * - 无 tool_call → done 事件终止
152
+ * - stopReason=length → 全部 tool_call 标错喂回(不执行)
153
+ * - 有合法 tool_call → dispatcher 执行 → tool_result 事件(按 id 回填)→ proposal 事件
154
+ * (在 tool_result 后、循环继续前)→ 结果回填会话 → 下一轮
155
+ * 三重保险:8 轮上限 / 120s 单轮总预算(含重试退避**与工具执行**——调度前与
172
156
  * dispatcher 返回后均校验 deadline)/ token 预算,各自发 error 事件终止。工具失败(isError)
173
157
  * 结构化回填不终止(喂回自纠);模型失败按重试策略退避重试,重试与轮次分开计量(报告值
174
158
  * 累计不清零,见 result.retries 注释);abort 双形态归一后循环只处理 resolve 形态。
@@ -196,8 +180,8 @@ export async function runAgent(input) {
196
180
  // 用户消息入会话(S7.6 传入的 session 不应已含本轮消息——由本层追加,避免双写)
197
181
  let session = appendMessage(input.session, { role: "user", content: userMessage });
198
182
  let rounds = 0;
199
- let retries = 0; // 重试累计(决策 15:重试与轮次分开计量、不互相消耗;报告值不清零——见下方说明)
200
- let lastUsage = null; // 历史段基线(S7.2 回写契约换算)
183
+ let retries = 0; // 重试累计(重试与轮次分开计量、不互相消耗;报告值不清零——见下方说明)
184
+ let lastUsage = null; // 历史段基线(S7.2 回写换算)
201
185
  while (rounds < maxRounds) {
202
186
  rounds += 1;
203
187
  emit({ type: "turn_start", round: rounds });
@@ -211,18 +195,18 @@ export async function runAgent(input) {
211
195
  budgets,
212
196
  tools,
213
197
  });
214
- // ---- 2. 取消检查(决策 16 优先于预算:已取消且并发超限时先 aborted 终止,不发 token error) ----
198
+ // ---- 2. 取消检查( 优先于预算:已取消且并发超限时先 aborted 终止,不发 token error) ----
215
199
  if (signal?.aborted) {
216
200
  emit({ type: "error", code: ABORT_ERROR.code ?? "ABORTED", message: ABORT_ERROR.message, aborted: true });
217
201
  return { ok: false, aborted: true, error: ABORT_ERROR, rounds, retries };
218
202
  }
219
- // ---- 3. token 预算(三重保险之三;决策 15:超限发 error 终止) ----
203
+ // ---- 3. token 预算(三重保险之三;超限发 error 终止) ----
220
204
  if (ctx.tokens.total > tokenBudget) {
221
- const message = `上下文 token 估算 ${ctx.tokens.total} 超出预算 ${tokenBudget}(决策 15)`;
205
+ const message = `上下文 token 估算 ${ctx.tokens.total} 超出预算 ${tokenBudget}()`;
222
206
  emit({ type: "error", code: CODE_TOKEN_BUDGET, message, aborted: false });
223
207
  return { ok: false, aborted: false, error: { status: 0, code: CODE_TOKEN_BUDGET, message }, rounds, retries };
224
208
  }
225
- // ---- 4. 单轮 deadline(三重保险之二:120s 含重试退避与工具执行,决策 15) ----
209
+ // ---- 4. 单轮 deadline(三重保险之二:120s 含重试退避与工具执行) ----
226
210
  const roundDeadline = Date.now() + roundTimeoutMs;
227
211
  // ---- 5. 模型调用:withRetry + attempt 独立超时控制器 + abort 双形态归一 ----
228
212
  // 本轮文本/工具调用累积(attempt 级变量——重试自动丢弃失败轮累积,半条 assistant 不重发)
@@ -234,9 +218,9 @@ export async function runAgent(input) {
234
218
  return ATTEMPT_TIMEOUT_RESULT; // 轮次预算耗尽(含退避):不再发起请求
235
219
  attemptText = "";
236
220
  attemptCalls = [];
237
- // 独立 AbortController:超时 abort 与用户取消分离(决策 15)——勿把 AbortSignal.timeout
221
+ // 独立 AbortController:超时 abort 与用户取消分离——勿把 AbortSignal.timeout
238
222
  // 直挂用户取消链路(会把超时误判为取消、吞掉可重试机会)。
239
- // attempt 超时 = min(剩余轮次预算, attemptTimeoutMs):单次调用有自身超时(决策 15
223
+ // attempt 超时 = min(剩余轮次预算, attemptTimeoutMs):单次调用有自身超时(
240
224
  // 「LLM 单次 attempt 另有自身 fetch 超时」),轮内重试仍受 roundDeadline 兜底
241
225
  const controller = createAbortController();
242
226
  let timedOut = false;
@@ -247,7 +231,7 @@ export async function runAgent(input) {
247
231
  const onUserAbort = () => controller.abort();
248
232
  signal?.addEventListener("abort", onUserAbort, { once: true });
249
233
  try {
250
- // 决策 18:失败轮重试复用原 payload(半条 assistant 绝不追加)
234
+ // 失败轮重试复用原 payload(半条 assistant 绝不追加)
251
235
  const payload = retryPayload(ctx.messages);
252
236
  const result = await deps.produce(payload, controller.signal, (event) => {
253
237
  if (event.type === "text") {
@@ -278,11 +262,11 @@ export async function runAgent(input) {
278
262
  try {
279
263
  result = await withRetry(attempt, {
280
264
  isRetryable,
281
- signal, // 决策 16:用户取消不重试;退避 sleep 即时中断(llm/retry.ts 承担)
265
+ signal, // 用户取消不重试;退避 sleep 即时中断(llm/retry.ts 承担)
282
266
  maxRetries,
283
267
  baseDelayMs: retryBaseDelayMs,
284
268
  onRetry: () => {
285
- retries += 1; // 重试与轮次分开计量(决策 15)
269
+ retries += 1; // 重试与轮次分开计量
286
270
  },
287
271
  });
288
272
  }
@@ -292,21 +276,21 @@ export async function runAgent(input) {
292
276
  emit({ type: "error", code: ABORT_ERROR.code ?? "ABORTED", message: ABORT_ERROR.message, aborted: true });
293
277
  return { ok: false, aborted: true, error: ABORT_ERROR, rounds, retries };
294
278
  }
295
- // 防御路径:未知异常(chatStream 契约不 throw,理论不可达)
279
+ // 防御路径:未知异常(chatStream throw,理论不可达)
296
280
  const error = { status: 0, code: CODE_INTERNAL, message: err instanceof Error ? err.message : String(err) };
297
281
  emit({ type: "error", code: CODE_INTERNAL, message: error.message, aborted: false });
298
282
  return { ok: false, aborted: false, error, rounds, retries };
299
283
  }
300
- // ---- 5. 模型调用最终失败 → error 事件终止(决策 15:最终失败以 error 呈现,不静默) ----
284
+ // ---- 5. 模型调用最终失败 → error 事件终止(最终失败以 error 呈现,不静默) ----
301
285
  if (!result.ok) {
302
- // attempt 超时耗尽重试后终止:错误码映射为 ErrorCode 的 AGENT_TIMEOUT(SSE 事件契约)
286
+ // attempt 超时耗尽重试后终止:错误码映射为 ErrorCode 的 AGENT_TIMEOUT(SSE 事件)
303
287
  const code = isAttemptTimeoutError(result.error) ? CODE_TIMEOUT : (result.error.code ?? "MODEL_ERROR");
304
288
  const error = { ...result.error, code };
305
289
  emit({ type: "error", code, message: error.message, aborted: result.aborted });
306
290
  return { ok: false, aborted: result.aborted, error, rounds, retries };
307
291
  }
308
- // ---- 6. 成功:历史段基线换算(S7.2 回写契约)。
309
- // 注:retries 报告值**不清零**(ora S7.3 审核 S6 断言口径)——决策 15「成功即清零」
292
+ // ---- 6. 成功:历史段基线换算(S7.2 回写)。
293
+ // 注:retries 报告值**不清零**(ora S7.3 审核 S6 断言口径)——「成功即清零」
310
294
  // 针对的是预算计数语义(防跨轮累计吃满 8 轮预算),本实现每轮重试由 withRetry 的
311
295
  // maxRetries 独立限制、轮次预算由 roundDeadline 兜底,不存在跨轮累计消耗预算的问题,
312
296
  // 报告值取全程累计便于诊断(retries=1 即「本轮成功前重试过 1 次」) ----
@@ -316,7 +300,7 @@ export async function runAgent(input) {
316
300
  const assistantMsg = calls.length > 0
317
301
  ? { role: "assistant", content: assistantContent, tool_calls: toWireToolCalls(calls) }
318
302
  : { role: "assistant", content: assistantContent };
319
- // ---- 7. 无工具调用 → done 终止(endpoints.md:done 携带 session_id) ----
303
+ // ---- 7. 无工具调用 → done 终止(:done 携带 session_id) ----
320
304
  if (calls.length === 0) {
321
305
  session = appendMessage(session, assistantMsg);
322
306
  emitMessages([assistantMsg]);
@@ -327,14 +311,14 @@ export async function runAgent(input) {
327
311
  for (const c of calls) {
328
312
  emit({ type: "tool_call", tool: c.name, args: c.arguments ?? null, id: c.id });
329
313
  }
330
- // ---- 9. 调度前检查轮次预算(ora S7.3 审核 M2:决策 15「单轮总预算含工具执行」——
314
+ // ---- 9. 调度前检查轮次预算(ora S7.3 审核 M2:「单轮总预算含工具执行」——
331
315
  // attempt 成功后若预算已耗尽,直接 AGENT_TIMEOUT 终止、不再调度工具) ----
332
316
  if (roundDeadline - Date.now() <= 0) {
333
- const message = `单轮预算耗尽(${roundTimeoutMs}ms 含工具执行,决策 15)`;
317
+ const message = `单轮预算耗尽(${roundTimeoutMs}ms 含工具执行,)`;
334
318
  emit({ type: "error", code: CODE_TIMEOUT, message, aborted: false });
335
319
  return { ok: false, aborted: false, error: { status: 0, code: CODE_TIMEOUT, message }, rounds, retries };
336
320
  }
337
- // ---- 10. 调度:length 截断(决策 15)与参数解析失败/缺 id 的调用一律不执行、标错喂回 ----
321
+ // ---- 10. 调度:length 截断与参数解析失败/缺 id 的调用一律不执行、标错喂回 ----
338
322
  const truncated = result.stopReason === "length";
339
323
  const results = new Array(calls.length);
340
324
  const toDispatch = [];
@@ -358,13 +342,13 @@ export async function runAgent(input) {
358
342
  if (toDispatch.length > 0) {
359
343
  let dispatched;
360
344
  try {
361
- dispatched = await deps.dispatcher(toDispatch, signal); // 决策 16 ③:工具执行中检查取消(S7.4 承担)
345
+ dispatched = await deps.dispatcher(toDispatch, signal); // 工具执行中检查取消(S7.4 承担)
362
346
  }
363
347
  catch (err) {
364
- // 取消语义传播(决策 16 ③ + S7.4 约定):executor 在工具执行中检查 signal,
348
+ // 取消语义传播( + S7.4 约定):executor 在工具执行中检查 signal,
365
349
  // 命中取消抛 AbortedError(tools analysis/utils)——此处识别并按**用户取消**终止
366
350
  // (aborted=true、不重试、不喂回),不得落入调度器缺陷分支(否则取消会被误报为
367
- // AGENT_DISPATCH_ERROR 且 aborted=false,与决策 16「取消不重试」语义冲突)
351
+ // AGENT_DISPATCH_ERROR 且 aborted=false,与「取消不重试」语义冲突)
368
352
  const cancelled = signal?.aborted === true || err instanceof AbortedError;
369
353
  if (cancelled) {
370
354
  emit({ type: "error", code: ABORT_ERROR.code ?? "ABORTED", message: ABORT_ERROR.message, aborted: true });
@@ -381,7 +365,7 @@ export async function runAgent(input) {
381
365
  retries,
382
366
  };
383
367
  }
384
- // 契约:同序等长(防御——错位回填破坏 tool_call ↔ tool_result 配对,决策 18)
368
+ // 同序等长(防御——错位回填破坏 tool_call ↔ tool_result 配对)
385
369
  if (dispatched.length !== toDispatch.length) {
386
370
  const message = `工具调度结果条数不符:期望 ${toDispatch.length},实际 ${dispatched.length}`;
387
371
  emit({ type: "error", code: CODE_DISPATCH, message, aborted: false });
@@ -393,7 +377,7 @@ export async function runAgent(input) {
393
377
  retries,
394
378
  };
395
379
  }
396
- // 契约:id 交叉校验(ora S7.3 审核 S5——条数虽等但结果 id 与输入错位同样破坏配对)
380
+ // id 交叉校验(ora S7.3 审核 S5——条数虽等但结果 id 与输入错位同样破坏配对)
397
381
  for (let k = 0; k < dispatched.length; k++) {
398
382
  if (dispatched[k].id !== toDispatch[k].id) {
399
383
  const message = `工具调度结果 id 错位:期望 ${toDispatch[k].id},实际 ${dispatched[k].id}`;
@@ -414,11 +398,11 @@ export async function runAgent(input) {
414
398
  // 调度后检查轮次预算(ora S7.3 审核 M2:工具执行可能耗时——执行中的工具无法中止
415
399
  // (仅用户取消可中断),超出的后果 = 终止,即满足「120s 含工具执行」的预算语义)
416
400
  if (roundDeadline - Date.now() <= 0) {
417
- const message = `单轮预算耗尽(${roundTimeoutMs}ms 含工具执行,决策 15)`;
401
+ const message = `单轮预算耗尽(${roundTimeoutMs}ms 含工具执行,)`;
418
402
  emit({ type: "error", code: CODE_TIMEOUT, message, aborted: false });
419
403
  return { ok: false, aborted: false, error: { status: 0, code: CODE_TIMEOUT, message }, rounds, retries };
420
404
  }
421
- // 调度后检查取消(决策 16:工具执行期间可能被取消——S7.4 执行中检查外的最后兜底)
405
+ // 调度后检查取消(工具执行期间可能被取消——S7.4 执行中检查外的最后兜底)
422
406
  if (signal?.aborted) {
423
407
  emit({ type: "error", code: ABORT_ERROR.code ?? "ABORTED", message: ABORT_ERROR.message, aborted: true });
424
408
  return { ok: false, aborted: true, error: ABORT_ERROR, rounds, retries };
@@ -429,7 +413,7 @@ export async function runAgent(input) {
429
413
  toolMsgs.push({ role: "tool", content: r.content, tool_call_id: r.id });
430
414
  emit({ type: "tool_result", tool: r.tool, result: r.content, id: r.id });
431
415
  if (r.proposal !== undefined) {
432
- emit({ type: "proposal", proposal: r.proposal }); // endpoints.md:proposal 在 tool_result 后、循环继续前
416
+ emit({ type: "proposal", proposal: r.proposal }); // :proposal 在 tool_result 后、循环继续前
433
417
  }
434
418
  }
435
419
  session = appendMessage(session, assistantMsg);
@@ -438,8 +422,8 @@ export async function runAgent(input) {
438
422
  emitMessages([assistantMsg, ...toolMsgs]);
439
423
  // 循环继续:下一轮模型看到工具结果后自纠或收尾
440
424
  }
441
- // ---- 11. 8 轮上限(三重保险之一;决策 15:持续 tool_call 死循环兜底) ----
442
- const message = `达到最大轮数上限 ${maxRounds}(决策 15)`;
425
+ // ---- 11. 8 轮上限(三重保险之一;持续 tool_call 死循环兜底) ----
426
+ const message = `达到最大轮数上限 ${maxRounds}()`;
443
427
  emit({ type: "error", code: CODE_MAX_ITERATIONS, message, aborted: false });
444
428
  return { ok: false, aborted: false, error: { status: 0, code: CODE_MAX_ITERATIONS, message }, rounds, retries };
445
429
  }
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}