@librechat/agents 3.6.16 → 3.7.1

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 (187) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +10 -0
  2. package/dist/cjs/agents/AgentContext.cjs +11 -2
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/graphs/Graph.cjs +12 -9
  5. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  6. package/dist/cjs/lazyRequire.cjs +33 -0
  7. package/dist/cjs/lazyRequire.cjs.map +1 -0
  8. package/dist/cjs/llm/anthropic/index.cjs +13 -0
  9. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  10. package/dist/cjs/llm/bedrock/index.cjs +10 -1
  11. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  12. package/dist/cjs/llm/bedrock/toolCache.cjs +3 -2
  13. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  14. package/dist/cjs/llm/google/index.cjs +10 -1
  15. package/dist/cjs/llm/google/index.cjs.map +1 -1
  16. package/dist/cjs/llm/init.cjs +6 -4
  17. package/dist/cjs/llm/init.cjs.map +1 -1
  18. package/dist/cjs/llm/invoke.cjs +56 -9
  19. package/dist/cjs/llm/invoke.cjs.map +1 -1
  20. package/dist/cjs/llm/mistral/index.cjs +9 -0
  21. package/dist/cjs/llm/mistral/index.cjs.map +1 -1
  22. package/dist/cjs/llm/openai/index.cjs +42 -2
  23. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  24. package/dist/cjs/llm/openrouter/index.cjs +12 -3
  25. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  26. package/dist/cjs/llm/openrouter/toolCache.cjs +3 -2
  27. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  28. package/dist/cjs/llm/providerRegistry.cjs +15 -3
  29. package/dist/cjs/llm/providerRegistry.cjs.map +1 -1
  30. package/dist/cjs/llm/providers.cjs +18 -22
  31. package/dist/cjs/llm/providers.cjs.map +1 -1
  32. package/dist/cjs/llm/providers.eager.cjs +21 -0
  33. package/dist/cjs/llm/providers.eager.cjs.map +1 -0
  34. package/dist/cjs/llm/vertexai/index.cjs +17 -0
  35. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  36. package/dist/cjs/main.cjs +19 -11
  37. package/dist/cjs/messages/content.cjs +8 -5
  38. package/dist/cjs/messages/content.cjs.map +1 -1
  39. package/dist/cjs/messages/core.cjs +9 -4
  40. package/dist/cjs/messages/core.cjs.map +1 -1
  41. package/dist/cjs/messages/format.cjs +15 -5
  42. package/dist/cjs/messages/format.cjs.map +1 -1
  43. package/dist/cjs/messages/index.cjs +2 -1
  44. package/dist/cjs/messages/projectionInvariant.cjs +74 -0
  45. package/dist/cjs/messages/projectionInvariant.cjs.map +1 -0
  46. package/dist/cjs/messages/provenance.cjs +30 -8
  47. package/dist/cjs/messages/provenance.cjs.map +1 -1
  48. package/dist/cjs/messages/prune.cjs +42 -8
  49. package/dist/cjs/messages/prune.cjs.map +1 -1
  50. package/dist/cjs/messages/recency.cjs +202 -7
  51. package/dist/cjs/messages/recency.cjs.map +1 -1
  52. package/dist/cjs/messages/toolResultTypes.cjs +1 -0
  53. package/dist/cjs/run.cjs +7 -2
  54. package/dist/cjs/run.cjs.map +1 -1
  55. package/dist/cjs/session/AgentSession.cjs +4 -23
  56. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  57. package/dist/cjs/session/deriveMessages.cjs +25 -0
  58. package/dist/cjs/session/deriveMessages.cjs.map +1 -0
  59. package/dist/cjs/session/index.cjs +1 -0
  60. package/dist/cjs/summarization/node.cjs +13 -6
  61. package/dist/cjs/summarization/node.cjs.map +1 -1
  62. package/dist/cjs/tools/Calculator.cjs +7 -4
  63. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  64. package/dist/cjs/tools/CodeExecutor.cjs +1 -1
  65. package/dist/cjs/tools/subagent/InMemorySubagentTaskStore.cjs +65 -8
  66. package/dist/cjs/tools/subagent/InMemorySubagentTaskStore.cjs.map +1 -1
  67. package/dist/cjs/utils/llm.cjs +16 -0
  68. package/dist/cjs/utils/llm.cjs.map +1 -1
  69. package/dist/esm/_virtual/_rolldown/runtime.mjs +14 -0
  70. package/dist/esm/agents/AgentContext.mjs +11 -2
  71. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  72. package/dist/esm/graphs/Graph.mjs +12 -9
  73. package/dist/esm/graphs/Graph.mjs.map +1 -1
  74. package/dist/esm/lazyRequire.mjs +30 -0
  75. package/dist/esm/lazyRequire.mjs.map +1 -0
  76. package/dist/esm/llm/anthropic/index.mjs +6 -1
  77. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  78. package/dist/esm/llm/bedrock/index.mjs +4 -2
  79. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  80. package/dist/esm/llm/bedrock/toolCache.mjs +3 -2
  81. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  82. package/dist/esm/llm/google/index.mjs +4 -2
  83. package/dist/esm/llm/google/index.mjs.map +1 -1
  84. package/dist/esm/llm/init.mjs +7 -5
  85. package/dist/esm/llm/init.mjs.map +1 -1
  86. package/dist/esm/llm/invoke.mjs +56 -9
  87. package/dist/esm/llm/invoke.mjs.map +1 -1
  88. package/dist/esm/llm/mistral/index.mjs +3 -1
  89. package/dist/esm/llm/mistral/index.mjs.map +1 -1
  90. package/dist/esm/llm/openai/index.mjs +32 -10
  91. package/dist/esm/llm/openai/index.mjs.map +1 -1
  92. package/dist/esm/llm/openrouter/index.mjs +3 -1
  93. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  94. package/dist/esm/llm/openrouter/toolCache.mjs +3 -2
  95. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  96. package/dist/esm/llm/providerRegistry.mjs +15 -3
  97. package/dist/esm/llm/providerRegistry.mjs.map +1 -1
  98. package/dist/esm/llm/providers.eager.mjs +22 -0
  99. package/dist/esm/llm/providers.eager.mjs.map +1 -0
  100. package/dist/esm/llm/providers.mjs +19 -23
  101. package/dist/esm/llm/providers.mjs.map +1 -1
  102. package/dist/esm/llm/vertexai/index.mjs +8 -1
  103. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  104. package/dist/esm/main.mjs +10 -11
  105. package/dist/esm/messages/content.mjs +8 -6
  106. package/dist/esm/messages/content.mjs.map +1 -1
  107. package/dist/esm/messages/core.mjs +9 -5
  108. package/dist/esm/messages/core.mjs.map +1 -1
  109. package/dist/esm/messages/format.mjs +16 -6
  110. package/dist/esm/messages/format.mjs.map +1 -1
  111. package/dist/esm/messages/index.mjs +2 -1
  112. package/dist/esm/messages/projectionInvariant.mjs +72 -0
  113. package/dist/esm/messages/projectionInvariant.mjs.map +1 -0
  114. package/dist/esm/messages/provenance.mjs +30 -9
  115. package/dist/esm/messages/provenance.mjs.map +1 -1
  116. package/dist/esm/messages/prune.mjs +42 -9
  117. package/dist/esm/messages/prune.mjs.map +1 -1
  118. package/dist/esm/messages/recency.mjs +201 -8
  119. package/dist/esm/messages/recency.mjs.map +1 -1
  120. package/dist/esm/messages/toolResultTypes.mjs +1 -1
  121. package/dist/esm/run.mjs +8 -3
  122. package/dist/esm/run.mjs.map +1 -1
  123. package/dist/esm/session/AgentSession.mjs +4 -23
  124. package/dist/esm/session/AgentSession.mjs.map +1 -1
  125. package/dist/esm/session/deriveMessages.mjs +25 -0
  126. package/dist/esm/session/deriveMessages.mjs.map +1 -0
  127. package/dist/esm/session/index.mjs +1 -0
  128. package/dist/esm/summarization/node.mjs +14 -7
  129. package/dist/esm/summarization/node.mjs.map +1 -1
  130. package/dist/esm/tools/Calculator.mjs +7 -2
  131. package/dist/esm/tools/Calculator.mjs.map +1 -1
  132. package/dist/esm/tools/CodeExecutor.mjs +1 -1
  133. package/dist/esm/tools/subagent/InMemorySubagentTaskStore.mjs +65 -8
  134. package/dist/esm/tools/subagent/InMemorySubagentTaskStore.mjs.map +1 -1
  135. package/dist/esm/utils/llm.mjs +15 -1
  136. package/dist/esm/utils/llm.mjs.map +1 -1
  137. package/dist/types/agents/AgentContext.d.ts +6 -1
  138. package/dist/types/index.d.ts +3 -3
  139. package/dist/types/lazyRequire.d.ts +8 -0
  140. package/dist/types/llm/providerRegistry.d.ts +11 -0
  141. package/dist/types/llm/providers.eager.d.ts +1 -0
  142. package/dist/types/messages/content.d.ts +4 -1
  143. package/dist/types/messages/core.d.ts +2 -0
  144. package/dist/types/messages/format.d.ts +6 -0
  145. package/dist/types/messages/index.d.ts +1 -0
  146. package/dist/types/messages/projectionInvariant.d.ts +25 -0
  147. package/dist/types/messages/provenance.d.ts +10 -0
  148. package/dist/types/messages/prune.d.ts +5 -4
  149. package/dist/types/messages/recency.d.ts +30 -18
  150. package/dist/types/session/deriveMessages.d.ts +11 -0
  151. package/dist/types/session/index.d.ts +2 -0
  152. package/dist/types/tools/subagent/InMemorySubagentTaskStore.d.ts +13 -1
  153. package/dist/types/types/graph.d.ts +1 -1
  154. package/dist/types/types/subagentTasks.d.ts +22 -0
  155. package/dist/types/types/summarize.d.ts +15 -13
  156. package/dist/types/utils/llm.d.ts +10 -0
  157. package/package.json +60 -1
  158. package/src/agents/AgentContext.ts +19 -5
  159. package/src/graphs/Graph.ts +11 -9
  160. package/src/index.ts +3 -3
  161. package/src/lazyRequire.ts +67 -0
  162. package/src/llm/bedrock/toolCache.ts +6 -2
  163. package/src/llm/init.ts +15 -8
  164. package/src/llm/invoke.ts +102 -23
  165. package/src/llm/openrouter/toolCache.ts +8 -2
  166. package/src/llm/providerRegistry.ts +41 -1
  167. package/src/llm/providers.eager.ts +24 -0
  168. package/src/llm/providers.ts +63 -49
  169. package/src/messages/content.ts +20 -10
  170. package/src/messages/core.ts +16 -11
  171. package/src/messages/format.ts +29 -5
  172. package/src/messages/index.ts +1 -0
  173. package/src/messages/projectionInvariant.ts +134 -0
  174. package/src/messages/provenance.ts +60 -18
  175. package/src/messages/prune.ts +86 -11
  176. package/src/messages/recency.ts +429 -27
  177. package/src/run.ts +14 -6
  178. package/src/session/AgentSession.ts +4 -30
  179. package/src/session/deriveMessages.ts +37 -0
  180. package/src/session/index.ts +2 -0
  181. package/src/summarization/node.ts +37 -15
  182. package/src/tools/Calculator.ts +9 -2
  183. package/src/tools/subagent/InMemorySubagentTaskStore.ts +139 -6
  184. package/src/types/graph.ts +1 -0
  185. package/src/types/subagentTasks.ts +28 -0
  186. package/src/types/summarize.ts +15 -13
  187. package/src/utils/llm.ts +39 -0
@@ -5,6 +5,7 @@ const DEFAULT_MAX_ERROR_CHARS = 4 * 1024;
5
5
  const DEFAULT_MAX_MESSAGE_CHARS = 64 * 1024;
6
6
  const DEFAULT_TASK_TIMEOUT_MS = 1800 * 1e3;
7
7
  const DEFAULT_MAX_CONTROLS = 32;
8
+ const DEFAULT_MAX_CONTROL_RECEIPTS = 64;
8
9
  const DEFAULT_MAX_RESULT_CHARS = 1e5;
9
10
  const DEFAULT_MAX_RUNNING_PER_SCOPE = 10;
10
11
  const DEFAULT_MAX_RUNNING_TOTAL = 100;
@@ -20,6 +21,7 @@ function resolveOptions(options) {
20
21
  completedTtlMs: resolvePositiveInteger(options.completedTtlMs, DEFAULT_COMPLETED_TTL_MS),
21
22
  maxControlMessageChars: resolvePositiveInteger(options.maxControlMessageChars, DEFAULT_MAX_MESSAGE_CHARS),
22
23
  maxControlsPerTask: resolvePositiveInteger(options.maxControlsPerTask, DEFAULT_MAX_CONTROLS),
24
+ maxControlReceiptsPerTask: Math.max(resolvePositiveInteger(options.maxControlReceiptsPerTask, DEFAULT_MAX_CONTROL_RECEIPTS), resolvePositiveInteger(options.maxControlsPerTask, DEFAULT_MAX_CONTROLS)),
23
25
  maxErrorChars: resolvePositiveInteger(options.maxErrorChars, DEFAULT_MAX_ERROR_CHARS),
24
26
  maxResultChars: resolvePositiveInteger(options.maxResultChars, DEFAULT_MAX_RESULT_CHARS),
25
27
  maxRunningPerScope: Math.min(resolvePositiveInteger(options.maxRunningPerScope, DEFAULT_MAX_RUNNING_PER_SCOPE), maxTasksPerScope),
@@ -58,10 +60,14 @@ function snapshot(task) {
58
60
  resultAvailable: task.status === "completed" && task.result != null && !task.resultClaimed,
59
61
  resultClaimed: task.resultClaimed,
60
62
  pendingControls: task.controls.length,
63
+ controlReceipts: [...task.controlReceipts.values()].map((receipt) => ({ ...receipt })),
61
64
  ...task.progress == null ? {} : { progress: { ...task.progress } },
62
65
  ...task.error == null ? {} : { error: task.error }
63
66
  };
64
67
  }
68
+ function cloneControlReceipt(receipt) {
69
+ return { ...receipt };
70
+ }
65
71
  function abortReason(signal) {
66
72
  return signal.reason instanceof Error ? signal.reason : /* @__PURE__ */ new Error("Detached subagent task cancelled.");
67
73
  }
@@ -73,6 +79,12 @@ var InMemorySubagentTaskStore = class {
73
79
  constructor(options = {}) {
74
80
  this.options = resolveOptions(options);
75
81
  }
82
+ onControlReceipt(_scopeId, _taskId, _receipt) {}
83
+ emitControlReceipt(task, receipt) {
84
+ try {
85
+ this.onControlReceipt(task.scopeId, task.id, cloneControlReceipt(receipt));
86
+ } catch {}
87
+ }
76
88
  start(request) {
77
89
  const scopeId = request.scopeId.trim();
78
90
  const idempotencyKey = request.idempotencyKey.trim();
@@ -128,6 +140,7 @@ var InMemorySubagentTaskStore = class {
128
140
  updatedAt: now,
129
141
  controller: new AbortController(),
130
142
  controls: [],
143
+ controlReceipts: /* @__PURE__ */ new Map(),
131
144
  progressEvents: 0,
132
145
  resultClaimed: false,
133
146
  acceptingControls: true
@@ -153,6 +166,7 @@ var InMemorySubagentTaskStore = class {
153
166
  }
154
167
  task.status = "completed";
155
168
  task.acceptingControls = false;
169
+ this.failPendingControls(task, "task_completed");
156
170
  task.controls.length = 0;
157
171
  task.result = truncateMiddle(result.content, this.options.maxResultChars);
158
172
  task.updatedAt = Date.now();
@@ -233,11 +247,13 @@ var InMemorySubagentTaskStore = class {
233
247
  status: "control_not_found",
234
248
  task: snapshot(task)
235
249
  };
236
- task.controls.splice(index, 1);
250
+ const [control] = task.controls.splice(index, 1);
237
251
  task.updatedAt = Date.now();
252
+ this.transitionControl(task, control.id, "rejected", { reason: "withdrawn" });
238
253
  return {
239
254
  status: "accepted",
240
- task: snapshot(task)
255
+ task: snapshot(task),
256
+ controlId: control.id
241
257
  };
242
258
  }
243
259
  const message = command.message.trim();
@@ -253,6 +269,10 @@ var InMemorySubagentTaskStore = class {
253
269
  status: "invalid",
254
270
  message: `Task already has ${this.options.maxControlsPerTask} pending messages.`
255
271
  };
272
+ if (!this.makeRoomForControlReceipt(task)) return {
273
+ status: "invalid",
274
+ message: "Task control receipt capacity is unavailable."
275
+ };
256
276
  const control = {
257
277
  id: nanoid(),
258
278
  action: command.action,
@@ -260,6 +280,15 @@ var InMemorySubagentTaskStore = class {
260
280
  };
261
281
  task.controls.push(control);
262
282
  task.updatedAt = Date.now();
283
+ const receipt = {
284
+ controlId: control.id,
285
+ action: control.action,
286
+ status: "accepted",
287
+ createdAt: task.updatedAt,
288
+ updatedAt: task.updatedAt
289
+ };
290
+ task.controlReceipts.set(control.id, receipt);
291
+ this.emitControlReceipt(task, receipt);
263
292
  return {
264
293
  status: "accepted",
265
294
  task: snapshot(task),
@@ -321,6 +350,30 @@ var InMemorySubagentTaskStore = class {
321
350
  dropEmptyBucket(scopeId, bucket) {
322
351
  if (bucket.tasks.size === 0 && this.buckets.get(scopeId) === bucket) this.buckets.delete(scopeId);
323
352
  }
353
+ makeRoomForControlReceipt(task) {
354
+ while (task.controlReceipts.size >= this.options.maxControlReceiptsPerTask) {
355
+ const terminal = [...task.controlReceipts].find(([, receipt]) => receipt.status !== "accepted");
356
+ if (terminal == null) return false;
357
+ task.controlReceipts.delete(terminal[0]);
358
+ }
359
+ return true;
360
+ }
361
+ transitionControl(task, controlId, status, detail = {}) {
362
+ const receipt = task.controlReceipts.get(controlId);
363
+ if (receipt == null || receipt.status !== "accepted") return;
364
+ const transitioned = {
365
+ ...receipt,
366
+ status,
367
+ updatedAt: Date.now(),
368
+ ...detail.boundary == null ? {} : { boundary: detail.boundary },
369
+ ...detail.reason == null ? {} : { reason: detail.reason }
370
+ };
371
+ task.controlReceipts.set(controlId, transitioned);
372
+ this.emitControlReceipt(task, transitioned);
373
+ }
374
+ failPendingControls(task, reason) {
375
+ for (const control of task.controls) this.transitionControl(task, control.id, reason === "task_failed" ? "failed" : "rejected", { reason });
376
+ }
324
377
  scheduleExpiry(task) {
325
378
  this.clearTaskTimeout(task);
326
379
  this.clearTaskExpiry(task);
@@ -346,6 +399,7 @@ var InMemorySubagentTaskStore = class {
346
399
  task.status = status;
347
400
  this.runningTasks -= 1;
348
401
  task.acceptingControls = false;
402
+ this.failPendingControls(task, status === "cancelled" ? "task_cancelled" : "task_failed");
349
403
  task.controls.length = 0;
350
404
  task.error = message;
351
405
  task.updatedAt = Date.now();
@@ -353,13 +407,16 @@ var InMemorySubagentTaskStore = class {
353
407
  task.controller.abort(resolved);
354
408
  }
355
409
  createRuntime(task) {
356
- const take = (accept) => {
410
+ const take = (boundary, accept) => {
357
411
  if (task.status !== "running") return [];
358
412
  const selected = [];
359
413
  const retained = [];
360
414
  for (const control of task.controls) (accept(control) ? selected : retained).push(control);
361
415
  task.controls = retained;
362
- if (selected.length > 0) task.updatedAt = Date.now();
416
+ if (selected.length > 0) {
417
+ task.updatedAt = Date.now();
418
+ for (const control of selected) this.transitionControl(task, control.id, "applied", { boundary });
419
+ }
363
420
  return selected.map(toInjectedMessage);
364
421
  };
365
422
  return {
@@ -367,12 +424,12 @@ var InMemorySubagentTaskStore = class {
367
424
  signal: task.controller.signal,
368
425
  shouldPreempt: () => task.status === "running" && task.controls.some((control) => control.action === "interrupt"),
369
426
  drain: (boundary) => {
370
- if (boundary === "preempt") return take((control) => control.action === "interrupt");
371
- if (boundary === "tool") return take((control) => control.action !== "queue");
372
- return take(() => true);
427
+ if (boundary === "preempt") return take(boundary, (control) => control.action === "interrupt");
428
+ if (boundary === "tool") return take(boundary, (control) => control.action !== "queue");
429
+ return take(boundary, () => true);
373
430
  },
374
431
  closeTurn: () => {
375
- const messages = take(() => true);
432
+ const messages = take("turn", () => true);
376
433
  if (messages.length > 0) return {
377
434
  closed: false,
378
435
  messages
@@ -1 +1 @@
1
- {"version":3,"file":"InMemorySubagentTaskStore.mjs","names":[],"sources":["../../../../src/tools/subagent/InMemorySubagentTaskStore.ts"],"mappings":"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"}
1
+ {"version":3,"file":"InMemorySubagentTaskStore.mjs","names":[],"sources":["../../../../src/tools/subagent/InMemorySubagentTaskStore.ts"],"mappings":"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"}
@@ -2,6 +2,20 @@ import "../common/enum.mjs";
2
2
  import "../common/index.mjs";
3
3
  import { getProviderFamily } from "../llm/providerRegistry.mjs";
4
4
  //#region src/utils/llm.ts
5
+ const OPENAI_FAMILY_LC_NAMES = new Set(["LibreChatOpenAI", "LibreChatAzureOpenAI"]);
6
+ function constructorChainHasLcName(model, names) {
7
+ if (typeof model !== "object" || model == null) return false;
8
+ let ctor = model.constructor;
9
+ while (typeof ctor === "function") {
10
+ const lcName = ctor.lc_name?.();
11
+ if (lcName != null && names.has(lcName)) return true;
12
+ ctor = Object.getPrototypeOf(ctor);
13
+ }
14
+ return false;
15
+ }
16
+ function isLibreChatOpenAIModel(model) {
17
+ return constructorChainHasLcName(model, OPENAI_FAMILY_LC_NAMES);
18
+ }
5
19
  function isOpenAILike(provider) {
6
20
  if (provider == null) return false;
7
21
  return getProviderFamily(provider) === "openai" || [
@@ -23,6 +37,6 @@ function isAnthropicLike(provider, clientOptions) {
23
37
  return false;
24
38
  }
25
39
  //#endregion
26
- export { isAnthropicLike, isGoogleLike, isOpenAILike };
40
+ export { constructorChainHasLcName, isAnthropicLike, isGoogleLike, isLibreChatOpenAIModel, isOpenAILike };
27
41
 
28
42
  //# sourceMappingURL=llm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.mjs","names":[],"sources":["../../../src/utils/llm.ts"],"mappings":";;;;AAKA,SAAgB,aAAa,UAAkC;CAC7D,IAAI,YAAY,MACd,OAAO;CAET,OACE,kBAAkB,QAAQ,MAAM,YAE9B;;;;;;CAMA,CAAC,CACD,SAAS,QAAQ;AAEvB;AAEA,SAAgB,aAAa,UAAkC;CAC7D,IAAI,YAAY,MACd,OAAO;CAET,OACE,kBAAkB,QAAQ,MAAM,YAC/B,CAAA,UAAA,UAAqC,CAAC,CAAc,SAAS,QAAQ;AAE1E;AAGA,SAAgB,gBACd,UACA,eACS;CACT,MAAM,SAAS,YAAY,OAAO,KAAA,IAAY,kBAAkB,QAAQ;CACxE,IAAI,aAAA,eAAoC,WAAW,aAAa,OAAO;CACvE,IAAI,aAAA,aAAkC,WAAW,WAC/C,OACE,eAAe,SAAS,QACxB,UAAU,KAAK,OAAO,cAAc,KAAK,CAAC;CAG9C,OAAO;AACT"}
1
+ {"version":3,"file":"llm.mjs","names":[],"sources":["../../../src/utils/llm.ts"],"mappings":";;;;AAKA,MAAM,yBAA8C,IAAI,IAAI,CAC1D,mBACA,sBACF,CAAC;AAMD,SAAgB,0BACd,OACA,OACS;CACT,IAAI,OAAO,UAAU,YAAY,SAAS,MACxC,OAAO;CAET,IAAI,OAAgB,MAAM;CAC1B,OAAO,OAAO,SAAS,YAAY;EACjC,MAAM,SAAU,KAAoC,UAAU;EAC9D,IAAI,UAAU,QAAQ,MAAM,IAAI,MAAM,GACpC,OAAO;EAET,OAAO,OAAO,eAAe,IAAI;CACnC;CACA,OAAO;AACT;AAMA,SAAgB,uBACd,OAGyC;CACzC,OAAO,0BAA0B,OAAO,sBAAsB;AAChE;AAEA,SAAgB,aAAa,UAAkC;CAC7D,IAAI,YAAY,MACd,OAAO;CAET,OACE,kBAAkB,QAAQ,MAAM,YAE9B;;;;;;CAMA,CAAC,CACD,SAAS,QAAQ;AAEvB;AAEA,SAAgB,aAAa,UAAkC;CAC7D,IAAI,YAAY,MACd,OAAO;CAET,OACE,kBAAkB,QAAQ,MAAM,YAC/B,CAAA,UAAA,UAAqC,CAAC,CAAc,SAAS,QAAQ;AAE1E;AAGA,SAAgB,gBACd,UACA,eACS;CACT,MAAM,SAAS,YAAY,OAAO,KAAA,IAAY,kBAAkB,QAAQ;CACxE,IAAI,aAAA,eAAoC,WAAW,aAAa,OAAO;CACvE,IAAI,aAAA,aAAkC,WAAW,WAC/C,OACE,eAAe,SAAS,QACxB,UAAU,KAAK,OAAO,cAAc,KAAK,CAAC;CAG9C,OAAO;AACT"}
@@ -150,6 +150,8 @@ export declare class AgentContext {
150
150
  * - `'none'`: no summary present
151
151
  */
152
152
  private _summaryLocation;
153
+ /** Whether a mid-run summary must appear before every retained message. */
154
+ private summaryPrecedesMessages;
153
155
  /**
154
156
  * Durable summary that survives reset() calls. Set from initialSummary
155
157
  * during fromConfig() and updated by setSummary() so that the latest
@@ -158,6 +160,7 @@ export declare class AgentContext {
158
160
  */
159
161
  private _durableSummaryText?;
160
162
  private _durableSummaryTokenCount;
163
+ private durableSummaryPrecedesMessages;
161
164
  /** Number of summarization cycles that have occurred for this agent context */
162
165
  private _summaryVersion;
163
166
  /**
@@ -348,7 +351,9 @@ export declare class AgentContext {
348
351
  * Call this when resetting the agent or when handoff context is no longer relevant.
349
352
  */
350
353
  clearHandoffContext(): void;
351
- setSummary(text: string, tokenCount: number): void;
354
+ setSummary(text: string, tokenCount: number, options?: {
355
+ precedesMessages?: boolean;
356
+ }): void;
352
357
  /** Sets a cross-run summary that is injected into the system prompt. */
353
358
  setInitialSummary(text: string, tokenCount: number): void;
354
359
  /**
@@ -39,13 +39,13 @@ export * from './langchain';
39
39
  export { Command, INTERRUPT, interrupt, MemorySaver, BaseCheckpointSaver, isInterrupted, } from '@langchain/langgraph';
40
40
  export type { Interrupt } from '@langchain/langgraph';
41
41
  export { markTokenCounterCacheCompatible } from './llm/tokenCounterCacheCompatibility';
42
- export { CustomOpenAIClient } from './llm/openai';
43
- export { ChatOpenRouter } from './llm/openrouter';
42
+ /** Provider chat-model classes moved off the root barrel: importing any of them here
43
+ * forced every host to pay that provider SDK's module init at boot. They remain
44
+ * available from their own entries, e.g. `@librechat/agents/llm/openai`. */
44
45
  export type { OpenRouterReasoning, OpenRouterReasoningEffort, ChatOpenRouterCallOptions, } from './llm/openrouter';
45
46
  export { getChatModelClass } from './llm/providers';
46
47
  export { registerProvider } from './provider-registration';
47
48
  export type { ProviderFamily, ProviderRegistrationOptions, } from './provider-registration';
48
- export { CustomChatMistralAI } from './llm/mistral';
49
49
  export { smoothStream, resolveStreamDelay, DEFAULT_STREAM_DELAY, computeAdaptivePieceSize, } from './llm/stream/smoother';
50
50
  export type { SmoothItem, SmoothPiece } from './llm/stream/smoother';
51
51
  export { FakeChatModel, createFakeStreamingLLM } from './llm/fake';
@@ -0,0 +1,8 @@
1
+ /** False when the package runs from TypeScript source, where dist siblings do
2
+ * not exist and lazily loadable modules must be registered up front. */
3
+ export declare function isBuiltRuntime(): boolean;
4
+ export declare function registerSourceModeModules(modules: Record<string, unknown>): void;
5
+ /** Loads a module of this package by its src-relative path, e.g. `llm/openai/index`. */
6
+ export declare function requireInternalModule<T>(relativePath: string): T;
7
+ /** Loads a third-party package on first use; identity-sensitive callers must not use this. */
8
+ export declare function requireLazyModule<T>(specifier: string): T;
@@ -1,11 +1,22 @@
1
1
  import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
2
2
  import type { ProviderFamily, ProviderRegistrationOptions } from '../provider-registration';
3
3
  import type { ProviderModelConstructor, ProviderName } from '@/types';
4
+ type ProviderModelClass = new (config: never) => BaseChatModel;
4
5
  /** Registers one host provider until the returned disposer is called. */
5
6
  export declare function registerProvider<TOptions extends object, TModel extends BaseChatModel>(options: ProviderRegistrationOptions<TOptions, TModel>): () => void;
6
7
  /** Initializes one built-in for the current package module graph. */
7
8
  export declare function registerBuiltInProvider<TOptions extends object, TModel extends BaseChatModel>(options: ProviderRegistrationOptions<TOptions, TModel>): void;
9
+ interface BuiltInProviderLoaderOptions {
10
+ provider: ProviderName;
11
+ loadModel: () => ProviderModelClass;
12
+ family?: ProviderFamily;
13
+ manualToolStream?: boolean;
14
+ strictAlternation?: boolean;
15
+ }
16
+ /** Registers a built-in whose provider SDK loads on first use, not at import time. */
17
+ export declare function registerBuiltInProviderLoader(options: BuiltInProviderLoaderOptions): void;
8
18
  export declare function getRegisteredChatModelClass<P extends ProviderName>(provider: P): ProviderModelConstructor<P>;
9
19
  export declare function getProviderFamily(provider: ProviderName): ProviderFamily | undefined;
10
20
  export declare function providerUsesManualToolStream(provider: ProviderName): boolean;
11
21
  export declare function providerRequiresStrictAlternation(provider: ProviderName): boolean;
22
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,12 @@
1
- import type { BaseMessage } from '@langchain/core/messages';
1
+ import type { BaseMessage, MessageContentComplex } from '@langchain/core/messages';
2
2
  /**
3
3
  * Whether {@link formatContentStrings} will flatten this message's content:
4
4
  * a human/ai/system message whose content is an array of text-only blocks.
5
5
  */
6
6
  export declare const isLegacyConvertible: (message: BaseMessage) => boolean;
7
+ /** Joins the text of {@link isLegacyConvertible} content blocks into the exact
8
+ * string {@link formatContentStrings} has always produced for them. */
9
+ export declare const flattenLegacyContent: (blocks: MessageContentComplex[]) => string;
7
10
  /**
8
11
  * Formats an array of messages for LangChain, making sure all content fields are strings
9
12
  * @param {Array<HumanMessage | AIMessage | SystemMessage | ToolMessage>} payload - The array of messages to format.
@@ -18,6 +18,8 @@ export type ResponsesReplayPosition = {
18
18
  kind: 'message' | 'output' | 'reasoning' | 'text';
19
19
  outputIndex: number;
20
20
  };
21
+ /** Drops incomplete streamed text blocks before provider-facing tool shaping. */
22
+ export declare function dropIncompleteToolStreamContent(content: AIMessage['content']): AIMessage['content'];
21
23
  /** Applies sealed-Responses safety and drops incomplete streamed text input. */
22
24
  export declare function projectToolStreamContentForProvider(messages: BaseMessage[], responsesReplayProjection?: ResponsesReplayProjection, maxChars?: number): BaseMessage[];
23
25
  /** Projects OpenAI-compatible tool content without changing parsed call parents. */
@@ -91,6 +91,12 @@ interface LangChainMessage {
91
91
  export declare const formatFromLangChain: (message: LangChainMessage) => Record<string, any>;
92
92
  interface FormatAgentMessagesOptions {
93
93
  provider?: ProviderName;
94
+ /** Emit flattenable text content as the joined string the legacy-content
95
+ * projection would produce, so the per-request `formatContentStrings` pass
96
+ * finds nothing to convert and every history message keeps its identity —
97
+ * which is what lets exact-count reuse skip re-tokenizing it. Set this if
98
+ * and only if the run's provider uses legacy string content. */
99
+ legacyContent?: boolean;
94
100
  /** Reconstruct hidden `reasoning_content` from `THINK` parts onto prior
95
101
  * tool-call messages. Explicit opt-in for OpenAI-compatible endpoints that
96
102
  * replay reasoning across turns; defaults to on for DeepSeek thinking-mode. */
@@ -16,3 +16,4 @@ export * from './reducer';
16
16
  export * from './recency';
17
17
  export * from './assistantPhase';
18
18
  export * from './provenance';
19
+ export * from './projectionInvariant';
@@ -0,0 +1,25 @@
1
+ import type { BaseMessage } from '@langchain/core/messages';
2
+ export type ProviderMessageProjectionInvariantMode = 'off' | 'observe' | 'assert';
3
+ export type ProviderMessageProjectionIssueCode = 'absent_provenance' | 'invalid_provenance' | 'unsourced_non_synthetic_part';
4
+ export interface ProviderMessageProjectionInvariantIssue {
5
+ readonly code: ProviderMessageProjectionIssueCode;
6
+ readonly messageIndex: number;
7
+ readonly messageType: string;
8
+ }
9
+ export interface ProviderMessageProjectionInvariantReport {
10
+ readonly valid: boolean;
11
+ readonly messageCount: number;
12
+ readonly sourceBackedMessageCount: number;
13
+ readonly syntheticMessageCount: number;
14
+ readonly gapMessageCount: number;
15
+ readonly issues: readonly ProviderMessageProjectionInvariantIssue[];
16
+ }
17
+ /** Resolves the opt-in provider projection invariant without enabling it for
18
+ * unrecognized values. */
19
+ export declare function resolveProviderMessageProjectionInvariantMode(value?: string | undefined): ProviderMessageProjectionInvariantMode;
20
+ /** Inspects provider-bound lineage without reading message content or source ids. */
21
+ export declare function inspectProviderMessageProjection(messages: readonly BaseMessage[]): ProviderMessageProjectionInvariantReport;
22
+ export declare class ProviderMessageProjectionInvariantError extends Error {
23
+ readonly report: ProviderMessageProjectionInvariantReport;
24
+ constructor(report: ProviderMessageProjectionInvariantReport);
25
+ }
@@ -73,6 +73,16 @@ export declare function hasBijectiveProviderContentPartMapping(parts: readonly P
73
73
  export declare function getProviderSourceMessageIds(message: BaseMessage): string[];
74
74
  /** Replaces typed provenance and synchronizes its stable plural source ids. */
75
75
  export declare function setProviderMessageProvenance(message: BaseMessage, parts: readonly ProviderMessageProvenancePart[]): void;
76
+ /**
77
+ * {@link setProviderMessageProvenance} for a message the caller itself just
78
+ * constructed from locally built plain objects. Such a message cannot carry
79
+ * proxies, accessors, or foreign aliases in `additional_kwargs`/`lc_kwargs`,
80
+ * so the publication skips the hardened descriptor walks while producing the
81
+ * same end state: fresh replacement objects on both slots, with the
82
+ * serialization mirror aliasing the live kwargs. Never call this with a
83
+ * message received across a seam — that is what the hardened variant is for.
84
+ */
85
+ export declare function setFreshProviderMessageProvenance(message: BaseMessage, parts: readonly ProviderMessageProvenancePart[]): void;
76
86
  /** Publishes the canonical fail-closed marker for malformed provenance. */
77
87
  export declare function setInvalidProviderMessageProvenance(message: BaseMessage): void;
78
88
  /** Marks a provider-visible runtime message as host-generated context. */
@@ -211,12 +211,13 @@ export declare function preFlightTruncateToolResults(params: {
211
211
  export declare function serializeToolCallInput(input: unknown, maxChars?: number): string;
212
212
  /** Per-input cap: 15% of context at ~4 chars/token, never above 200K chars. */
213
213
  export declare function calculateMaxToolCallInputChars(maxContextTokens?: number): number;
214
+ /** Projects all historical tool-call input representations to bounded values. */
215
+ export declare function projectToolCallInputs(messages: BaseMessage[], maxInputChars: number): BaseMessage[];
214
216
  /**
215
- * Projects historical tool-call inputs into a provider-safe bounded form.
216
- * Returns the original array when no message changes and otherwise clones only
217
- * the array and AI messages whose inline input or `tool_calls` args changed.
217
+ * Derives provider-safe tool history in one pass by dropping incomplete stream
218
+ * content and bounding every provider-consumed tool-call input representation.
218
219
  */
219
- export declare function projectToolCallInputs(messages: BaseMessage[], maxInputChars: number): BaseMessage[];
220
+ export declare function projectToolMessagesForProvider(messages: BaseMessage[], maxInputChars: number): BaseMessage[];
220
221
  export declare function preFlightTruncateToolCallInputs(params: {
221
222
  messages: BaseMessage[];
222
223
  maxContextTokens: number;
@@ -1,20 +1,21 @@
1
1
  import type { BaseMessage } from '@langchain/core/messages';
2
2
  export declare const DEFAULT_RETAIN_RECENT_TURNS = 2;
3
+ export declare const DEFAULT_INTRA_TURN_RETAIN_RATIO = 0.16;
3
4
  /**
4
5
  * Configuration for splitting a message list into a head (to be summarized)
5
6
  * and a tail (to be preserved verbatim).
6
7
  */
7
8
  export interface RecencyWindowOptions {
8
9
  /**
9
- * Maximum number of recent user-led turns to keep in the tail. A "turn"
10
- * begins at a HumanMessage and includes every following AIMessage and
11
- * ToolMessage up to (but not including) the next HumanMessage. Cutting
12
- * at turn boundaries guarantees that tool_use / tool_result pairs are
13
- * never split across the head/tail divide.
10
+ * Maximum number of recent user-led turns to keep in the tail. A "turn"
11
+ * begins at a user-authored HumanMessage and includes every following
12
+ * AIMessage and tool result up to the next user-authored HumanMessage.
13
+ * Provider-native HumanMessages containing only tool results remain in the
14
+ * current turn, so the boundary cannot split them from their calls.
14
15
  *
15
- * The most recent turn is always preserved regardless of this value or
16
- * the token cap, so that a single oversized first message is never
17
- * destroyed by summarization.
16
+ * The most recent turn is preserved unless `intraTurnTokens` enables the
17
+ * pairing-balanced fallback for a tool-heavy history. A lone oversized user
18
+ * message is never eligible for that fallback.
18
19
  *
19
20
  * Defaults to `2`. A value of `0` disables the recency window (head =
20
21
  * everything, tail = empty), restoring the pre-recency-window behavior.
@@ -32,29 +33,40 @@ export interface RecencyWindowOptions {
32
33
  tokens?: number;
33
34
  /** Token-counter used to evaluate the optional `tokens` cap. */
34
35
  tokenCounter?: (m: BaseMessage) => number;
36
+ /**
37
+ * Minimum token budget to retain when the turn window would otherwise make
38
+ * the whole history indivisible. When set with `tokenCounter`, older closed
39
+ * tool-call/result units may be summarized from within the earliest retained
40
+ * turn. A lone user payload and open tool units remain indivisible.
41
+ */
42
+ intraTurnTokens?: number;
35
43
  }
36
44
  export interface RecencySplit {
37
45
  /** Older messages eligible for summarization. Empty when nothing to summarize. */
38
46
  head: BaseMessage[];
39
- /** Recent messages preserved verbatim. Always contains the most recent turn when any HumanMessage exists. */
47
+ /** Recent messages preserved verbatim, beginning at a pairing-balanced boundary. */
40
48
  tail: BaseMessage[];
41
49
  /** Number of user-led turns retained in the tail (0 if no HumanMessage exists). */
42
50
  tailTurnCount: number;
43
51
  /** Index in the original `messages` array where the tail begins. */
44
52
  tailStartIndex: number;
53
+ /** True when the pairing-balanced fallback selected the boundary. */
54
+ usedIntraTurnFallback: boolean;
45
55
  }
56
+ export declare function resolveIntraTurnRetainTokens({ tokens, maxContextTokens, }: {
57
+ tokens?: number;
58
+ maxContextTokens?: number;
59
+ }): number | undefined;
46
60
  /**
47
61
  * Splits `messages` into a head (older, to summarize) and a tail (recent,
48
- * to preserve verbatim) at user-message boundaries. The most recent
49
- * user-led turn is always included in the tail; additional older turns
50
- * are added subject to `turns` and `tokens` caps.
62
+ * to preserve verbatim), preferring user-message boundaries. The most recent
63
+ * user-led turn is normally included in the tail; additional older turns are
64
+ * added subject to `turns` and `tokens` caps.
51
65
  *
52
- * Cutting strictly at HumanMessage boundaries ensures that:
53
- * - tool_use tool_result pairs are never split (they always live within
54
- * the same turn);
55
- * - the first user message is never replaced by a summary, addressing
56
- * the "first turn destruction" failure mode where a single large
57
- * user-pasted payload would otherwise be replaced by a generic summary.
66
+ * When that policy exposes no compactable head, `intraTurnTokens` may select
67
+ * a boundary after older closed tool-call/result units. This keeps runaway
68
+ * first-turn tool loops compactable without splitting parallel calls from
69
+ * their results. A user payload without a completed tool unit stays intact.
58
70
  *
59
71
  * When `messages` contains no HumanMessage (degenerate state — e.g. system
60
72
  * + assistant messages from a programmatic preamble), everything is
@@ -0,0 +1,11 @@
1
+ import type { BaseMessage } from '@langchain/core/messages';
2
+ import type { SessionEntry } from './types';
3
+ export interface DerivedSessionMessages {
4
+ initialSummary?: {
5
+ text: string;
6
+ tokenCount: number;
7
+ };
8
+ messages: BaseMessage[];
9
+ }
10
+ /** Derives the active model context from one append-only session-log path. */
11
+ export declare function deriveMessages(entries: readonly SessionEntry[]): DerivedSessionMessages;
@@ -1,5 +1,7 @@
1
1
  export { AgentSession, createAgentSession } from './AgentSession';
2
+ export { deriveMessages } from './deriveMessages';
2
3
  export { JsonlSessionStore, SessionManager } from './JsonlSessionStore';
3
4
  export { createRunHandlers } from './handlers';
4
5
  export { serializeMessage, deserializeMessage, extractTextFromContent, } from './messageSerialization';
5
6
  export type { AgentSessionConfig, AgentSessionCheckpointLookupOptions, AgentSessionCheckpointReference, AgentSessionCheckpointing, AgentSessionCheckpointingOptions, AgentSessionHandlersResult, AgentSessionInput, AgentSessionRunOptions, AgentSessionRunResult, AgentSessionStream, AgentSessionStreamEvent, AgentSessionUsage, CreateSessionFileOptions, JsonObject, JsonPrimitive, JsonValue, SerializedSessionMessage, SessionBranchOptions, SessionCompactOptions, SessionCheckpointEntry, SessionCompactionEntry, SessionEntry, SessionEntryBase, SessionEntryType, SessionForkOptions, SessionHeader, SessionLabelEntry, SessionListItem, SessionMessageEntry, SessionPosition, SessionRunEventEntry, SessionStateEntry, SessionSummaryEntry, SessionTreeNode, } from './types';
7
+ export type { DerivedSessionMessages } from './deriveMessages';
@@ -1,8 +1,9 @@
1
- import type { SubagentTaskClaim, SubagentTaskControlCommand, SubagentTaskControlResult, SubagentTaskSnapshot, SubagentTaskStartRequest, SubagentTaskStartResult, SubagentTaskStore } from '@/types';
1
+ import type { SubagentTaskClaim, SubagentTaskControlCommand, SubagentTaskControlReceipt, SubagentTaskControlResult, SubagentTaskSnapshot, SubagentTaskStartRequest, SubagentTaskStartResult, SubagentTaskStore } from '@/types';
2
2
  export interface InMemorySubagentTaskStoreOptions {
3
3
  completedTtlMs?: number;
4
4
  maxControlMessageChars?: number;
5
5
  maxControlsPerTask?: number;
6
+ maxControlReceiptsPerTask?: number;
6
7
  maxErrorChars?: number;
7
8
  maxResultChars?: number;
8
9
  maxRunningPerScope?: number;
@@ -25,6 +26,14 @@ export declare class InMemorySubagentTaskStore implements SubagentTaskStore {
25
26
  private runningTasks;
26
27
  private totalTasks;
27
28
  constructor(options?: InMemorySubagentTaskStoreOptions);
29
+ /**
30
+ * Payload-free transition seam for hosts that durably project authoritative
31
+ * receipts. Implementations must return synchronously, must not reproduce
32
+ * task-store transition rules, and cannot veto task-store state transitions:
33
+ * hook failures are deliberately isolated by the caller.
34
+ */
35
+ protected onControlReceipt(_scopeId: string, _taskId: string, _receipt: SubagentTaskControlReceipt): void;
36
+ private emitControlReceipt;
28
37
  start(request: SubagentTaskStartRequest): SubagentTaskStartResult;
29
38
  get(scopeId: string, taskId: string): SubagentTaskSnapshot | undefined;
30
39
  list(scopeId: string): SubagentTaskSnapshot[];
@@ -37,6 +46,9 @@ export declare class InMemorySubagentTaskStore implements SubagentTaskStore {
37
46
  private sweepBucket;
38
47
  private removeTask;
39
48
  private dropEmptyBucket;
49
+ private makeRoomForControlReceipt;
50
+ private transitionControl;
51
+ private failPendingControls;
40
52
  private scheduleExpiry;
41
53
  private clearTaskExpiry;
42
54
  private clearTaskTimeout;
@@ -452,7 +452,7 @@ export type ExecutableSubagentConfig = ResolvedSubagentConfig | LazySingleAgentS
452
452
  /** Graph-aware config accepted by the executor. Graph configs stay eager. */
453
453
  export type ExecutableSubagentConfigEntry = ExecutableSubagentConfig | GraphSubagentConfig;
454
454
  /** Lifecycle phase carried on {@link SubagentUpdateEvent}. */
455
- export type SubagentUpdatePhase = 'start' | 'run_step' | 'run_step_delta' | 'run_step_completed' | 'run_step_closed' | 'message_delta' | 'reasoning_delta' | 'stop' | 'error';
455
+ export type SubagentUpdatePhase = 'start' | 'run_step' | 'run_step_delta' | 'run_step_completed' | 'run_step_closed' | 'message_delta' | 'reasoning_delta' | 'control' | 'stop' | 'error';
456
456
  export interface SubagentAncestryEntry {
457
457
  readonly subagentRunId: string;
458
458
  readonly subagentType: string;