@downcity/agent 1.1.79 → 1.1.81

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 (173) hide show
  1. package/README.md +1 -1
  2. package/bin/agent/local/Agent.d.ts +8 -121
  3. package/bin/agent/local/Agent.d.ts.map +1 -1
  4. package/bin/agent/local/Agent.js +63 -381
  5. package/bin/agent/local/Agent.js.map +1 -1
  6. package/bin/agent/local/AgentRuntimeFactory.d.ts +2 -2
  7. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -1
  8. package/bin/agent/local/AgentRuntimeFactory.js +2 -23
  9. package/bin/agent/local/AgentRuntimeFactory.js.map +1 -1
  10. package/bin/agent/local/services/AgentAssemblyService.d.ts +112 -0
  11. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -0
  12. package/bin/agent/local/services/AgentAssemblyService.js +135 -0
  13. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -0
  14. package/bin/agent/local/services/AgentLifecycleService.d.ts +59 -0
  15. package/bin/agent/local/services/AgentLifecycleService.d.ts.map +1 -0
  16. package/bin/agent/local/services/AgentLifecycleService.js +136 -0
  17. package/bin/agent/local/services/AgentLifecycleService.js.map +1 -0
  18. package/bin/agent/local/services/AgentSessionManager.d.ts +106 -0
  19. package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -0
  20. package/bin/agent/local/services/AgentSessionManager.js +182 -0
  21. package/bin/agent/local/services/AgentSessionManager.js.map +1 -0
  22. package/bin/executor/Executor.d.ts +7 -24
  23. package/bin/executor/Executor.d.ts.map +1 -1
  24. package/bin/executor/Executor.js +73 -361
  25. package/bin/executor/Executor.js.map +1 -1
  26. package/bin/executor/SessionRunScope.d.ts +18 -34
  27. package/bin/executor/SessionRunScope.d.ts.map +1 -1
  28. package/bin/executor/SessionRunScope.js +42 -28
  29. package/bin/executor/SessionRunScope.js.map +1 -1
  30. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +5 -3
  31. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +1 -1
  32. package/bin/executor/composer/context/LocalSessionContextComposer.js +11 -18
  33. package/bin/executor/composer/context/LocalSessionContextComposer.js.map +1 -1
  34. package/bin/executor/composer/context/SessionContextComposer.d.ts +8 -3
  35. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +1 -1
  36. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -1
  37. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  38. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +2 -1
  39. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  40. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +2 -4
  41. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +1 -1
  42. package/bin/executor/core-engine/CoreEngineRunner.d.ts +62 -0
  43. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -0
  44. package/bin/executor/core-engine/CoreEngineRunner.js +309 -0
  45. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -0
  46. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +5 -0
  47. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  48. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +2 -4
  49. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  50. package/bin/executor/services/ExecutorInflightService.d.ts +39 -0
  51. package/bin/executor/services/ExecutorInflightService.d.ts.map +1 -0
  52. package/bin/executor/services/ExecutorInflightService.js +75 -0
  53. package/bin/executor/services/ExecutorInflightService.js.map +1 -0
  54. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +103 -0
  55. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -0
  56. package/bin/executor/services/ExecutorRecoveryPolicy.js +87 -0
  57. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -0
  58. package/bin/executor/tools/plugin/PluginToolBridge.d.ts +19 -0
  59. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -0
  60. package/bin/executor/tools/plugin/PluginToolBridge.js +143 -0
  61. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -0
  62. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +32 -0
  63. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -0
  64. package/bin/executor/tools/plugin/PluginToolDefinition.js +27 -0
  65. package/bin/executor/tools/plugin/PluginToolDefinition.js.map +1 -0
  66. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts +14 -0
  67. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +1 -0
  68. package/bin/executor/tools/plugin/PluginToolSchemas.js +19 -0
  69. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +1 -0
  70. package/bin/executor/tools/plugin/types/PluginTool.d.ts +39 -0
  71. package/bin/executor/tools/plugin/types/PluginTool.d.ts.map +1 -0
  72. package/bin/executor/tools/plugin/types/PluginTool.js +9 -0
  73. package/bin/executor/tools/plugin/types/PluginTool.js.map +1 -0
  74. package/bin/executor/tools/shell/ShellToolBridge.js +3 -3
  75. package/bin/executor/tools/shell/ShellToolBridge.js.map +1 -1
  76. package/bin/executor/types/SessionRun.d.ts +18 -0
  77. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  78. package/bin/index.d.ts +10 -1
  79. package/bin/index.d.ts.map +1 -1
  80. package/bin/index.js +3 -0
  81. package/bin/index.js.map +1 -1
  82. package/bin/plugin/core/BasePlugin.d.ts +2 -2
  83. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  84. package/bin/plugin/core/BasePlugin.js.map +1 -1
  85. package/bin/plugin/core/ImagePlugin.d.ts +56 -0
  86. package/bin/plugin/core/ImagePlugin.d.ts.map +1 -0
  87. package/bin/plugin/core/ImagePlugin.js +109 -0
  88. package/bin/plugin/core/ImagePlugin.js.map +1 -0
  89. package/bin/session/Session.d.ts +14 -83
  90. package/bin/session/Session.d.ts.map +1 -1
  91. package/bin/session/Session.js +139 -362
  92. package/bin/session/Session.js.map +1 -1
  93. package/bin/session/SessionSystemBuilder.d.ts +2 -1
  94. package/bin/session/SessionSystemBuilder.d.ts.map +1 -1
  95. package/bin/session/SessionSystemBuilder.js +2 -3
  96. package/bin/session/SessionSystemBuilder.js.map +1 -1
  97. package/bin/session/services/SessionStateService.d.ts +132 -0
  98. package/bin/session/services/SessionStateService.d.ts.map +1 -0
  99. package/bin/session/services/SessionStateService.js +242 -0
  100. package/bin/session/services/SessionStateService.js.map +1 -0
  101. package/bin/session/services/SessionTurnService.d.ts +66 -0
  102. package/bin/session/services/SessionTurnService.d.ts.map +1 -0
  103. package/bin/session/services/SessionTurnService.js +137 -0
  104. package/bin/session/services/SessionTurnService.js.map +1 -0
  105. package/bin/session/services/SessionViewService.d.ts +105 -0
  106. package/bin/session/services/SessionViewService.d.ts.map +1 -0
  107. package/bin/session/services/SessionViewService.js +184 -0
  108. package/bin/session/services/SessionViewService.js.map +1 -0
  109. package/bin/types/agent/AgentOptions.d.ts +18 -0
  110. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  111. package/bin/types/agent/AgentTypes.d.ts +3 -1
  112. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  113. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  114. package/bin/types/executor/SessionRunContext.d.ts +66 -0
  115. package/bin/types/executor/SessionRunContext.d.ts.map +1 -0
  116. package/bin/types/executor/SessionRunContext.js +10 -0
  117. package/bin/types/executor/SessionRunContext.js.map +1 -0
  118. package/bin/types/plugin/ImagePlugin.d.ts +94 -0
  119. package/bin/types/plugin/ImagePlugin.d.ts.map +1 -0
  120. package/bin/types/plugin/ImagePlugin.js +10 -0
  121. package/bin/types/plugin/ImagePlugin.js.map +1 -0
  122. package/bin/types/session/SessionComposerOptions.d.ts +90 -0
  123. package/bin/types/session/SessionComposerOptions.d.ts.map +1 -0
  124. package/bin/types/session/SessionComposerOptions.js +10 -0
  125. package/bin/types/session/SessionComposerOptions.js.map +1 -0
  126. package/bin/types/session/SessionLocalState.d.ts +35 -0
  127. package/bin/types/session/SessionLocalState.d.ts.map +1 -0
  128. package/bin/types/session/SessionLocalState.js +10 -0
  129. package/bin/types/session/SessionLocalState.js.map +1 -0
  130. package/bin/types/session/SessionOptions.d.ts +85 -0
  131. package/bin/types/session/SessionOptions.d.ts.map +1 -0
  132. package/bin/types/session/SessionOptions.js +10 -0
  133. package/bin/types/session/SessionOptions.js.map +1 -0
  134. package/package.json +1 -1
  135. package/src/agent/local/Agent.ts +74 -433
  136. package/src/agent/local/AgentRuntimeFactory.ts +4 -25
  137. package/src/agent/local/services/AgentAssemblyService.ts +268 -0
  138. package/src/agent/local/services/AgentLifecycleService.ts +187 -0
  139. package/src/agent/local/services/AgentSessionManager.ts +291 -0
  140. package/src/executor/Executor.ts +103 -441
  141. package/src/executor/README.md +4 -4
  142. package/src/executor/SessionRunScope.ts +47 -71
  143. package/src/executor/composer/context/LocalSessionContextComposer.ts +24 -20
  144. package/src/executor/composer/context/SessionContextComposer.ts +13 -3
  145. package/src/executor/composer/system/SessionSystemComposer.ts +2 -1
  146. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +3 -4
  147. package/src/executor/core-engine/CoreEngineRunner.ts +433 -0
  148. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +7 -5
  149. package/src/executor/services/ExecutorInflightService.ts +101 -0
  150. package/src/executor/services/ExecutorRecoveryPolicy.ts +213 -0
  151. package/src/executor/tools/plugin/PluginToolBridge.ts +161 -0
  152. package/src/executor/tools/plugin/PluginToolDefinition.ts +32 -0
  153. package/src/executor/tools/plugin/PluginToolSchemas.ts +20 -0
  154. package/src/executor/tools/plugin/types/PluginTool.ts +41 -0
  155. package/src/executor/tools/shell/ShellToolBridge.ts +3 -3
  156. package/src/executor/types/SessionRun.ts +20 -0
  157. package/src/index.ts +33 -0
  158. package/src/plugin/core/BasePlugin.ts +2 -2
  159. package/src/plugin/core/ImagePlugin.ts +128 -0
  160. package/src/session/Session.ts +178 -485
  161. package/src/session/SessionSystemBuilder.ts +3 -3
  162. package/src/session/services/SessionStateService.ts +341 -0
  163. package/src/session/services/SessionTurnService.ts +202 -0
  164. package/src/session/services/SessionViewService.ts +301 -0
  165. package/src/types/agent/AgentOptions.ts +25 -0
  166. package/src/types/agent/AgentTypes.ts +10 -0
  167. package/src/types/agent/SessionTypes.ts +1 -0
  168. package/src/types/executor/SessionRunContext.ts +76 -0
  169. package/src/types/plugin/ImagePlugin.ts +103 -0
  170. package/src/types/session/SessionComposerOptions.ts +107 -0
  171. package/src/types/session/SessionLocalState.ts +40 -0
  172. package/src/types/session/SessionOptions.ts +99 -0
  173. package/tsconfig.tsbuildinfo +1 -1
@@ -6,24 +6,14 @@
6
6
  * - 一个 Executor 只对应一个固定的 `sessionId`。
7
7
  * - 负责 history 写入、run scope、executing 状态、Composer 编排与 tool-loop 执行。
8
8
  */
9
- import { streamText } from "ai";
10
9
  import { SessionHistoryWriter } from "./composer/history/SessionHistoryWriter.js";
11
10
  import { withSessionRunScope } from "./SessionRunScope.js";
12
11
  import { buildSessionStepParts } from "./messages/SessionStepEventMapper.js";
13
12
  import { JsonlSessionCompactionComposer } from "./composer/compaction/jsonl/JsonlSessionCompactionComposer.js";
14
13
  import { LocalSessionContextComposer } from "./composer/context/LocalSessionContextComposer.js";
15
- import { MAX_INCOMPLETE_RESPONSE_RECOVERIES, MAX_TEXT_ONLY_CONTINUATIONS, MAX_TOOL_LOOP_STEPS, buildIncompleteResponseRecoveryNudge, buildTextOnlyContinuationNudge, detectIncompleteResponse, detectTextOnlyContinuationReason, mergeAssistantUiMessages, summarizeStepForDebug, summarizeUiMessageForDebug, toInlinePreview, } from "./core-engine/CoreEngineSignals.js";
16
- import { evaluateCoreEngineLoopDecision, shouldContinueForTailMergedUserMessages, } from "./core-engine/CoreEngineLoopDecision.js";
17
- import { resolveEffectiveCoreEngineError, summarizeStreamError, } from "./core-engine/CoreEngineError.js";
18
- import { collectFinalAssistantMessageFromUiStream } from "./core-engine/CoreEngineUiStreamCollector.js";
19
- import { CoreEngineMessageState } from "./core-engine/CoreEngineMessageState.js";
20
- import { buildOpenAIResponsesProviderOptions, } from "./messages/SessionMessageCodec.js";
21
- import { logAssistantMessageNow } from "./messages/SessionMessageLog.js";
22
- import { generateId } from "../utils/Id.js";
23
- /**
24
- * 可压缩错误的最大重试次数。
25
- */
26
- const MAX_COMPACTION_RETRY_ATTEMPTS = 3;
14
+ import { CoreEngineRunner } from "./core-engine/CoreEngineRunner.js";
15
+ import { ExecutorInflightService } from "./services/ExecutorInflightService.js";
16
+ import { ExecutorRecoveryPolicy } from "./services/ExecutorRecoveryPolicy.js";
27
17
  /**
28
18
  * Executor 单实例实现。
29
19
  */
@@ -40,8 +30,10 @@ export class Executor {
40
30
  systemComposer;
41
31
  contextComposer;
42
32
  historyWriter;
33
+ inflight_service;
34
+ recovery_policy;
35
+ core_engine_runner;
43
36
  executing = false;
44
- retryCount = 0;
45
37
  constructor(options) {
46
38
  const sessionId = String(options.sessionId || "").trim();
47
39
  if (!sessionId) {
@@ -66,6 +58,22 @@ export class Executor {
66
58
  getHistoryStore: () => this.getHistoryStore(),
67
59
  runAfterSessionUpdated: options.runAfterSessionUpdated,
68
60
  });
61
+ this.inflight_service = new ExecutorInflightService({
62
+ session_id: this.sessionId,
63
+ history_store: this.historyStore,
64
+ run_after_session_updated_async: async () => await this.afterSessionUpdatedAsync(),
65
+ });
66
+ this.recovery_policy = new ExecutorRecoveryPolicy({
67
+ compaction_composer: this.compactionComposer,
68
+ context_composer: this.contextComposer,
69
+ logger: this.logger,
70
+ });
71
+ this.core_engine_runner = new CoreEngineRunner({
72
+ history_store: this.historyStore,
73
+ context_composer: this.contextComposer,
74
+ logger: this.logger,
75
+ should_compact_on_error: (error) => this.compactionComposer.shouldCompactOnError(error),
76
+ });
69
77
  }
70
78
  /**
71
79
  * 返回当前 session 是否正在执行。
@@ -114,52 +122,6 @@ export class Executor {
114
122
  async appendAssistantMessage(params) {
115
123
  await this.historyWriter.appendAssistantMessage(params);
116
124
  }
117
- /**
118
- * 把 step/tool 过程增量写入当前运行中的 assistant 快照。
119
- */
120
- async appendAssistantStepPartsToInflight(parts) {
121
- const normalized_parts = Array.isArray(parts)
122
- ? parts.filter((part) => part && typeof part === "object")
123
- : [];
124
- if (normalized_parts.length === 0)
125
- return;
126
- const current_inflight = await this.historyStore.readInflight();
127
- const next_message = current_inflight
128
- ? {
129
- ...current_inflight,
130
- metadata: {
131
- ...(current_inflight.metadata || {
132
- v: 1,
133
- ts: Date.now(),
134
- sessionId: this.sessionId,
135
- }),
136
- ts: Date.now(),
137
- sessionId: this.sessionId,
138
- source: "egress",
139
- kind: "normal",
140
- },
141
- parts: [
142
- ...(Array.isArray(current_inflight.parts)
143
- ? current_inflight.parts
144
- : []),
145
- ...normalized_parts,
146
- ],
147
- }
148
- : {
149
- id: `a:${this.sessionId}:${generateId()}`,
150
- role: "assistant",
151
- metadata: {
152
- v: 1,
153
- ts: Date.now(),
154
- sessionId: this.sessionId,
155
- source: "egress",
156
- kind: "normal",
157
- },
158
- parts: normalized_parts,
159
- };
160
- await this.historyStore.writeInflight(next_message);
161
- await this.afterSessionUpdatedAsync();
162
- }
163
125
  /**
164
126
  * 运行当前 session 的一次请求。
165
127
  *
@@ -174,18 +136,8 @@ export class Executor {
174
136
  throw new Error("Executor.run does not support concurrent execution");
175
137
  }
176
138
  const query = String(params.query || "").trim();
177
- const sessionRunScope = {
178
- ...(typeof params.onStepCallback === "function"
179
- ? { onStepCallback: params.onStepCallback }
180
- : {}),
181
- ...(typeof params.onAssistantStepCallback === "function"
182
- ? { onAssistantStepCallback: params.onAssistantStepCallback }
183
- : {}),
184
- ...(typeof params.onUiMessageChunkCallback === "function"
185
- ? { onUiMessageChunkCallback: params.onUiMessageChunkCallback }
186
- : {}),
187
- };
188
- const providedOnAssistantStepCallback = sessionRunScope.onAssistantStepCallback;
139
+ const run_context = this.createRunContext(params.runContext);
140
+ const providedOnAssistantStepCallback = run_context.onAssistantStepCallback;
189
141
  const wrappedOnAssistantStepCallback = async (step) => {
190
142
  const step_parts = buildSessionStepParts({
191
143
  stepIndex: step.stepIndex,
@@ -194,85 +146,53 @@ export class Executor {
194
146
  visibility: step.visibility,
195
147
  });
196
148
  if (step_parts.length > 0) {
197
- await this.appendAssistantStepPartsToInflight(step_parts);
149
+ await this.inflight_service.append_assistant_step_parts(step_parts);
198
150
  }
199
151
  if (typeof providedOnAssistantStepCallback === "function") {
200
152
  await providedOnAssistantStepCallback(step);
201
153
  }
202
154
  };
155
+ run_context.onAssistantStepCallback = wrappedOnAssistantStepCallback;
203
156
  this.executing = true;
204
- this.resetRunState();
157
+ this.recovery_policy.reset_run_state();
205
158
  try {
206
159
  const result = await withSessionRunScope({
207
- sessionId: this.sessionId,
208
- ...sessionRunScope,
209
- onAssistantStepCallback: wrappedOnAssistantStepCallback,
210
- }, () => this.runWithRetry({ query }));
160
+ runContext: run_context,
161
+ }, async () => await this.recovery_policy.run_with_retry({
162
+ query,
163
+ model: this.resolveModelOrThrow(),
164
+ run_context,
165
+ prepare_execute_input: async ({ query: next_query, model, run_context: next_run_context, retry_count, }) => await this.prepareExecuteInput(next_query, model, next_run_context, retry_count),
166
+ execute_prepared_run: async ({ execute_input, model, run_context: next_run_context, }) => await this.executePreparedRun(execute_input, model, next_run_context),
167
+ }));
211
168
  return result;
212
169
  }
213
170
  finally {
214
- this.resetRunState();
171
+ this.recovery_policy.reset_run_state();
215
172
  this.executing = false;
216
173
  }
217
174
  }
218
- /**
219
- * 执行一次 session run(带可压缩错误重试)。
220
- */
221
- async runWithRetry(input) {
222
- const model = this.resolveModelOrThrow();
223
- try {
224
- const query = String(input.query || "").trim();
225
- const prepared = await this.prepareExecuteInput(query, model);
226
- return await this.executePreparedRun(prepared, model);
227
- }
228
- catch (error) {
229
- if (this.compactionComposer.shouldCompactOnError(error)) {
230
- await this.logger.log("info", "[agent] compacting", {
231
- retryCount: this.retryCount,
232
- error: String(error),
233
- });
234
- if (this.retryCount < MAX_COMPACTION_RETRY_ATTEMPTS) {
235
- this.retryCount += 1;
236
- return this.runWithRetry(input);
237
- }
238
- return {
239
- success: false,
240
- error: "Context length exceeded and retries failed. Please resend your question.",
241
- assistantMessage: this.contextComposer.buildFallbackAssistantMessage("Context length exceeded and retries failed. Please resend your question."),
242
- };
243
- }
244
- const errorMsg = String(error);
245
- await this.logger.log("error", "Executor execution failed", {
246
- error: errorMsg,
247
- });
248
- return {
249
- success: false,
250
- error: errorMsg,
251
- assistantMessage: this.contextComposer.buildFallbackAssistantMessage(`Execution failed: ${errorMsg}`),
252
- };
253
- }
254
- }
255
175
  /**
256
176
  * 调用 Composer 组装当前轮执行输入。
257
177
  */
258
- async prepareExecuteInput(query, model) {
178
+ async prepareExecuteInput(query, model, run_context, retry_count) {
259
179
  if (!String(this.historyComposer.sessionId || "").trim()) {
260
180
  throw new Error("Executor.run requires historyComposer.sessionId");
261
181
  }
262
- const runContext = await this.contextComposer.compose();
263
- const tools = runContext.tools;
264
- const system = await this.systemComposer.resolve();
182
+ const composed_context = await this.contextComposer.compose(run_context);
183
+ const tools = composed_context.tools;
184
+ const system = await this.systemComposer.resolve(run_context);
265
185
  try {
266
- if (this.retryCount > 0) {
186
+ if (retry_count > 0) {
267
187
  await this.logger.log("info", "[agent] compacting", {
268
- retryCount: this.retryCount,
188
+ retryCount: retry_count,
269
189
  });
270
190
  }
271
191
  await this.compactionComposer.run({
272
192
  historyStore: this.historyStore,
273
193
  model,
274
194
  system,
275
- retryCount: this.retryCount,
195
+ retryCount: retry_count,
276
196
  });
277
197
  }
278
198
  catch {
@@ -283,7 +203,7 @@ export class Executor {
283
203
  tools,
284
204
  system,
285
205
  model,
286
- retryCount: this.retryCount,
206
+ retryCount: retry_count,
287
207
  });
288
208
  return {
289
209
  query,
@@ -295,240 +215,38 @@ export class Executor {
295
215
  /**
296
216
  * 执行一次已装配完成的运行材料。
297
217
  */
298
- async executePreparedRun(input, model) {
299
- return await this.runCoreEngine(input, model);
218
+ async executePreparedRun(input, model, run_context) {
219
+ return await this.core_engine_runner.run({
220
+ execute_input: input,
221
+ model,
222
+ run_context,
223
+ });
300
224
  }
301
225
  /**
302
- * 运行模型/tool-loop 核心。
303
- *
304
- * 关键点(中文)
305
- * - CoreEngine 是 Executor 内部机制,不是第二个 Executor 实例。
306
- * - 这里只返回最终 assistant message;是否写入长期 history 由外层 Session/Service 决定。
307
- * - 运行中生成的内部续写 user message 只进入本轮内存态,不直接落盘。
226
+ * 归一化本轮显式运行上下文。
308
227
  */
309
- async runCoreEngine(input, model) {
310
- const startTime = Date.now();
311
- const sessionId = String(this.historyStore.sessionId || "").trim();
312
- const system = Array.isArray(input.system) ? input.system : [];
313
- const tools = input.tools;
314
- let lastObservedStreamError = undefined;
315
- try {
316
- const messageState = await CoreEngineMessageState.create({
317
- messages: input.messages,
318
- tools,
319
- });
320
- const appendMergedUserMessages = (messages) => messageState.appendMergedUserMessages(messages);
321
- const contextComposerOnStepFinish = this.contextComposer.createOnStepFinishHandler();
322
- let stepCount = 0;
323
- let totalToolCallCount = 0;
324
- let totalToolResultCount = 0;
325
- const onStepFinish = async (stepResult) => {
326
- stepCount += 1;
327
- const summary = summarizeStepForDebug(stepResult);
328
- totalToolCallCount +=
329
- typeof summary.toolCallCount === "number" ? summary.toolCallCount : 0;
330
- totalToolResultCount +=
331
- typeof summary.toolResultCount === "number"
332
- ? summary.toolResultCount
333
- : 0;
334
- await this.logger.log("info", "[agent] step.finish", {
335
- sessionId,
336
- stepIndex: stepCount,
337
- ...summary,
338
- });
339
- await contextComposerOnStepFinish(stepResult);
340
- };
341
- const prepareStep = this.contextComposer.createPrepareStepHandler({
342
- system,
343
- appendMergedUserMessages,
344
- });
345
- let finalAssistantUiMessage = null;
346
- let textOnlyContinuationCount = 0;
347
- let incompleteResponseRecoveryCount = 0;
348
- while (stepCount < MAX_TOOL_LOOP_STEPS) {
349
- const result = streamText({
350
- model,
351
- system,
352
- onStepFinish,
353
- prepareStep,
354
- messages: messageState.modelMessages,
355
- tools,
356
- providerOptions: buildOpenAIResponsesProviderOptions(),
357
- onError: async ({ error }) => {
358
- lastObservedStreamError = error;
359
- await this.logger.log("error", "[agent] stream.error", {
360
- sessionId,
361
- ...summarizeStreamError(error),
362
- });
363
- },
364
- });
365
- const stepAssistantUiMessage = await collectFinalAssistantMessageFromUiStream({
366
- result,
367
- sessionId,
368
- logger: this.logger,
369
- buildFallbackAssistantMessage: (text) => this.contextComposer.buildFallbackAssistantMessage(text),
370
- });
371
- const executedSteps = await result.steps;
372
- const lastStep = executedSteps[executedSteps.length - 1];
373
- if (!lastStep)
374
- break;
375
- const incompleteResponse = detectIncompleteResponse({
376
- stepResult: lastStep,
377
- assistantMessage: stepAssistantUiMessage,
378
- });
379
- const textOnlyContinuationReason = detectTextOnlyContinuationReason(lastStep);
380
- const loopDecision = evaluateCoreEngineLoopDecision({
381
- hasIncompleteResponse: incompleteResponse !== null,
382
- incompleteRecoveryCount: incompleteResponseRecoveryCount,
383
- maxIncompleteRecoveries: MAX_INCOMPLETE_RESPONSE_RECOVERIES,
384
- textOnlyContinuationReason,
385
- textOnlyContinuationCount,
386
- maxTextOnlyContinuations: MAX_TEXT_ONLY_CONTINUATIONS,
387
- hasTools: Object.keys(tools).length > 0,
388
- toolCallCount: lastStep.toolCalls.length,
389
- });
390
- await this.logger.log("info", "[agent] loop.decision", {
391
- sessionId,
392
- stepIndex: stepCount,
393
- continueForToolCalls: loopDecision.continueForToolCalls,
394
- continueForTextOnly: loopDecision.continueForTextOnly,
395
- continueForIncompleteRecovery: loopDecision.continueForIncompleteRecovery,
396
- decisionKind: loopDecision.kind,
397
- textOnlyContinuationReason,
398
- textOnlyContinuationCount,
399
- incompleteResponseReason: incompleteResponse?.reason ?? null,
400
- incompleteResponseRecoveryCount,
401
- toolCallCount: lastStep.toolCalls.length,
402
- toolResultCount: lastStep.toolResults.length,
403
- finishReason: lastStep.finishReason,
404
- textPreview: toInlinePreview(lastStep.text),
405
- });
406
- if (loopDecision.continueForIncompleteRecovery && incompleteResponse) {
407
- incompleteResponseRecoveryCount += 1;
408
- await this.logger.log("warn", "[agent] incomplete_response.recover", {
409
- sessionId,
410
- stepIndex: stepCount,
411
- recoveryCount: incompleteResponseRecoveryCount,
412
- reason: incompleteResponse.reason,
413
- ...incompleteResponse.details,
414
- });
415
- const recoveryMessage = this.historyStore.userText({
416
- text: buildIncompleteResponseRecoveryNudge(incompleteResponseRecoveryCount),
417
- metadata: {
418
- sessionId,
419
- extra: {
420
- internal: "agent_incomplete_response_recover",
421
- reason: incompleteResponse.reason,
422
- stepIndex: stepCount,
423
- },
424
- },
425
- });
426
- await messageState.appendUserTextMessage(recoveryMessage);
427
- continue;
428
- }
429
- if (incompleteResponse) {
430
- await this.logger.log("error", "[agent] incomplete_response", {
431
- sessionId,
432
- stepIndex: stepCount,
433
- reason: incompleteResponse.reason,
434
- recoveryCount: incompleteResponseRecoveryCount,
435
- ...incompleteResponse.details,
436
- });
437
- throw new Error(`Agent received incomplete response (${incompleteResponse.reason})`);
438
- }
439
- const responseMessages = Array.isArray(lastStep.response?.messages)
440
- ? lastStep.response.messages
441
- : [];
442
- messageState.appendModelMessages(responseMessages);
443
- finalAssistantUiMessage = mergeAssistantUiMessages(finalAssistantUiMessage, stepAssistantUiMessage);
444
- // 关键点(中文):把本 step 的 assistant UI 消息并入运行时上下文,保证后续全量重算不丢历史。
445
- messageState.appendRuntimeSessionMessage(stepAssistantUiMessage);
446
- if (loopDecision.continueForToolCalls) {
447
- textOnlyContinuationCount = 0;
448
- incompleteResponseRecoveryCount = 0;
449
- continue;
450
- }
451
- if (loopDecision.continueForTextOnly) {
452
- textOnlyContinuationCount += 1;
453
- incompleteResponseRecoveryCount = 0;
454
- const continuationMessage = this.historyStore.userText({
455
- text: buildTextOnlyContinuationNudge(textOnlyContinuationCount),
456
- metadata: {
457
- sessionId,
458
- extra: {
459
- internal: "agent_loop_auto_continue",
460
- reason: textOnlyContinuationReason,
461
- stepIndex: stepCount,
462
- },
463
- },
464
- });
465
- await messageState.appendUserTextMessage(continuationMessage);
466
- continue;
467
- }
468
- // 关键点(中文):stop 前做 tail merge,覆盖最后一个 step 后才入队的新 user 消息。
469
- const tailPrepared = await prepareStep({ messages: [] });
470
- const tailMergedMessageCount = Array.isArray(tailPrepared.messages)
471
- ? tailPrepared.messages.length
472
- : 0;
473
- if (shouldContinueForTailMergedUserMessages({
474
- mergedUserMessageCount: tailMergedMessageCount,
475
- })) {
476
- textOnlyContinuationCount = 0;
477
- incompleteResponseRecoveryCount = 0;
478
- await this.logger.log("info", "[agent] loop.tail_merge_continue", {
479
- sessionId,
480
- stepIndex: stepCount,
481
- mergedUserMessageCount: tailMergedMessageCount,
482
- });
483
- continue;
484
- }
485
- break;
486
- }
487
- if (stepCount >= MAX_TOOL_LOOP_STEPS) {
488
- await this.logger.log("warn", "[agent] loop.max_steps_reached", {
489
- sessionId,
490
- stepCount,
491
- totalToolCallCount,
492
- totalToolResultCount,
493
- });
494
- }
495
- const finalMessage = finalAssistantUiMessage ||
496
- this.contextComposer.buildFallbackAssistantMessage("Execution completed");
497
- await this.logger.log("info", "[agent] final.message", {
498
- sessionId,
499
- ...summarizeUiMessageForDebug(finalMessage),
500
- });
501
- await logAssistantMessageNow(this.logger, finalMessage);
502
- const duration = Date.now() - startTime;
503
- await this.logger.log("info", "[agent] finish", {
504
- sessionId,
505
- duration,
506
- stepCount,
507
- totalToolCallCount,
508
- totalToolResultCount,
509
- });
510
- return {
511
- success: true,
512
- assistantMessage: finalMessage,
513
- };
514
- }
515
- catch (error) {
516
- if (this.compactionComposer.shouldCompactOnError(error)) {
517
- throw error;
518
- }
519
- const errorMsg = resolveEffectiveCoreEngineError({
520
- error,
521
- streamError: lastObservedStreamError,
522
- });
523
- await this.logger.log("error", "CoreEngine execution failed", {
524
- error: errorMsg,
525
- });
526
- return {
527
- success: false,
528
- error: errorMsg,
529
- assistantMessage: this.contextComposer.buildFallbackAssistantMessage(`Execution failed: ${errorMsg}`),
530
- };
531
- }
228
+ createRunContext(input) {
229
+ return {
230
+ sessionId: String(input?.sessionId || this.sessionId).trim(),
231
+ ...(typeof input?.onStepCallback === "function"
232
+ ? { onStepCallback: input.onStepCallback }
233
+ : {}),
234
+ ...(typeof input?.onAssistantStepCallback === "function"
235
+ ? { onAssistantStepCallback: input.onAssistantStepCallback }
236
+ : {}),
237
+ ...(typeof input?.onUiMessageChunkCallback === "function"
238
+ ? { onUiMessageChunkCallback: input.onUiMessageChunkCallback }
239
+ : {}),
240
+ injectedUserMessages: Array.isArray(input?.injectedUserMessages)
241
+ ? [...input.injectedUserMessages]
242
+ : [],
243
+ deferredPersistedUserMessages: Array.isArray(input?.deferredPersistedUserMessages)
244
+ ? [...input.deferredPersistedUserMessages]
245
+ : [],
246
+ pendingAssistantFileParts: Array.isArray(input?.pendingAssistantFileParts)
247
+ ? [...input.pendingAssistantFileParts]
248
+ : [],
249
+ };
532
250
  }
533
251
  /**
534
252
  * 读取当前 session 模型。
@@ -540,11 +258,5 @@ export class Executor {
540
258
  }
541
259
  return model;
542
260
  }
543
- /**
544
- * 重置当前 run 级状态。
545
- */
546
- resetRunState() {
547
- this.retryCount = 0;
548
- }
549
261
  }
550
262
  //# sourceMappingURL=Executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/executor/Executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/executor/Executor.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,26 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import type { FileUIPart } from "ai";
2
3
  import type { SessionUserMessageV1 } from "../executor/types/SessionMessages.js";
3
- import type { SessionAssistantStepCallback, SessionUiMessageChunkCallback } from "../executor/types/SessionRun.js";
4
+ import type { SessionRunContext } from "../types/executor/SessionRunContext.js";
4
5
  /**
5
6
  * SessionRunScope(单次请求作用域)。
6
7
  *
7
8
  * 关键点(中文)
8
9
  * - 这是 session run 层请求作用域上下文,不属于具体 plugin 业务模块。
9
- * - 统一承载请求链需要透传的字段(如 `sessionId`)。
10
+ * - 当前阶段仅作为深层工具回调读取 `runContext` 的薄包装。
10
11
  */
11
12
  export type SessionRunScope = {
12
- sessionId?: string;
13
13
  /**
14
- * step 边界合并回调(可选)。
15
- *
16
- * 关键点(中文)
17
- * - 由调用侧(如 chat queue)注入。
18
- * - Orchestrator 从 SessionRunScope 读取并编排到本轮运行上下文。
14
+ * 当前显式运行上下文。
19
15
  */
20
- onStepCallback?: () => Promise<SessionUserMessageV1[]>;
21
- /**
22
- * assistant step 完成回调(可选)。
23
- *
24
- * 关键点(中文)
25
- * - 在每个 LLM step 结束时触发。
26
- * - 用于把中间文本增量派发到外部通道(如 direct 模式分步发送)。
27
- */
28
- onAssistantStepCallback?: SessionAssistantStepCallback;
29
- /**
30
- * UI stream chunk 回调(可选)。
31
- *
32
- * 关键点(中文)
33
- * - 用于把底层模型 UI stream 事件向上层 SDK / transport 旁路输出。
34
- * - 不影响最终 assistantMessage 的收敛与落盘。
35
- */
36
- onUiMessageChunkCallback?: SessionUiMessageChunkCallback;
37
- /**
38
- * 运行时注入的 user 消息队列(可选)。
39
- *
40
- * 关键点(中文)
41
- * - 用于在 tool 执行后向下一 step 注入结构化 user 消息。
42
- * - 队列内容由上层 plugin runtime 通过统一协议下发,main 不感知业务语义。
43
- */
44
- injectedUserMessages?: SessionUserMessageV1[];
16
+ runContext: SessionRunContext;
45
17
  };
46
18
  /**
47
19
  * AsyncLocalStorage 容器(请求作用域)。
48
20
  *
49
21
  * 关键点(中文)
50
22
  * - 同一条异步调用链内可读取一致的 SessionRunScope。
51
- * - 用于把 `sessionId` 从入口透传到 plugin runtime 与工具层。
23
+ * - 当前主要用于 tool 深层桥接层读取活跃 runContext。
52
24
  */
53
25
  export declare const sessionRunScopeStorage: AsyncLocalStorage<SessionRunScope>;
54
26
  /**
@@ -59,6 +31,10 @@ export declare function withSessionRunScope<T>(ctx: SessionRunScope, fn: () => T
59
31
  * 读取当前异步链路上的 session run 作用域。
60
32
  */
61
33
  export declare function getSessionRunScope(): SessionRunScope | undefined;
34
+ /**
35
+ * 读取当前异步链路上的显式 runContext。
36
+ */
37
+ export declare function getSessionRunContext(): SessionRunContext | undefined;
62
38
  /**
63
39
  * 入队一条“待注入 user 消息”。
64
40
  *
@@ -81,4 +57,12 @@ export declare function enqueueDeferredPersistedUserMessage(sessionId: string, m
81
57
  * 读取并清空指定 session 的待持久化 user 消息。
82
58
  */
83
59
  export declare function drainDeferredPersistedUserMessages(sessionId: string): SessionUserMessageV1[];
60
+ /**
61
+ * 入队一组“待并入 assistant 消息的 file parts”。
62
+ */
63
+ export declare function enqueueAssistantFileParts(parts: FileUIPart[]): void;
64
+ /**
65
+ * 读取当前 run 内待并入 assistant 消息的 file parts。
66
+ */
67
+ export declare function readPendingAssistantFileParts(): FileUIPart[];
84
68
  //# sourceMappingURL=SessionRunScope.d.ts.map