@framers/agentos 0.15.61 → 0.15.63

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.
@@ -1 +1 @@
1
- {"version":3,"file":"GMIManager.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMIManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GMIManager.d.ts","sourceRoot":"","sources":["../../../src/cognition/substrate/GMIManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAsB,MAAM,QAAQ,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAIL,6BAA6B,EAG9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAA2B,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAE3G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAMnF,OAAO,KAAK,EAAmB,cAAc,EAAkB,MAAM,sBAAsB,CAAC;AA6C5F;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAKxE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,wBAAwB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAChD,4BAA4B,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,iCAAiC,GAAG,uCAAuC,CAAC,CAAC,CAAC;IAC3M,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,yBAAyB,CAAC;IACnD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC;AAYD,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,EAAE,qBAAqB,CAAC;IACrC,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,SAAS,EAAE,UAAU,CAAC;IACtB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,8BAA8B,KAClC,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,GAAG,uBAAuB,GAAG,SAAS,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CACoH;IAClI,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,iBAAiB,CAAmC;IACrD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IAEtE,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,mBAAmB,CAAC,CAAuB;IACnD,OAAO,CAAC,mBAAmB,CAAsB;IAEjD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAsB;IAEjD,OAAO,CAAC,aAAa,CAAkB;IACvC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;gBAGnE,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,oBAAoB,GAAG,SAAS,EACrD,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,aAAa,EAC3B,kBAAkB,EAAE,sBAAsB,EAC1C,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,kBAAkB,CAAC,EAAE,mBAAmB,EACxC,aAAa,CAAC,EAAE,cAAc;IAqChC,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,gBAAgB;IAIjB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIjG,OAAO,CAAC,+BAA+B;YAyCzB,eAAe;YAUf,iBAAiB;YAWjB,oBAAoB;IAuBrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAexC,OAAO,CAAC,iBAAiB;IAMZ,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiGhD,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKjE,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAwB3F,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,+BAA+B;IAavC;;;;;;;;;;;;;;;OAeG;YACW,gBAAgB;YAkFhB,qBAAqB;IA8CnC;;;;;;OAMG;IACU,wBAAwB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,mBAAmB,CAAC,EAAE,MAAM,EAC5B,gBAAgB,CAAC,EAAE,MAAM,EACzB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,CAAC,EAAE,uBAAuB,EACvC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,mBAAmB,EAAE,mBAAmB,CAAA;KAAE,CAAC;IA2BnE;;;;;OAKG;YACW,oBAAoB;IAoJ3B,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAKrD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAUzB,0FAA0F;YAC5E,kBAAkB;IAyBhC;;;;;;;;OAQG;YACW,WAAW;IA6BzB;;;;OAIG;YACW,gBAAgB;IASjB,mBAAmB,CAAC,0BAA0B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoDzE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCtC;;;;;;;;;;;OAWG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BxH,OAAO,CAAC,0BAA0B;CAUnC"}
@@ -412,8 +412,14 @@ export class GMIManager {
412
412
  ? openWithin(() => layer.forLearner(null, { ...context, noLearnerReason: 'workflow_seat' }), lifetime)
413
413
  : open(organizationId);
414
414
  // The open runs inside GMI acquisition, so it has the budget a turn's preparation has.
415
- let late = openNow();
416
- late.catch(() => undefined);
415
+ const first = openNow();
416
+ let late = first;
417
+ // An open that fails (it rejects, or outlives its lifetime) is no answer for a turn that comes after it: it is
418
+ // dropped once it fails, so the GMI's next turn asks the layer again.
419
+ first.catch(() => {
420
+ if (late === first)
421
+ late = undefined;
422
+ });
417
423
  let timer;
418
424
  const budget = new Promise((resolve) => {
419
425
  timer = setTimeout(() => resolve('late'), LEARNER_OPEN_BUDGET_MS);
@@ -1 +1 @@
1
- {"version":3,"file":"GMIManager.js","sourceRoot":"","sources":["../../../src/cognition/substrate/GMIManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GMIManager.js","sourceRoot":"","sources":["../../../src/cognition/substrate/GMIManager.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,17 @@
11
11
  import { ConversationMessage, MessageRole } from './ConversationMessage';
12
12
  import { IUtilityAI, SummarizationOptions } from '../../cognition/nlp/ai_utilities/IUtilityAI';
13
13
  /**
14
- * Configuration for the ConversationContext, defining its behavior and limits.
14
+ * Configuration for the ConversationContext, defining its behavior and limits. Each of the four counts of messages
15
+ * (`maxHistoryLengthMessages`, `messagesToKeepVerbatimTail`, `messagesToKeepVerbatimHead`, `summarizationChunkSize`)
16
+ * counts the whole part of the number it reads as, never below 0 (2 for `summarizationChunkSize`), and one that reads
17
+ * as none (given as undefined, null, a blank string, NaN, or a value that is neither a number nor a string) keeps its
18
+ * default.
15
19
  * @interface ConversationContextConfig
16
- * @property {number} [maxHistoryLengthMessages=100] - Maximum number of messages to retain in the history.
20
+ * @property {number} [maxHistoryLengthMessages=100] - The number of messages the history keeps: past it, the oldest messages after the first `messagesToKeepVerbatimHead` are dropped, or summarized with `enableAutomaticSummarization`, and the summary right after those first messages and the last summary after them are kept with them. A tool round the kept messages reach into is kept whole, past this number when it has to be. 0 sets no limit: the history keeps every message.
17
21
  * @property {boolean} [enableAutomaticSummarization=false] - If true, attempts to summarize older parts of the conversation when history exceeds limits. Requires `utilityAI`.
18
- * @property {number} [messagesToKeepVerbatimTail=10] - Number of most recent messages to always keep verbatim (not summarized).
19
- * @property {number} [messagesToKeepVerbatimHead=2] - Number of earliest messages (e.g., system prompts, initial user query) to always keep verbatim.
20
- * @property {number} [summarizationChunkSize=20] - Number of messages to group for a single summarization pass.
22
+ * @property {number} [messagesToKeepVerbatimTail=10] - Number of most recent messages to always keep verbatim (not summarized), more when the oldest of them is part of a tool round. A tool round that ends the history and waits for a result is not summarized either, with a tail of 0 too.
23
+ * @property {number} [messagesToKeepVerbatimHead=2] - Number of earliest messages (e.g., system prompts, initial user query) to always keep verbatim, more when the last of them is part of a tool round.
24
+ * @property {number} [summarizationChunkSize=20] - Number of messages to group for a single summarization pass, at least 2 (a summary takes the place of the messages it summarizes, so fewer could not shorten the history), more when the last of them is part of a tool round: the round is summarized whole.
21
25
  * @property {SummarizationOptions} [summarizationOptions] - Default options for the summarization process.
22
26
  * @property {IUtilityAI} [utilityAI] - Optional. An instance of `IUtilityAI` used for summarization and other NLP tasks.
23
27
  * @property {string} [defaultLanguage='en-US'] - Default language (BCP-47) for context-sensitive operations if not otherwise specified.
@@ -91,6 +95,14 @@ export declare class ConversationContext {
91
95
  * @type {boolean}
92
96
  */
93
97
  private isSummarizing;
98
+ /**
99
+ * The passes of `manageHistoryLength()` that found a summary being made. Each runs once it is made, so the messages
100
+ * recorded meanwhile get the passes they started: the pass that made the summary runs them, and leaves the rest to
101
+ * one that starts another summary before they have all run.
102
+ * @private
103
+ * @type {number}
104
+ */
105
+ private deferredHistoryPasses;
94
106
  /**
95
107
  * Creates an instance of ConversationContext.
96
108
  *
@@ -115,9 +127,17 @@ export declare class ConversationContext {
115
127
  * Retrieves a portion of the conversation history, optionally limited and filtered.
116
128
  * Returns readonly copies of the messages to prevent external modification.
117
129
  *
130
+ * With `limit`, the newest `limit` messages. Without it, the messages a trim to `maxHistoryLengthMessages` keeps:
131
+ * the first `messagesToKeepVerbatimHead`, the summary right after them and the last summary after them, and the
132
+ * newest, `maxHistoryLengthMessages` in all, or every message when it is 0. Providers refuse a tool call without its
133
+ * result and a tool result without its call, so neither cut falls inside a tool round (an assistant message that
134
+ * names tool calls, the tool messages that answer them and anything between): a round the returned messages reach
135
+ * into is returned whole, past the limit when it has to be, as the prompt engine's token trim keeps a round it cannot
136
+ * drop.
137
+ *
118
138
  * @public
119
- * @param {number} [limit] - Optional. The maximum number of recent messages to return. Defaults to `config.maxHistoryLengthMessages`.
120
- * @param {MessageRole[]} [excludeRoles] - Optional. An array of message roles to exclude from the returned history.
139
+ * @param {number} [limit] - Optional. The number of recent messages to return, more when the oldest of them is part of a tool round. Without it, the messages a trim to `config.maxHistoryLengthMessages` keeps.
140
+ * @param {MessageRole[]} [excludeRoles] - Optional. An array of message roles to exclude from the returned history. A tool round that loses a call or a result to them loses its other calls and results too, since a provider refuses a call without its results and a result without its call. The other messages are the ones counted.
121
141
  * @returns {ReadonlyArray<Readonly<ConversationMessage>>} A readonly array of readonly message objects.
122
142
  */
123
143
  getHistory(limit?: number, excludeRoles?: MessageRole[]): ReadonlyArray<Readonly<ConversationMessage>>;
@@ -206,17 +226,56 @@ export declare class ConversationContext {
206
226
  * it attempts to summarize older messages. Otherwise, it falls back to simple truncation.
207
227
  * This method is called asynchronously after each new message is added.
208
228
  *
229
+ * A summary replaces a chunk of the messages between the first `messagesToKeepVerbatimHead` and the newest
230
+ * `messagesToKeepVerbatimTail`. None of the three ends inside a tool round: a round the head or the tail reaches into
231
+ * stays whole there, and a round the chunk reaches into is summarized whole, past `summarizationChunkSize`. A round
232
+ * that ends the history and waits for a result stays out of the chunk, with a tail of 0 too: a summary of its call
233
+ * would leave the results recorded later without it. The summary takes the chunk's place, so a message recorded while
234
+ * the summary is made stays after it. The summary of a history cleared meanwhile is dropped, and so is one whose
235
+ * chunk a result recorded meanwhile reaches into (a result for a call in the chunk, recorded after other messages):
236
+ * the pass that result started keeps the round whole. A summary whose chunk holds a message rewritten meanwhile (an
237
+ * output guardrail rewrites a stored reply through `replaceMessageContent()`) is dropped too, and made again from the
238
+ * message as it is. A history still past its limit with too few messages left for another chunk, the ones
239
+ * recorded meanwhile counted in, is trimmed, and the trim keeps this summary, and the last summary after it when a
240
+ * conversation loaded from storage holds one. One with enough left for another chunk waits for the next pass. A pass
241
+ * that finds a summary being made runs once it is made, so the messages recorded meanwhile, after a clear too, get
242
+ * their passes; a summary started before they have all run takes the rest.
243
+ *
209
244
  * @private
210
245
  * @async
211
246
  * @returns {Promise<void>}
212
247
  */
213
248
  private manageHistoryLength;
214
249
  /**
215
- * Performs simple truncation of message history, primarily from the middle,
216
- * preserving a configured number of head and tail messages.
250
+ * Where a trim to `targetMessageCount` messages cuts `messages`: it keeps the first `messagesToKeepVerbatimHead` (at
251
+ * most `targetMessageCount`), the summary right after them and the last summary after them, and the newest that fill
252
+ * the rest. The head and the newest keep a tool round they reach into whole. A summary pass puts its summary right
253
+ * after the first messages, and each pass summarizes the one before it there. A conversation loaded from storage
254
+ * holds each stored summary where its own time sorts it, after the messages it replaced, and its last one stands for
255
+ * the ones stored before it; a pass on it starts a summary of its own right after the first messages, from messages
256
+ * the stored ones may not all stand for. So the two can stand for different messages the trim leaves out, and each
257
+ * that is not among the newest takes the place of the oldest of them, as long as one of those is still kept: the last
258
+ * summary alone when both do not fit. A summary is neither a call nor a result, so it is kept alone wherever it sits.
259
+ *
260
+ * @private
261
+ */
262
+ private trimCuts;
263
+ /**
264
+ * Performs simple truncation of message history from the middle: it keeps the first `messagesToKeepVerbatimHead`
265
+ * messages (at most `targetMessageCount`), the summary right after them and the last summary after them, and the
266
+ * newest that fill the rest of `targetMessageCount`. Each summary stands for messages the trim leaves out, so one
267
+ * that is not among the newest takes the place of the oldest of them, as long as one of those is still kept. A
268
+ * target of 0 keeps every message.
269
+ *
270
+ * Providers refuse a tool call without its result and a tool result without its call, so neither cut falls inside a
271
+ * tool round (an assistant message that names tool calls, the tool messages that answer them and anything between):
272
+ * a round the kept head or the kept newest messages reach into is kept whole. When keeping it whole passes
273
+ * `targetMessageCount`, the round is kept whole anyway and the history holds more messages, as the prompt engine's
274
+ * token trim (`PromptEngine.truncateMessages`) keeps a round it cannot drop. A round in the head stays; a round the
275
+ * newest messages reach into is left out whole by a later trim, once newer messages fill the rest.
217
276
  *
218
277
  * @private
219
- * @param {number} targetMessageCount - The desired maximum number of messages after truncation.
278
+ * @param {number} targetMessageCount - The number of messages to keep, passed when a tool round stays whole.
220
279
  */
221
280
  private truncateHistorySimple;
222
281
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationContext.d.ts","sourceRoot":"","sources":["../../../src/core/conversation/ConversationContext.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAA8C,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAY/F;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;IACxC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B;;;;;OAKG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAa;IAExC;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAkB;IAEvC;;;;;;;;OAQG;gBAED,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,GAAE,OAAO,CAAC,yBAAyB,CAAM,EAC/C,eAAe,GAAE,mBAAmB,EAAO,EAC3C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAkD3C;;;;;;;;OAQG;IACI,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IAgB5G;;;;;;;;OAQG;IACI,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAe7G;;;;;;OAMG;IACI,cAAc,IAAI,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAOrE;;;;;;OAMG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS;IAMnF;;;;;OAKG;IACI,cAAc,IAAI,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS;IAKlE;;;;;;OAMG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IASnK;;;;;;OAMG;IACI,aAAa,IAAI,MAAM;IAI9B;;;;;;;;;OASG;IACI,YAAY,CAAC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAA;KAAO,GAAG,IAAI;IAmCzI;;;;;;;;OAQG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IASjD;;;;;;OAMG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAIhD;;;;;OAKG;IACI,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAItD;;;;;;;;;OASG;YACW,mBAAmB;IA+EjC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;;;;;OAMG;IACI,MAAM,IAAI,MAAM;IAiBvB;;;;;;;;;;OAUG;WACW,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,GAAG,mBAAmB;IAwC9H;;;;OAIG;IACH,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAA8D;IAErG;;;;OAIG;IACH,IAAW,aAAa,IAAI,MAAM,GAAG,SAAS,CAA4E;IAE1H;;;;OAIG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAAgF;IAEhI;;;;OAIG;IACH,IAAW,eAAe,IAAI,MAAM,CAAgF;CACrH"}
1
+ {"version":3,"file":"ConversationContext.d.ts","sourceRoot":"","sources":["../../../src/core/conversation/ConversationContext.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  * @see ../ai_utilities/IUtilityAI.ts For IUtilityAI and SummarizationOptions definitions.
11
11
  */
12
12
  import { MessageRole, createConversationMessage } from './ConversationMessage.js';
13
+ import { toolRoundBounds } from './toolRounds.js';
13
14
  import { uuidv4 } from '../utils/uuid.js';
14
15
  import { GMIError, GMIErrorCode } from '../utils/errors.js'; // Corrected path
15
16
  // Constants for summarization logic
@@ -17,8 +18,135 @@ const DEFAULT_MAX_HISTORY_MESSAGES = 100;
17
18
  const DEFAULT_VERBATIM_TAIL_COUNT = 10;
18
19
  const DEFAULT_VERBATIM_HEAD_COUNT = 2;
19
20
  const DEFAULT_SUMMARIZATION_CHUNK_SIZE = 20; // Messages to group for one summary
21
+ const MIN_SUMMARIZATION_CHUNK_SIZE = 2; // A summary of fewer messages could not shorten the history
20
22
  const MIN_MESSAGES_FOR_SUMMARIZATION_ATTEMPT = 5; // Don't try to summarize too few messages
21
23
  const DEFAULT_SUMMARIZATION_OPTIONS = { desiredLength: 'medium', method: 'abstractive_llm' };
24
+ /**
25
+ * Where to cut `messages` to keep their first `headCount` and their last `tailCount` messages. Providers refuse a tool
26
+ * call without its result and a tool result without its call, so neither cut falls inside a tool round (an assistant
27
+ * message that names tool calls, the tool messages that answer them and anything between, as `toolRoundBounds` finds
28
+ * them): a round the head reaches into is kept whole in the head, and a round the tail reaches into is kept whole in
29
+ * the tail. When that keeps more than `headCount` or `tailCount` messages, the round is kept whole anyway, as the
30
+ * prompt engine's token trim (`PromptEngine.truncateMessages`) keeps a round it cannot drop.
31
+ *
32
+ * @param messages - The messages, oldest first.
33
+ * @param headCount - How many of the first messages to keep.
34
+ * @param tailCount - How many of the last messages to keep.
35
+ * @param rounds - The tool rounds of `messages`, when the caller has them.
36
+ * @returns `headEnd`, the index after the kept head, and `tailStart`, the index of the kept tail's first message, never
37
+ * before `headEnd`. The cut leaves out the messages between them, none when the two are equal.
38
+ */
39
+ function cutsKeepingToolRounds(messages, headCount, tailCount, rounds) {
40
+ const head = Math.min(Math.floor(Math.max(0, headCount)), messages.length);
41
+ const tail = Math.min(Math.floor(Math.max(0, tailCount)), messages.length);
42
+ if (head + tail >= messages.length) {
43
+ return { headEnd: messages.length, tailStart: messages.length };
44
+ }
45
+ const bounds = rounds ?? toolRoundBounds(messages);
46
+ const headEnd = head > 0 ? bounds.end[head - 1] + 1 : 0;
47
+ const tailStart = tail > 0 ? bounds.start[messages.length - tail] : messages.length;
48
+ return { headEnd, tailStart: Math.max(headEnd, tailStart) };
49
+ }
50
+ /**
51
+ * Whether the tool round that ends `messages` waits for a result: an assistant message in it names a call that no tool
52
+ * message after it answers. A tool message answers the nearest assistant message before it that names its call id, as
53
+ * `toolRoundBounds` reads them.
54
+ *
55
+ * @param messages - The messages, oldest first.
56
+ * @param rounds - The tool rounds of `messages`.
57
+ * @returns True when a call of the last round has no result yet.
58
+ */
59
+ function lastRoundWaitsForResults(messages, rounds) {
60
+ const last = messages.length - 1;
61
+ if (last < 0)
62
+ return false;
63
+ // each call id of the round by the nearest assistant message that names it, and the calls no result answers yet
64
+ const callerOf = new Map();
65
+ const unanswered = new Set();
66
+ for (let index = rounds.start[last]; index <= last; index += 1) {
67
+ const message = messages[index];
68
+ const calls = message.role === MessageRole.ASSISTANT ? message.tool_calls : undefined;
69
+ if (Array.isArray(calls) && calls.length > 0) {
70
+ for (const call of calls) {
71
+ const callId = call?.id;
72
+ if (typeof callId === 'string' && callId) {
73
+ callerOf.set(callId, index);
74
+ unanswered.add(`${index} ${callId}`);
75
+ }
76
+ }
77
+ }
78
+ else if (message.role === MessageRole.TOOL && typeof message.tool_call_id === 'string') {
79
+ const caller = callerOf.get(message.tool_call_id);
80
+ if (caller !== undefined)
81
+ unanswered.delete(`${caller} ${message.tool_call_id}`);
82
+ }
83
+ }
84
+ return unanswered.size > 0;
85
+ }
86
+ /**
87
+ * The messages a summary can take its chunk from: those after the first `headCount` and before the last `tailCount`,
88
+ * each cut moved to keep a tool round whole, as `cutsKeepingToolRounds` moves it. A round that ends `messages` and
89
+ * waits for a result stays out too, as a tail of one or more keeps it: its results are recorded later, and a summary of
90
+ * its call would leave them without it. The runtime records nothing after a pause's call until each of its calls is
91
+ * answered (a new turn answers them as not run before it records its input), so a round that waits is the last one.
92
+ * A call followed by other messages before its results, which no provider accepts and the runtime never records, is
93
+ * cut as any other round: a cut cannot tell a call still waiting from one never answered, which a conversation stored
94
+ * before pauses were answered can hold, and holding such calls out of every cut would keep them for good.
95
+ *
96
+ * @param messages - The messages, oldest first.
97
+ * @param headCount - How many of the first messages to keep.
98
+ * @param tailCount - How many of the last messages to keep.
99
+ * @param rounds - The tool rounds of `messages`, when the caller has them.
100
+ * @returns `start`, the index of the first message a summary can take, and `end`, the index after the last. None when
101
+ * `end` is not after `start`.
102
+ */
103
+ function summaryMiddle(messages, headCount, tailCount, rounds = toolRoundBounds(messages)) {
104
+ const { headEnd, tailStart } = cutsKeepingToolRounds(messages, headCount, tailCount, rounds);
105
+ const end = lastRoundWaitsForResults(messages, rounds)
106
+ ? Math.min(tailStart, rounds.start[messages.length - 1])
107
+ : tailStart;
108
+ return { start: headEnd, end };
109
+ }
110
+ /**
111
+ * The messages a trim keeps, in their order.
112
+ *
113
+ * @param messages - The messages, oldest first.
114
+ * @param cuts - Where the trim cuts them.
115
+ * @returns The kept messages.
116
+ */
117
+ function keptByTrim(messages, cuts) {
118
+ return [
119
+ ...messages.slice(0, cuts.headEnd),
120
+ ...cuts.summaryIndexes.map((index) => messages[index]),
121
+ ...messages.slice(cuts.tailStart),
122
+ ];
123
+ }
124
+ /**
125
+ * A history setting read as a number of messages: the whole part of the number it reads as, never below 0, and
126
+ * `fallback` when it reads as none. A number, or a string that holds one, reads as that number; anything else (given
127
+ * as undefined, null, a blank string, NaN, or a value of another type) reads as none, since `Number()` would read null,
128
+ * a blank string and false as 0.
129
+ *
130
+ * @param value - The setting.
131
+ * @param fallback - The setting's default.
132
+ * @returns The number of messages.
133
+ */
134
+ function messageCount(value, fallback) {
135
+ if (typeof value !== 'number' && (typeof value !== 'string' || value.trim() === ''))
136
+ return fallback;
137
+ const count = Number(value);
138
+ return Number.isNaN(count) ? fallback : Math.max(0, Math.floor(count));
139
+ }
140
+ /**
141
+ * Whether `message` is a tool call (an assistant message that names calls) or a tool result.
142
+ *
143
+ * @param message - The message.
144
+ * @returns True for a call or a result.
145
+ */
146
+ function isCallOrResult(message) {
147
+ return (message.role === MessageRole.TOOL ||
148
+ (message.role === MessageRole.ASSISTANT && Array.isArray(message.tool_calls) && message.tool_calls.length > 0));
149
+ }
22
150
  /**
23
151
  * @class ConversationContext
24
152
  * @description Manages the messages, metadata, and operational state for a single conversation.
@@ -42,6 +170,14 @@ export class ConversationContext {
42
170
  * @type {boolean}
43
171
  */
44
172
  this.isSummarizing = false;
173
+ /**
174
+ * The passes of `manageHistoryLength()` that found a summary being made. Each runs once it is made, so the messages
175
+ * recorded meanwhile get the passes they started: the pass that made the summary runs them, and leaves the rest to
176
+ * one that starts another summary before they have all run.
177
+ * @private
178
+ * @type {number}
179
+ */
180
+ this.deferredHistoryPasses = 0;
45
181
  this.sessionId = sessionId || `conv_ctx_${uuidv4()}`;
46
182
  this.createdAt = Date.now();
47
183
  this.messages = initialMessages.map(m => ({
@@ -66,6 +202,14 @@ export class ConversationContext {
66
202
  ...(config.summarizationOptions || {}),
67
203
  },
68
204
  };
205
+ // The history's cuts index the messages with these settings, so each is read as a whole number of messages, and a
206
+ // setting given as undefined, which the spread above puts in place of its default, keeps the default. A summary
207
+ // takes the place of the messages it summarizes, so its chunk is two messages or more: a summary of fewer would
208
+ // leave the history as long as it was, or make it longer.
209
+ this.config.maxHistoryLengthMessages = messageCount(this.config.maxHistoryLengthMessages, DEFAULT_MAX_HISTORY_MESSAGES);
210
+ this.config.messagesToKeepVerbatimTail = messageCount(this.config.messagesToKeepVerbatimTail, DEFAULT_VERBATIM_TAIL_COUNT);
211
+ this.config.messagesToKeepVerbatimHead = messageCount(this.config.messagesToKeepVerbatimHead, DEFAULT_VERBATIM_HEAD_COUNT);
212
+ this.config.summarizationChunkSize = Math.max(MIN_SUMMARIZATION_CHUNK_SIZE, messageCount(this.config.summarizationChunkSize, DEFAULT_SUMMARIZATION_CHUNK_SIZE));
69
213
  this.utilityAI = this.config.utilityAI; // Use the one from the fully merged config
70
214
  this.sessionMetadata = { ...initialMetadata };
71
215
  // Set well-known metadata from config if present
@@ -112,9 +256,17 @@ export class ConversationContext {
112
256
  * Retrieves a portion of the conversation history, optionally limited and filtered.
113
257
  * Returns readonly copies of the messages to prevent external modification.
114
258
  *
259
+ * With `limit`, the newest `limit` messages. Without it, the messages a trim to `maxHistoryLengthMessages` keeps:
260
+ * the first `messagesToKeepVerbatimHead`, the summary right after them and the last summary after them, and the
261
+ * newest, `maxHistoryLengthMessages` in all, or every message when it is 0. Providers refuse a tool call without its
262
+ * result and a tool result without its call, so neither cut falls inside a tool round (an assistant message that
263
+ * names tool calls, the tool messages that answer them and anything between): a round the returned messages reach
264
+ * into is returned whole, past the limit when it has to be, as the prompt engine's token trim keeps a round it cannot
265
+ * drop.
266
+ *
115
267
  * @public
116
- * @param {number} [limit] - Optional. The maximum number of recent messages to return. Defaults to `config.maxHistoryLengthMessages`.
117
- * @param {MessageRole[]} [excludeRoles] - Optional. An array of message roles to exclude from the returned history.
268
+ * @param {number} [limit] - Optional. The number of recent messages to return, more when the oldest of them is part of a tool round. Without it, the messages a trim to `config.maxHistoryLengthMessages` keeps.
269
+ * @param {MessageRole[]} [excludeRoles] - Optional. An array of message roles to exclude from the returned history. A tool round that loses a call or a result to them loses its other calls and results too, since a provider refuses a call without its results and a result without its call. The other messages are the ones counted.
118
270
  * @returns {ReadonlyArray<Readonly<ConversationMessage>>} A readonly array of readonly message objects.
119
271
  */
120
272
  getHistory(limit, excludeRoles) {
@@ -122,11 +274,32 @@ export class ConversationContext {
122
274
  let effectiveMessages = this.messages;
123
275
  if (excludeRoles && excludeRoles.length > 0) {
124
276
  const rolesToExclude = new Set(excludeRoles);
125
- effectiveMessages = effectiveMessages.filter(msg => !rolesToExclude.has(msg.role));
277
+ // A call left out would leave its results without it and a result left out its call, so a tool round that loses
278
+ // a call or a result loses its other calls and results too. A message of another role leaves the round whole.
279
+ const rounds = toolRoundBounds(this.messages);
280
+ const brokenRounds = new Set();
281
+ this.messages.forEach((message, index) => {
282
+ if (rolesToExclude.has(message.role) && isCallOrResult(message) && rounds.start[index] < rounds.end[index]) {
283
+ brokenRounds.add(rounds.start[index]);
284
+ }
285
+ });
286
+ effectiveMessages = this.messages.filter((message, index) => !rolesToExclude.has(message.role) && !(isCallOrResult(message) && brokenRounds.has(rounds.start[index])));
287
+ }
288
+ let returned = effectiveMessages;
289
+ if (limit !== undefined && limit > 0) {
290
+ // the newest `limit` messages, from the first message of a tool round they reach into
291
+ const count = Math.floor(limit);
292
+ if (count > 0 && count < effectiveMessages.length) {
293
+ returned = effectiveMessages.slice(toolRoundBounds(effectiveMessages).start[effectiveMessages.length - count]);
294
+ }
295
+ }
296
+ else if (this.config.maxHistoryLengthMessages > 0) {
297
+ const cuts = this.trimCuts(effectiveMessages, this.config.maxHistoryLengthMessages);
298
+ if (cuts.headEnd < cuts.tailStart)
299
+ returned = keptByTrim(effectiveMessages, cuts);
126
300
  }
127
- const actualLimit = limit !== undefined && limit > 0 ? limit : this.config.maxHistoryLengthMessages;
128
301
  // Ensure both array and its elements are treated as readonly
129
- return Object.freeze(effectiveMessages.slice(-actualLimit).map(m => Object.freeze({ ...m })));
302
+ return Object.freeze(returned.map(m => Object.freeze({ ...m })));
130
303
  }
131
304
  /**
132
305
  * Retrieves all messages in the conversation.
@@ -276,13 +449,34 @@ export class ConversationContext {
276
449
  * it attempts to summarize older messages. Otherwise, it falls back to simple truncation.
277
450
  * This method is called asynchronously after each new message is added.
278
451
  *
452
+ * A summary replaces a chunk of the messages between the first `messagesToKeepVerbatimHead` and the newest
453
+ * `messagesToKeepVerbatimTail`. None of the three ends inside a tool round: a round the head or the tail reaches into
454
+ * stays whole there, and a round the chunk reaches into is summarized whole, past `summarizationChunkSize`. A round
455
+ * that ends the history and waits for a result stays out of the chunk, with a tail of 0 too: a summary of its call
456
+ * would leave the results recorded later without it. The summary takes the chunk's place, so a message recorded while
457
+ * the summary is made stays after it. The summary of a history cleared meanwhile is dropped, and so is one whose
458
+ * chunk a result recorded meanwhile reaches into (a result for a call in the chunk, recorded after other messages):
459
+ * the pass that result started keeps the round whole. A summary whose chunk holds a message rewritten meanwhile (an
460
+ * output guardrail rewrites a stored reply through `replaceMessageContent()`) is dropped too, and made again from the
461
+ * message as it is. A history still past its limit with too few messages left for another chunk, the ones
462
+ * recorded meanwhile counted in, is trimmed, and the trim keeps this summary, and the last summary after it when a
463
+ * conversation loaded from storage holds one. One with enough left for another chunk waits for the next pass. A pass
464
+ * that finds a summary being made runs once it is made, so the messages recorded meanwhile, after a clear too, get
465
+ * their passes; a summary started before they have all run takes the rest.
466
+ *
279
467
  * @private
280
468
  * @async
281
469
  * @returns {Promise<void>}
282
470
  */
283
471
  async manageHistoryLength() {
284
- if (this.isSummarizing || this.messages.length <= this.config.maxHistoryLengthMessages) {
285
- return; // Already within limits or summarization in progress
472
+ // A limit of 0 keeps every message, as getHistory() returns them all.
473
+ if (this.config.maxHistoryLengthMessages <= 0 || this.messages.length <= this.config.maxHistoryLengthMessages) {
474
+ return; // No limit, or already within limits
475
+ }
476
+ if (this.isSummarizing) {
477
+ // A summary is being made: this pass runs once it is made.
478
+ this.deferredHistoryPasses += 1;
479
+ return;
286
480
  }
287
481
  if (this.config.enableAutomaticSummarization && this.utilityAI) {
288
482
  this.isSummarizing = true;
@@ -294,20 +488,47 @@ export class ConversationContext {
294
488
  this.truncateHistorySimple(this.config.maxHistoryLengthMessages);
295
489
  return; // Exit after simple truncation
296
490
  }
297
- // Ensure there's a middle section to process
298
- const middleSectionStartIndex = headCount;
299
- const middleSectionEndIndex = this.messages.length - tailCount;
491
+ // Ensure there's a middle section to process. It starts after the kept head and ends before the kept tail, each
492
+ // moved to keep a tool round whole, and before a round that ends the history and waits for a result.
493
+ const messages = this.messages;
494
+ const rounds = toolRoundBounds(messages);
495
+ const { start: middleSectionStartIndex, end: middleSectionEndIndex } = summaryMiddle(messages, headCount, tailCount, rounds);
300
496
  if (middleSectionStartIndex >= middleSectionEndIndex) {
301
497
  this.truncateHistorySimple(this.config.maxHistoryLengthMessages); // Not enough messages for a middle section
302
498
  return;
303
499
  }
304
- const middleSection = this.messages.slice(middleSectionStartIndex, middleSectionEndIndex);
305
- if (middleSection.length >= this.config.summarizationChunkSize && middleSection.length >= MIN_MESSAGES_FOR_SUMMARIZATION_ATTEMPT) {
306
- const messagesToSummarize = middleSection.slice(0, this.config.summarizationChunkSize);
500
+ const middleSectionLength = middleSectionEndIndex - middleSectionStartIndex;
501
+ if (middleSectionLength >= this.config.summarizationChunkSize && middleSectionLength >= MIN_MESSAGES_FOR_SUMMARIZATION_ATTEMPT) {
502
+ // The chunk ends where its last message's tool round ends. No round crosses the middle section's end, so the
503
+ // chunk stays inside the middle section.
504
+ const chunkEndIndex = rounds.end[middleSectionStartIndex + this.config.summarizationChunkSize - 1] + 1;
505
+ const messagesToSummarize = messages.slice(middleSectionStartIndex, chunkEndIndex);
506
+ // what the summary reads of each message, to tell whether one is rewritten while it is made
507
+ const summarizedContents = messagesToSummarize.map((m) => m.content);
307
508
  const textToSummarize = messagesToSummarize
308
509
  .map(m => `${m.name || m.role}: ${typeof m.content === 'string' ? m.content : (m.tool_calls ? '[Tool Call Invoked]' : '[Structured Content]')}`)
309
510
  .join('\n\n');
310
511
  const summaryContent = await this.utilityAI.summarize(textToSummarize, this.config.summarizationOptions);
512
+ // A history cleared while the summary was made no longer holds the messages it summarizes.
513
+ if (this.messages !== messages) {
514
+ console.log(`ConversationContext (ID: ${this.sessionId}): Summary of ${messagesToSummarize.length} messages dropped: the history was cleared while it was made.`);
515
+ return;
516
+ }
517
+ // A result recorded meanwhile for a call in the chunk, after other messages, ends the call's round past the
518
+ // chunk: the summary would leave the result without its call. It is dropped, and the pass the result
519
+ // started, which found this one making the summary, runs once the lock is released.
520
+ if (toolRoundBounds(messages).end[chunkEndIndex - 1] >= chunkEndIndex) {
521
+ console.log(`ConversationContext (ID: ${this.sessionId}): Summary of ${messagesToSummarize.length} messages dropped: a tool result recorded while it was made answers a call in its chunk.`);
522
+ return;
523
+ }
524
+ // A message of the chunk rewritten meanwhile (an output guardrail rewrites a stored reply) is no longer what
525
+ // the summary read, and a summary of what it held could keep what the rewrite removed. The summary is
526
+ // dropped, and a pass of its own makes it again from the message as it is once the lock is released.
527
+ if (messagesToSummarize.some((m, index) => m.content !== summarizedContents[index])) {
528
+ console.log(`ConversationContext (ID: ${this.sessionId}): Summary of ${messagesToSummarize.length} messages dropped: a message of its chunk was rewritten while it was made, so it is made again.`);
529
+ this.deferredHistoryPasses += 1;
530
+ return;
531
+ }
311
532
  const summaryMessageOptions = {
312
533
  // timestamp is removed from options, createConversationMessage will set it.
313
534
  originalMessagesSummarizedCount: messagesToSummarize.length,
@@ -321,17 +542,16 @@ export class ConversationContext {
321
542
  }, // Cast to MessageMetadata
322
543
  };
323
544
  const summaryMessage = createConversationMessage(MessageRole.SUMMARY, summaryContent, summaryMessageOptions);
324
- const headMessages = this.messages.slice(0, headCount);
325
- const tailMessages = this.messages.slice(this.messages.length - tailCount);
326
- const remainingMiddleAfterSummarizedChunk = middleSection.slice(this.config.summarizationChunkSize);
327
- this.messages = [...headMessages, summaryMessage, ...remainingMiddleAfterSummarizedChunk, ...tailMessages];
545
+ // The summary takes the chunk's place. While it was made the history could only grow, so the messages after
546
+ // the chunk, with any recorded meanwhile, stay as they are.
547
+ this.messages = [...messages.slice(0, middleSectionStartIndex), summaryMessage, ...messages.slice(chunkEndIndex)];
328
548
  console.log(`ConversationContext (ID: ${this.sessionId}): History summarized. New length: ${this.messages.length}.`);
329
549
  if (this.messages.length > this.config.maxHistoryLengthMessages) {
330
- // If still too long, recursively call or truncate if no more summarization is effective
331
- if (remainingMiddleAfterSummarizedChunk.length >= MIN_MESSAGES_FOR_SUMMARIZATION_ATTEMPT && remainingMiddleAfterSummarizedChunk.length >= this.config.summarizationChunkSize) {
332
- await this.manageHistoryLength(); // Recursive call with safeguard
333
- }
334
- else {
550
+ // The messages between the summary and the kept tail, the ones recorded meanwhile counted in. Too few for
551
+ // another chunk are trimmed, and the trim keeps this summary. Enough for one wait for the next pass: the
552
+ // one the next message starts, or one that found this pass making the summary.
553
+ const remainingMiddleLength = summaryMiddle(this.messages, headCount, tailCount).end - (middleSectionStartIndex + 1);
554
+ if (remainingMiddleLength < MIN_MESSAGES_FOR_SUMMARIZATION_ATTEMPT || remainingMiddleLength < this.config.summarizationChunkSize) {
335
555
  this.truncateHistorySimple(this.config.maxHistoryLengthMessages);
336
556
  }
337
557
  }
@@ -346,6 +566,15 @@ export class ConversationContext {
346
566
  }
347
567
  finally {
348
568
  this.isSummarizing = false;
569
+ // The passes that found this one making its summary run now, one after another, on the history as it is: the
570
+ // messages recorded meanwhile, after a clear too, get the passes they started. A message recorded between two
571
+ // of them can start a summary of its own, and each pass left would find it being made, count itself again
572
+ // and return at once, round after round on microtasks alone, so its reply could never arrive. They are left
573
+ // to the pass making that summary, which runs them once it is made.
574
+ while (this.deferredHistoryPasses > 0 && !this.isSummarizing) {
575
+ this.deferredHistoryPasses -= 1;
576
+ await this.manageHistoryLength();
577
+ }
349
578
  }
350
579
  }
351
580
  else {
@@ -353,29 +582,74 @@ export class ConversationContext {
353
582
  }
354
583
  }
355
584
  /**
356
- * Performs simple truncation of message history, primarily from the middle,
357
- * preserving a configured number of head and tail messages.
585
+ * Where a trim to `targetMessageCount` messages cuts `messages`: it keeps the first `messagesToKeepVerbatimHead` (at
586
+ * most `targetMessageCount`), the summary right after them and the last summary after them, and the newest that fill
587
+ * the rest. The head and the newest keep a tool round they reach into whole. A summary pass puts its summary right
588
+ * after the first messages, and each pass summarizes the one before it there. A conversation loaded from storage
589
+ * holds each stored summary where its own time sorts it, after the messages it replaced, and its last one stands for
590
+ * the ones stored before it; a pass on it starts a summary of its own right after the first messages, from messages
591
+ * the stored ones may not all stand for. So the two can stand for different messages the trim leaves out, and each
592
+ * that is not among the newest takes the place of the oldest of them, as long as one of those is still kept: the last
593
+ * summary alone when both do not fit. A summary is neither a call nor a result, so it is kept alone wherever it sits.
358
594
  *
359
595
  * @private
360
- * @param {number} targetMessageCount - The desired maximum number of messages after truncation.
596
+ */
597
+ trimCuts(messages, targetMessageCount) {
598
+ const headCount = Math.max(0, Math.min(this.config.messagesToKeepVerbatimHead, targetMessageCount));
599
+ const tailCount = Math.max(0, targetMessageCount - headCount);
600
+ if (headCount + tailCount >= messages.length) {
601
+ return { headEnd: messages.length, summaryIndexes: [], tailStart: messages.length };
602
+ }
603
+ const rounds = toolRoundBounds(messages);
604
+ const cuts = cutsKeepingToolRounds(messages, headCount, tailCount, rounds);
605
+ // the summary right after the head and the last summary after it
606
+ const summaries = [];
607
+ if (messages[cuts.headEnd]?.role === MessageRole.SUMMARY)
608
+ summaries.push(cuts.headEnd);
609
+ for (let index = messages.length - 1; index > cuts.headEnd; index -= 1) {
610
+ if (messages[index].role === MessageRole.SUMMARY) {
611
+ summaries.push(index);
612
+ break;
613
+ }
614
+ }
615
+ // Both summaries when they fit, else the last one alone. Each summary before the newest keeps one fewer of them,
616
+ // while one of them is still kept. Neither cut moves before a summary: the head's end stays, and the newest start
617
+ // no earlier than before, so keeping fewer of them can only leave a summary before them.
618
+ for (const kept of [summaries, summaries.slice(-1)]) {
619
+ for (let reserved = 0; reserved <= kept.length && tailCount - reserved >= 1; reserved += 1) {
620
+ const next = reserved === 0 ? cuts : cutsKeepingToolRounds(messages, headCount, tailCount - reserved, rounds);
621
+ const before = kept.filter((index) => index < next.tailStart);
622
+ if (before.length <= reserved) {
623
+ return { headEnd: next.headEnd, summaryIndexes: before, tailStart: next.tailStart };
624
+ }
625
+ }
626
+ }
627
+ return { ...cuts, summaryIndexes: [] };
628
+ }
629
+ /**
630
+ * Performs simple truncation of message history from the middle: it keeps the first `messagesToKeepVerbatimHead`
631
+ * messages (at most `targetMessageCount`), the summary right after them and the last summary after them, and the
632
+ * newest that fill the rest of `targetMessageCount`. Each summary stands for messages the trim leaves out, so one
633
+ * that is not among the newest takes the place of the oldest of them, as long as one of those is still kept. A
634
+ * target of 0 keeps every message.
635
+ *
636
+ * Providers refuse a tool call without its result and a tool result without its call, so neither cut falls inside a
637
+ * tool round (an assistant message that names tool calls, the tool messages that answer them and anything between):
638
+ * a round the kept head or the kept newest messages reach into is kept whole. When keeping it whole passes
639
+ * `targetMessageCount`, the round is kept whole anyway and the history holds more messages, as the prompt engine's
640
+ * token trim (`PromptEngine.truncateMessages`) keeps a round it cannot drop. A round in the head stays; a round the
641
+ * newest messages reach into is left out whole by a later trim, once newer messages fill the rest.
642
+ *
643
+ * @private
644
+ * @param {number} targetMessageCount - The number of messages to keep, passed when a tool round stays whole.
361
645
  */
362
646
  truncateHistorySimple(targetMessageCount) {
363
- if (this.messages.length <= targetMessageCount) {
647
+ if (targetMessageCount <= 0 || this.messages.length <= targetMessageCount) {
364
648
  return;
365
649
  }
366
- const headCount = Math.max(0, Math.min(this.config.messagesToKeepVerbatimHead, targetMessageCount));
367
- // Calculate how many tail messages can be kept to reach the targetMessageCount
368
- const tailMessagesToKeepCount = Math.max(0, targetMessageCount - headCount);
369
- if (this.messages.length > headCount + tailMessagesToKeepCount) { // Check if truncation is actually needed
370
- const headMessages = this.messages.slice(0, headCount);
371
- const tailMessages = tailMessagesToKeepCount > 0 ? this.messages.slice(-tailMessagesToKeepCount) : [];
372
- this.messages = [...headMessages, ...tailMessages];
373
- }
374
- // If targetMessageCount is very small, this might result in fewer messages than targetMessageCount if headCount itself exceeds it.
375
- // Or if headCount + tailMessagesToKeepCount > this.messages.length (shouldn't happen if initial check passes).
376
- // The logic prioritizes keeping head messages if targetCount is less than headCount.
377
- if (this.messages.length > targetMessageCount) { // Final trim if somehow still over
378
- this.messages.splice(targetMessageCount);
650
+ const cuts = this.trimCuts(this.messages, targetMessageCount);
651
+ if (cuts.headEnd < cuts.tailStart) {
652
+ this.messages = keptByTrim(this.messages, cuts);
379
653
  }
380
654
  console.log(`ConversationContext (ID: ${this.sessionId}): History truncated simply. New length: ${this.messages.length}. Target: ${targetMessageCount}.`);
381
655
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../../src/core/conversation/ConversationContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../../src/core/conversation/ConversationContext.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.15.61",
3
+ "version": "0.15.63",
4
4
  "description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
5
5
  "homepage": "https://agentos.sh",
6
6
  "repository": {