@memberjunction/ai-agents 5.48.0 → 5.50.0

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 (63) hide show
  1. package/README.md +14 -0
  2. package/dist/AgentRunner.d.ts.map +1 -1
  3. package/dist/AgentRunner.js +5 -0
  4. package/dist/AgentRunner.js.map +1 -1
  5. package/dist/ConversationCompactionManager.d.ts +202 -0
  6. package/dist/ConversationCompactionManager.d.ts.map +1 -0
  7. package/dist/ConversationCompactionManager.js +399 -0
  8. package/dist/ConversationCompactionManager.js.map +1 -0
  9. package/dist/ConversationToolManager.d.ts +154 -0
  10. package/dist/ConversationToolManager.d.ts.map +1 -0
  11. package/dist/ConversationToolManager.js +336 -0
  12. package/dist/ConversationToolManager.js.map +1 -0
  13. package/dist/agent-types/loop-agent-prompt-params.d.ts +8 -0
  14. package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
  15. package/dist/agent-types/loop-agent-prompt-params.js +1 -0
  16. package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
  17. package/dist/agent-types/loop-agent-response-type.d.ts +10 -1
  18. package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
  19. package/dist/agent-types/loop-agent-response-type.js.map +1 -1
  20. package/dist/agent-types/loop-agent-type.d.ts +23 -34
  21. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  22. package/dist/agent-types/loop-agent-type.js +75 -2
  23. package/dist/agent-types/loop-agent-type.js.map +1 -1
  24. package/dist/base-agent.d.ts +314 -4
  25. package/dist/base-agent.d.ts.map +1 -1
  26. package/dist/base-agent.js +863 -95
  27. package/dist/base-agent.js.map +1 -1
  28. package/dist/conversation-history-format.d.ts +19 -0
  29. package/dist/conversation-history-format.d.ts.map +1 -0
  30. package/dist/conversation-history-format.js +40 -0
  31. package/dist/conversation-history-format.js.map +1 -0
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +4 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/prior-turn-tool-result-cache.d.ts +71 -0
  37. package/dist/prior-turn-tool-result-cache.d.ts.map +1 -0
  38. package/dist/prior-turn-tool-result-cache.js +85 -0
  39. package/dist/prior-turn-tool-result-cache.js.map +1 -0
  40. package/dist/realtime/realtime-client-session-service.d.ts +8 -1
  41. package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
  42. package/dist/realtime/realtime-client-session-service.js +44 -14
  43. package/dist/realtime/realtime-client-session-service.js.map +1 -1
  44. package/dist/realtime/realtime-coagent-config.d.ts +41 -0
  45. package/dist/realtime/realtime-coagent-config.d.ts.map +1 -1
  46. package/dist/realtime/realtime-coagent-config.js +69 -0
  47. package/dist/realtime/realtime-coagent-config.js.map +1 -1
  48. package/dist/realtime/realtime-session-runner.d.ts +72 -1
  49. package/dist/realtime/realtime-session-runner.d.ts.map +1 -1
  50. package/dist/realtime/realtime-session-runner.js +215 -13
  51. package/dist/realtime/realtime-session-runner.js.map +1 -1
  52. package/dist/realtime/realtime-tool-broker.d.ts +7 -2
  53. package/dist/realtime/realtime-tool-broker.d.ts.map +1 -1
  54. package/dist/realtime/realtime-tool-broker.js +13 -10
  55. package/dist/realtime/realtime-tool-broker.js.map +1 -1
  56. package/dist/realtime/realtime-turn-moderator.d.ts.map +1 -1
  57. package/dist/realtime/realtime-turn-moderator.js +0 -1
  58. package/dist/realtime/realtime-turn-moderator.js.map +1 -1
  59. package/dist/tool-result-format.d.ts +78 -0
  60. package/dist/tool-result-format.d.ts.map +1 -0
  61. package/dist/tool-result-format.js +46 -0
  62. package/dist/tool-result-format.js.map +1 -0
  63. package/package.json +18 -18
@@ -53,10 +53,72 @@ import { ConversationMessageResolver } from '../utils/ConversationMessageResolve
53
53
  * }
54
54
  * ```
55
55
  */
56
+ /**
57
+ * Maximum consecutive turns the inline-read-tool pre-emption may force before the
58
+ * terminal step is honored anyway. The pre-emption retries are deliberately
59
+ * "productive" (exempt from the unproductive-retry limit) because each one injects
60
+ * fresh tool results — but a model that insists on terminal-plus-read-tools every
61
+ * turn must not be able to extend the run indefinitely on that exemption.
62
+ */
63
+ const MAX_CONSECUTIVE_READ_TOOL_PREEMPTIONS = 3;
56
64
  let LoopAgentType = class LoopAgentType extends BaseAgentType {
57
65
  constructor() {
58
66
  super(...arguments);
59
67
  this._evaluator = new SafeExpressionEvaluator();
68
+ /**
69
+ * Consecutive inline-read-tool pre-emptions forced so far. Per-run safe: a fresh
70
+ * LoopAgentType instance is created for each agent run (ClassFactory.CreateInstance
71
+ * in BaseAgentType.GetAgentTypeInstance). Reset whenever a response arrives without
72
+ * the terminal-step-plus-read-tools combination.
73
+ */
74
+ this.consecutiveReadToolPreemptions = 0;
75
+ }
76
+ /**
77
+ * Handles the terminal-step-plus-inline-read-tools combination. Inline READ tools
78
+ * (artifact/conversation) are yield/await: results arrive on the NEXT turn, so a
79
+ * terminal step in the same response would orphan them — the tools execute and inject
80
+ * their results, but the run ends and the user gets "one moment…" and silence. Mirrors
81
+ * the Pipeline/client-tools pre-emption: force one more (non-terminal) turn so the LLM
82
+ * responds after reading the results. taskComplete + clientTools is excluded — the
83
+ * ClientTools path already re-enters the loop and consumes the injected results.
84
+ * memoryWrites/scratchpad are fire-and-forget writes and never trigger pre-emption.
85
+ *
86
+ * @returns The forced Retry step, or null when no pre-emption applies — including when
87
+ * the consecutive cap is reached (the caller then honors the terminal step; pre-emption
88
+ * retries are exempt from the unproductive-retry limit, so without the ceiling the
89
+ * combination could extend a run indefinitely).
90
+ */
91
+ buildReadToolPreemptionStep(response, hasClientTools) {
92
+ const hasInlineReadTools = (response.artifactToolCalls?.length || 0) + (response.conversationToolCalls?.length || 0) > 0;
93
+ const wantsTerminalStep = response.nextStep?.type === 'Chat' || (response.taskComplete === true && !hasClientTools);
94
+ if (!(hasInlineReadTools && wantsTerminalStep)) {
95
+ this.consecutiveReadToolPreemptions = 0;
96
+ return null;
97
+ }
98
+ if (this.consecutiveReadToolPreemptions >= MAX_CONSECUTIVE_READ_TOOL_PREEMPTIONS) {
99
+ LogStatusEx({
100
+ message: `⚠️ Loop Agent: terminal step + inline read tools recurred ${MAX_CONSECUTIVE_READ_TOOL_PREEMPTIONS} consecutive turns — honoring the terminal step instead of forcing another turn`
101
+ });
102
+ return null;
103
+ }
104
+ this.consecutiveReadToolPreemptions++;
105
+ LogStatusEx({
106
+ message: '🔁 Loop Agent: inline tool call(s) combined with a terminal step — forcing one more turn so the results can be read',
107
+ verboseOnly: true
108
+ });
109
+ return this.createNextStep('Retry', {
110
+ terminate: false,
111
+ artifactToolCalls: response.artifactToolCalls,
112
+ conversationToolCalls: response.conversationToolCalls,
113
+ memoryWrites: response.memoryWrites,
114
+ scratchpad: response.scratchpad,
115
+ payloadChangeRequest: response.payloadChangeRequest,
116
+ reasoning: response.reasoning,
117
+ confidence: response.confidence
118
+ // deliberately NO errorMessage/message/retryInstructions: that keeps this
119
+ // retry "productive" (only errorMessage-bearing retries count toward the
120
+ // unproductive-retry limit) and suppresses the "Retrying due to:" message.
121
+ });
60
122
  }
61
123
  async InitializeAgentTypeState(params) {
62
124
  // Loop agents do not require agent-type specific state initialization
@@ -116,12 +178,20 @@ let LoopAgentType = class LoopAgentType extends BaseAgentType {
116
178
  terminate: false,
117
179
  scratchpad: response.scratchpad,
118
180
  artifactToolCalls: response.artifactToolCalls,
181
+ conversationToolCalls: response.conversationToolCalls,
119
182
  memoryWrites: response.memoryWrites,
120
183
  payloadChangeRequest: response.payloadChangeRequest,
121
184
  reasoning: response.reasoning,
122
185
  confidence: response.confidence
123
186
  });
124
187
  }
188
+ // Computed once here — consumed by the read-tool pre-emption AND the
189
+ // taskComplete gate below (client tools are yield/await, see both sites).
190
+ const hasClientTools = (response.nextStep?.clientTools?.length || 0) > 0;
191
+ const preemptionStep = this.buildReadToolPreemptionStep(response, hasClientTools);
192
+ if (preemptionStep) {
193
+ return preemptionStep;
194
+ }
125
195
  // Check for Chat nextStep BEFORE checking taskComplete
126
196
  // This allows agents to ask for user clarification even when taskComplete=true
127
197
  if (response.nextStep?.type === 'Chat') {
@@ -138,6 +208,7 @@ let LoopAgentType = class LoopAgentType extends BaseAgentType {
138
208
  payloadChangeRequest: response.payloadChangeRequest,
139
209
  scratchpad: response.scratchpad,
140
210
  artifactToolCalls: response.artifactToolCalls,
211
+ conversationToolCalls: response.conversationToolCalls,
141
212
  memoryWrites: response.memoryWrites,
142
213
  responseForm: response.responseForm,
143
214
  actionableCommands: response.actionableCommands,
@@ -150,8 +221,8 @@ let LoopAgentType = class LoopAgentType extends BaseAgentType {
150
221
  // Client tools are yield/await: the LLM can't know the result until they execute.
151
222
  // After tools run, executeClientToolsStep calls executePromptStep which re-enters
152
223
  // the LLM loop. If taskComplete was true, the LLM will naturally complete on the
153
- // next iteration after seeing tool results.
154
- const hasClientTools = response.nextStep?.clientTools && response.nextStep.clientTools.length > 0;
224
+ // next iteration after seeing tool results. (hasClientTools is computed above,
225
+ // where the inline read-tool pre-emption also consults it.)
155
226
  if (response.taskComplete && !hasClientTools) {
156
227
  LogStatusEx({
157
228
  message: '✅ Loop Agent: Task completed successfully. Message: ' + response.message,
@@ -164,6 +235,7 @@ let LoopAgentType = class LoopAgentType extends BaseAgentType {
164
235
  payloadChangeRequest: response.payloadChangeRequest,
165
236
  scratchpad: response.scratchpad,
166
237
  artifactToolCalls: response.artifactToolCalls,
238
+ conversationToolCalls: response.conversationToolCalls,
167
239
  memoryWrites: response.memoryWrites,
168
240
  responseForm: response.responseForm,
169
241
  actionableCommands: response.actionableCommands,
@@ -179,6 +251,7 @@ let LoopAgentType = class LoopAgentType extends BaseAgentType {
179
251
  payloadChangeRequest: response.payloadChangeRequest,
180
252
  scratchpad: response.scratchpad,
181
253
  artifactToolCalls: response.artifactToolCalls,
254
+ conversationToolCalls: response.conversationToolCalls,
182
255
  memoryWrites: response.memoryWrites,
183
256
  terminate: response.taskComplete,
184
257
  responseForm: response.responseForm,
@@ -1 +1 @@
1
- {"version":3,"file":"loop-agent-type.js","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-agent-type.js","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,9 @@ import { type CodeLang } from '@memberjunction/context-crush/code';
19
19
  import { RealtimeSessionRunnerDeps } from './realtime/realtime-session-runner.js';
20
20
  import { RealtimeCoAgentConfig } from './realtime/realtime-coagent-config.js';
21
21
  import { AIEngine } from '@memberjunction/aiengine';
22
+ import { CompactionOutcome, EffectiveContextBudget } from './ConversationCompactionManager.js';
23
+ import { ConversationToolCall, ConversationToolExecutionResult, ConversationToolSummaryHost } from './ConversationToolManager.js';
24
+ import { CarryForwardStepRecord } from './tool-result-format.js';
22
25
  import { AgentPreExecutionRAGResult } from './agent-pre-execution-rag.js';
23
26
  import { AIPromptParams, AIPromptRunResult, ExecuteAgentParams, AgentConfiguration, ExecuteAgentResult, AgentAction, AgentSubAgentRequest, BaseAgentNextStep, MessageLifecycleEvent, AgentChatMessage, AIModelSelectionInfo, ActionChange, ActionChangeScope, SubAgentChange, MediaOutput, FileOutputRef, SecondaryScopeConfig, SecondaryScopeValue, AgentResponseForm, AgentPipelineRequest, AgentSkillActivationRequest, AgentSkillInvocation } from '@memberjunction/ai-core-plus';
24
27
  import { MJActionEntityExtended, ActionResult } from '@memberjunction/actions-base';
@@ -112,6 +115,26 @@ export declare class BaseAgent {
112
115
  * @private
113
116
  */
114
117
  private _activeProvider;
118
+ /**
119
+ * The (wrapped) params of the run currently executing — captured so lifecycle hooks
120
+ * that don't receive params (e.g. the post-turn compaction check inside
121
+ * {@link finalizeAgentRun}) can read conversationId / verbose / provider.
122
+ * @private
123
+ */
124
+ private _executeParams;
125
+ /**
126
+ * The agent configuration loaded for the current run — captured so the cross-turn
127
+ * compaction hooks can resolve type-level budget defaults without re-loading.
128
+ * @private
129
+ */
130
+ private _agentConfig;
131
+ /**
132
+ * Model selection from the most recent prompt execution of this run. Cross-turn
133
+ * compaction resolves its effective budget against "the model about to run"; the
134
+ * last prompt's selection is the best available proxy for the next turn's model.
135
+ * @private
136
+ */
137
+ private _lastModelSelectionInfo;
115
138
  /**
116
139
  * Returns the active metadata provider for this agent run. Subclasses MUST
117
140
  * use this getter (rather than `new Metadata()` or `Metadata.Provider`) so
@@ -401,6 +424,11 @@ export declare class BaseAgent {
401
424
  * Allows agents to explore input artifacts on demand.
402
425
  */
403
426
  private _artifactToolManager;
427
+ /**
428
+ * Manages conversation-history retrieval tools for the current agent run.
429
+ * Armed only when the run has a conversationId (the cross-turn context gate).
430
+ */
431
+ private _conversationToolManager;
404
432
  /**
405
433
  * Manages in-flight durable memory writes for the current agent run.
406
434
  * Only consulted when the agent has AllowMemoryWrite enabled.
@@ -627,11 +655,30 @@ export declare class BaseAgent {
627
655
  * @returns The finalized {@link ExecuteAgentResult}.
628
656
  */
629
657
  /**
630
- * In-flight realtime turn rows keyed by transcript role (`'user'`/`'assistant'`), driving the
631
- * create-on-start / update-on-complete persistence lifecycle. Reset at the start of every
632
- * realtime session so a prior run can never leak an in-flight id into the next.
658
+ * The current realtime turn row per transcript role (`'user'`/`'assistant'`), driving the
659
+ * create-on-start / update-on-complete persistence lifecycle. `open` is true while the row is an
660
+ * unfinalized In-Progress interim (so subsequent interim deltas fold into it and a following final
661
+ * finalizes it in place); it flips false once finalized, but the entry is KEPT so a streamed
662
+ * `ReplacesPrevious` re-final can still update the same row. A new turn is detected when the next
663
+ * interim (or non-replacing final) arrives with the current entry already closed. Reset at the
664
+ * start of every realtime session so a prior run can never leak a row id into the next.
633
665
  */
634
666
  private realtimeInFlightTurns;
667
+ /**
668
+ * Per-role serialization queue for transcript persistence.
669
+ *
670
+ * The runner dispatches provider transcript frames FIRE-AND-FORGET (`void this.handleTranscript(t)`),
671
+ * so frames for the same role can be in flight CONCURRENTLY. {@link persistRealtimeTranscript} does a
672
+ * check-then-act on {@link realtimeInFlightTurns} that spans `await`s (GetEntityObject / Load / Save):
673
+ * without serialization, two captions arriving a few ms apart both observe "no tracked row yet", both
674
+ * take the create branch, and the turn is persisted TWICE. Observed in production against a streamed
675
+ * Grok session (two byte-identical rows, the second created 17ms before the first's final update).
676
+ *
677
+ * Each role's calls are therefore chained through this map so the read-modify-write is atomic with
678
+ * respect to other frames of the SAME role. Roles are independent (separate `realtimeInFlightTurns`
679
+ * entries), so they are not serialized against each other. Reset per session alongside the turn map.
680
+ */
681
+ private realtimePersistQueues;
635
682
  /** Active audio recording controller for the current realtime session, or `null` when recording is off. */
636
683
  private realtimeRecording;
637
684
  /** Storage account id the active recording stores to (RecordingStorageProviderID ?? AttachmentStorageProviderID). */
@@ -870,6 +917,24 @@ export declare class BaseAgent {
870
917
  * @returns The created row id on first creation of a turn, else `null`.
871
918
  */
872
919
  private persistRealtimeTranscript;
920
+ /**
921
+ * Waits for every role's queued transcript writes to settle.
922
+ *
923
+ * Transcript frames are dispatched fire-and-forget, so writes for the last turns of a session can
924
+ * still be in flight at teardown. The session runner calls this during `Stop()` — after the provider
925
+ * session is closed, so no new frames can arrive — under its own hard timeout, which is why this
926
+ * method itself is unbounded and simply awaits what is queued.
927
+ *
928
+ * Awaits the STORED queue links, which are outcome-swallowing by construction, so a failed write
929
+ * can never reject here and abort the drain for other roles.
930
+ */
931
+ private flushRealtimeTranscriptQueues;
932
+ /**
933
+ * The actual persistence work for one transcript frame. Runs under the per-role queue established by
934
+ * {@link persistRealtimeTranscript}, so it may safely read-modify-write {@link realtimeInFlightTurns}
935
+ * across its `await`s without another frame of the same role interleaving.
936
+ */
937
+ private persistRealtimeTranscriptSerialized;
873
938
  /**
874
939
  * Stamps the speaker identity and recording-relative media fields on a freshly-created turn row.
875
940
  * `UserID` is set only for **user** turns (an AI turn has no human speaker). When recording is
@@ -1444,6 +1509,149 @@ export declare class BaseAgent {
1444
1509
  * @protected
1445
1510
  */
1446
1511
  protected executeArtifactToolCallsAsSteps(calls: ArtifactToolCall[], params: ExecuteAgentParams): Promise<StoredToolResult[]>;
1512
+ /**
1513
+ * Carries the PREVIOUS turn's tool results forward into this run's context.
1514
+ *
1515
+ * Inline tool results (artifact + conversation tools) are injected into the run's
1516
+ * in-memory messages only — the next turn rebuilds messages from the conversation
1517
+ * window, so a result paged in on turn N is gone on turn N+1 and the agent must
1518
+ * re-call the tool. The results already persist in each Tool step's OutputData;
1519
+ * this re-injects the immediately previous completed run's successful results as
1520
+ * one transient message. One-turn memory by construction: each run carries only
1521
+ * its direct predecessor's results, so context never compounds.
1522
+ *
1523
+ * Gated on conversationId + root depth — programmatic runs and sub-agents skip it.
1524
+ * @protected
1525
+ */
1526
+ protected injectPriorTurnToolResults(params: ExecuteAgentParams): Promise<void>;
1527
+ /**
1528
+ * Loads this agent's previous settled root run's Tool steps for this conversation
1529
+ * (settled = {@link settledRunStatuses}: Completed or AwaitingFeedback).
1530
+ * Deliberately loads ALL completed Tool steps — eligibility for carry-forward is
1531
+ * decided structurally by {@link BuildPriorTurnToolResultsMessage} via the
1532
+ * `toolFamily` field the executors stamp into OutputData, never by StepName
1533
+ * (which is a display label and free to change).
1534
+ *
1535
+ * Consults {@link PriorTurnToolResultCache} first — the completing run populates it
1536
+ * in {@link finalizeAgentRun} from its in-memory steps, so on this node the common
1537
+ * case (including "prior run made no tool calls") costs zero DB queries; the
1538
+ * RunView pair below is the cache-miss fallback (first turn, restart, other node).
1539
+ * @private
1540
+ */
1541
+ private loadPriorTurnToolResultSteps;
1542
+ /**
1543
+ * Publishes this run's completed Tool-step results to {@link PriorTurnToolResultCache}
1544
+ * so the conversation's next turn skips the prior-run DB lookups. Applies the same
1545
+ * row predicate as the DB path ({@link carryForwardPredicate}): root runs only, and
1546
+ * only when the run row settled as {@link settledRunStatuses} (Completed OR
1547
+ * AwaitingFeedback — the normal chat-turn ending) — a failed run leaves the previous
1548
+ * settled run's entry standing, just as the RunView filter would. Scoped to this
1549
+ * run's agent (cache key = conversation + agent) so parallel agents in one
1550
+ * conversation never cross-pollinate. An empty projection is cached too (the
1551
+ * negative-cache case that spares tool-free conversations the queries every turn).
1552
+ * Same-node edge semantics (failed step INSERTs, concurrent completions) are
1553
+ * documented on the cache class. Called from {@link finalizeAgentRun}.
1554
+ * @private
1555
+ */
1556
+ private cachePriorTurnToolResults;
1557
+ /**
1558
+ * Tool families whose step results are eligible for prior-turn carry-forward —
1559
+ * derived from {@link CarryForwardToolFamily} (the single source the stamp sites use).
1560
+ * Read-tool families only: memory writes, pipelines, and client tools also record
1561
+ * `StepType='Tool'` steps but must never be replayed as reusable results.
1562
+ */
1563
+ static readonly CarryForwardToolFamilies: readonly string[];
1564
+ /**
1565
+ * Run statuses that count as a successfully settled root turn. 'AwaitingFeedback' is
1566
+ * included because a Chat final step is the NORMAL per-turn completion for
1567
+ * conversational agents — {@link finalizeAgentRun} maps `step === 'Chat'` to
1568
+ * `Status='AwaitingFeedback'` with `Success=true`, so gating on 'Completed' alone
1569
+ * silently disables post-turn compaction and carry-forward for the most common
1570
+ * agent shape (a chat agent in a long conversation).
1571
+ *
1572
+ * Deliberately `ReadonlyArray<Union>` rather than an `as const` tuple: a narrowed
1573
+ * tuple type would make `.includes(status)` fail to typecheck against the wider
1574
+ * entity union, while this form keeps the compile-time check that each literal is a
1575
+ * valid status (a CHECK-constraint change still surfaces here). Do not "tighten" it.
1576
+ *
1577
+ * Single source for the consumers that must agree: the carry-forward predicate
1578
+ * ({@link carryForwardPredicate} → DB filter + cache-population gate) and the
1579
+ * post-turn compaction gate ({@link startPostTurnCompaction}).
1580
+ */
1581
+ private static readonly settledRunStatuses;
1582
+ /**
1583
+ * The carry-forward row predicate — the SINGLE source shared by the two places that
1584
+ * must select the same rows or the cache diverges from the DB path: the RunView
1585
+ * `ExtraFilter`s in {@link loadPriorTurnToolResultSteps} (DB fallback) and the
1586
+ * in-memory gate/projection in {@link cachePriorTurnToolResults} (cache population).
1587
+ * Values are typed from the entity unions so a CHECK-constraint change surfaces here
1588
+ * at compile time instead of silently desynchronizing the two loaders.
1589
+ *
1590
+ * The executing agent's ID also scopes both paths (SQL `AgentID=` clause + cache
1591
+ * key) but is per-run data, not a literal contract — it lives at the call sites,
1592
+ * not here.
1593
+ */
1594
+ private static readonly carryForwardPredicate;
1595
+ /**
1596
+ * Display name of the seeded system prompt behind summarizeRange's recursive
1597
+ * sub-call (see metadata/prompts/.summarize-range-prompt.json). Resolved with a
1598
+ * trimmed, case-insensitive compare — never an exact-case inline literal.
1599
+ */
1600
+ static readonly SummarizeRangePromptName = "Summarize Conversation Range";
1601
+ /**
1602
+ * The `messageType` marker stamped on injected tool-result messages and matched by
1603
+ * the compaction/pruning eligibility checks — single-sourced so writers and matchers
1604
+ * cannot drift. (Value participates in the AgentChatMessageMetadata union.)
1605
+ */
1606
+ private static readonly toolResultMessageType;
1607
+ /**
1608
+ * Header stems for injected tool-result messages. These exact headers are a contract:
1609
+ * the loop-agent system template (loop-agent-type-system-prompt.template.md, "header
1610
+ * `Conversation history tool result:`" / "`Artifact tool result:`") teaches the model
1611
+ * to recognize them — change the template in lockstep.
1612
+ */
1613
+ private static conversationToolResultsHeader;
1614
+ /** Artifact analog of {@link conversationToolResultsHeader} — same template contract. */
1615
+ private static artifactToolResultsHeader;
1616
+ /**
1617
+ * Renders prior-turn tool-result steps into the carried-forward message body.
1618
+ * Pure and static for testability: keeps only steps whose OutputData satisfies the
1619
+ * structured contract stamped by the tool executors — a carry-forward-eligible
1620
+ * `toolFamily` (see {@link CarryForwardToolFamilies}) AND a non-empty `tool` name.
1621
+ * Tolerant of missing/invalid OutputData JSON, keeps only successful results,
1622
+ * caps each result and the total under `maxChars` (adding an explicit truncation
1623
+ * note when results are dropped). Returns null when nothing usable remains.
1624
+ */
1625
+ static BuildPriorTurnToolResultsMessage(steps: CarryForwardStepRecord[], maxChars: number): string | null;
1626
+ /**
1627
+ * Builds the summarizeRange recursive-sub-call host: resolves the seeded
1628
+ * 'Summarize Conversation Range' prompt (priority-ordered cheap models — the RLM
1629
+ * "strong root model, cheap sub-call model" split) and runs it via the standard
1630
+ * prompt runner so the AIPromptRun records itself.
1631
+ * @protected
1632
+ */
1633
+ protected buildConversationSummaryHost(params: ExecuteAgentParams): ConversationToolSummaryHost;
1634
+ /**
1635
+ * Executes conversation-history retrieval tool calls, wrapping each invocation in
1636
+ * its own AIAgentRunStep (StepType='Tool', "Conversation Tool: {tool}") — the same
1637
+ * per-call observability shape as artifact tools. Reads are served from the
1638
+ * ConversationEngine cache; per-call failures are contained in the result.
1639
+ *
1640
+ * At most {@link MAX_CONVERSATION_TOOL_CALLS_PER_TURN} calls execute per response;
1641
+ * the excess come back as skipped failure-shaped results (no run steps recorded)
1642
+ * telling the model to re-request them next turn.
1643
+ *
1644
+ * @protected
1645
+ */
1646
+ protected executeConversationToolCallsAsSteps(calls: ConversationToolCall[], params: ExecuteAgentParams): Promise<ConversationToolExecutionResult[]>;
1647
+ /**
1648
+ * Pushes a single user-role message containing rendered conversation-tool results
1649
+ * into the conversation — the same inject-once-then-expire lifecycle as artifact
1650
+ * tool results.
1651
+ *
1652
+ * @protected
1653
+ */
1654
+ protected injectConversationToolResultsMessage(params: ExecuteAgentParams, toolResults: ConversationToolExecutionResult[]): void;
1447
1655
  /**
1448
1656
  * Pushes a single user-role message containing rendered artifact-tool
1449
1657
  * results into the conversation. This mirrors the action-result
@@ -1993,6 +2201,19 @@ export declare class BaseAgent {
1993
2201
  * performed) and Actions/Sub-Agent steps (the skill(s) that granted the tool).
1994
2202
  */
1995
2203
  skills?: AgentSkillInvocation[];
2204
+ /**
2205
+ * For steps whose outcome is fully known BEFORE the row exists (e.g. recording an
2206
+ * already-finished compaction pass): applies {@link finalizeAgentRunStep} in memory
2207
+ * so the single queued INSERT carries the terminal state, and no follow-up
2208
+ * `finalizeStepEntity` UPDATE is needed — one DB write instead of two. Do NOT use
2209
+ * for steps with real work between start and finish; those stay two-phase so a
2210
+ * crash mid-work leaves a visible `Running` row.
2211
+ */
2212
+ completed?: {
2213
+ success: boolean;
2214
+ errorMessage?: string;
2215
+ outputData?: Record<string, unknown>;
2216
+ };
1996
2217
  }): Promise<MJAIAgentRunStepEntityExtended>;
1997
2218
  /**
1998
2219
  * Finalizes a step entity with completion status.
@@ -2751,6 +2972,14 @@ export declare class BaseAgent {
2751
2972
  * @private
2752
2973
  */
2753
2974
  private calculateTokenStats;
2975
+ /**
2976
+ * Applies a {@link calculateTokenStats} result to a run entity's six denormalized
2977
+ * token/cost columns — the single source for the assignment shape shared by the
2978
+ * failure/cancel/finalize paths AND the post-turn compaction top-up
2979
+ * ({@link recordCompactionRunStep}).
2980
+ * @private
2981
+ */
2982
+ private applyTokenStatsToRun;
2754
2983
  /**
2755
2984
  * Gets the count of how many times a specific action has been executed in this agent run.
2756
2985
  *
@@ -2808,6 +3037,73 @@ export declare class BaseAgent {
2808
3037
  * @protected
2809
3038
  */
2810
3039
  protected pruneAndCompactExpiredMessages(params: ExecuteAgentParams, currentTurn: number): Promise<void>;
3040
+ /**
3041
+ * Resolves the effective context budget for cross-turn compaction, validated against
3042
+ * the most recent prompt's model when available. Logs the clamp warning once when a
3043
+ * configured budget exceeded the model's MaxInputTokens.
3044
+ * @protected
3045
+ */
3046
+ protected resolveCompactionBudget(params: ExecuteAgentParams, config: AgentConfiguration | undefined): EffectiveContextBudget;
3047
+ /**
3048
+ * Pre-turn fallback: compacts synchronously when the assembled window is already over
3049
+ * the trigger budget BEFORE the first prompt of this run, then splices the fresh
3050
+ * summary into the live message array. Only runs with an EXPLICIT configured budget
3051
+ * (agent or type ContextWindowMaxTokens) — before the first prompt the model is
3052
+ * unknown, and compacting against the conservative default would over-trigger on
3053
+ * large-context models. The post-turn hook (real model known) covers those.
3054
+ * @protected
3055
+ */
3056
+ protected checkPreTurnCompaction(params: ExecuteAgentParams, config: AgentConfiguration | undefined): Promise<void>;
3057
+ /**
3058
+ * Post-turn hook (the primary path), called from {@link finalizeAgentRun} after the
3059
+ * run row is saved. Fire-and-forget by design: the caller's completion event never
3060
+ * waits on the summary LLM call. Fires for settled root runs with a conversation —
3061
+ * {@link settledRunStatuses}: 'Completed' AND 'AwaitingFeedback', because a Chat
3062
+ * final step (→ AwaitingFeedback) is the NORMAL ending of a conversational turn;
3063
+ * gating on 'Completed' alone silently disabled post-turn compaction for exactly
3064
+ * the long-chat scenario this feature targets.
3065
+ * @protected
3066
+ */
3067
+ protected startPostTurnCompaction(): void;
3068
+ /**
3069
+ * Runs one compaction pass and records it as a `StepType='Compaction'` run step —
3070
+ * TargetID = the summary prompt, TargetLogID = the summary AIPromptRun (the same ID
3071
+ * written to `ConversationDetail.SummaryPromptRunID`, closing the lineage chain).
3072
+ * Quiet no-ops (window under trigger) record no step; fired passes and failures do.
3073
+ * @protected
3074
+ */
3075
+ protected runCrossTurnCompaction(phase: 'pre-turn' | 'post-turn', params: ExecuteAgentParams, config: AgentConfiguration | undefined, budget: EffectiveContextBudget): Promise<CompactionOutcome | undefined>;
3076
+ /**
3077
+ * Persists the Compaction run step for a fired or failed pass — as a SINGLE INSERT:
3078
+ * the pass is already over when this is called, so the step is created pre-finalized
3079
+ * via `createStepEntity`'s `completed` option instead of paying a second UPDATE
3080
+ * round trip. The summary AIPromptRun rides on the step's transient `PromptRun` so
3081
+ * {@link calculateTokenStats}'s Compaction branch counts it: pre-turn fires are
3082
+ * picked up by finalizeAgentRun's normal rollup for free; post-turn fires happen
3083
+ * AFTER that rollup ran, so this method tops the run's token columns up itself.
3084
+ * @private
3085
+ */
3086
+ private recordCompactionRunStep;
3087
+ /**
3088
+ * After a fired POST-turn compaction, folds the summary prompt's tokens/cost into
3089
+ * the run row — finalizeAgentRun's rollup ran before the pass, so without this the
3090
+ * recursive summary spend would be missing from the run's denormalized totals.
3091
+ * Uses a FRESH-loaded run entity for the write: the persisted run may be
3092
+ * 'AwaitingFeedback' and a quick user reply could have resumed it — re-Saving the
3093
+ * stale in-memory `_agentRun` would clobber the resumed row's Status. Residual: the
3094
+ * token columns are last-writer-wins in the tiny Load→Save window (self-healing at
3095
+ * the resumed run's own finalize). Failures are contained (LogError only).
3096
+ * @private
3097
+ */
3098
+ private topUpRunTokenTotalsAfterPostTurnCompaction;
3099
+ /**
3100
+ * Splices a freshly generated summary into the live message array in place: every
3101
+ * message covered by the new boundary (sequence below it, or a prior summary
3102
+ * message) collapses into one summary message; enrichment-bearing tail messages and
3103
+ * injected messages without sequence metadata are preserved untouched.
3104
+ * @private
3105
+ */
3106
+ private applyCompactionToLiveMessages;
2811
3107
  /**
2812
3108
  * Creates an AIAgentRunStep for message compaction operations.
2813
3109
  * Records the compaction attempt with context about the message being compacted.
@@ -2889,6 +3185,16 @@ export declare class BaseAgent {
2889
3185
  * @protected
2890
3186
  */
2891
3187
  protected getModelContextLimit(modelSelectionInfo?: AIModelSelectionInfo): number;
3188
+ /**
3189
+ * Extracts the vendor-specific MaxInputTokens from model selection info, returning
3190
+ * null when it genuinely cannot be determined. Callers that need a hard number use
3191
+ * {@link getModelContextLimit} (which falls back to a conservative default); callers
3192
+ * for whom a guessed default would be WRONG — e.g. cross-turn compaction budget
3193
+ * clamping, where a bogus 8000 would clamp a configured 200k budget — use this and
3194
+ * handle null explicitly.
3195
+ * @protected
3196
+ */
3197
+ protected tryGetModelMaxInputTokens(modelSelectionInfo: AIModelSelectionInfo): number | null;
2892
3198
  /**
2893
3199
  * Estimates total token count across all conversation messages.
2894
3200
  * @param messages - Message array to estimate
@@ -2907,9 +3213,13 @@ export declare class BaseAgent {
2907
3213
  * @param request - The expand message request
2908
3214
  * @param params - Agent execution parameters
2909
3215
  * @param currentTurn - Current turn number
3216
+ * @returns null when the expansion succeeded; otherwise a model-facing reason the
3217
+ * expansion is impossible. Callers must surface a non-null reason into the next
3218
+ * prompt's context — a silent no-op leaves the loop state identical and the model
3219
+ * re-requests the same expansion indefinitely.
2910
3220
  * @protected
2911
3221
  */
2912
- protected executeExpandMessageStep(request: BaseAgentNextStep, params: ExecuteAgentParams, currentTurn: number): void;
3222
+ protected executeExpandMessageStep(request: BaseAgentNextStep, params: ExecuteAgentParams, currentTurn: number): string | null;
2913
3223
  /**
2914
3224
  * Generic template resolver for loop iterations - extracts from LoopAgentType to make available to all agent types
2915
3225
  * Resolves templates like {{item.field}}, {{index}}, etc. in action parameters and sub-agent payloads