@gaunt-sloth/core 2.0.0-beta.5 → 2.0.0-beta.6

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 (91) hide show
  1. package/dist/config/schema.d.ts +4 -0
  2. package/dist/config/schema.js +64 -2
  3. package/dist/config/schema.js.map +1 -1
  4. package/dist/config/tokenBudget.d.ts +88 -0
  5. package/dist/config/tokenBudget.js +155 -0
  6. package/dist/config/tokenBudget.js.map +1 -0
  7. package/dist/config/types.d.ts +33 -4
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/config.d.ts +1 -0
  10. package/dist/config.js +5 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/core/GthAbstractAgent.d.ts +24 -0
  13. package/dist/core/GthAbstractAgent.js +37 -1
  14. package/dist/core/GthAbstractAgent.js.map +1 -1
  15. package/dist/core/GthAgentRunner.d.ts +216 -1
  16. package/dist/core/GthAgentRunner.js +424 -3
  17. package/dist/core/GthAgentRunner.js.map +1 -1
  18. package/dist/core/GthLangChainAgent.d.ts +196 -0
  19. package/dist/core/GthLangChainAgent.js +392 -2
  20. package/dist/core/GthLangChainAgent.js.map +1 -1
  21. package/dist/core/approvals/conversationGrants.d.ts +60 -0
  22. package/dist/core/approvals/conversationGrants.js +77 -0
  23. package/dist/core/approvals/conversationGrants.js.map +1 -0
  24. package/dist/core/approvals/grants.d.ts +16 -0
  25. package/dist/core/approvals/grants.js +20 -5
  26. package/dist/core/approvals/grants.js.map +1 -1
  27. package/dist/core/compaction.d.ts +181 -0
  28. package/dist/core/compaction.js +293 -0
  29. package/dist/core/compaction.js.map +1 -0
  30. package/dist/core/compactionThreshold.d.ts +158 -0
  31. package/dist/core/compactionThreshold.js +183 -0
  32. package/dist/core/compactionThreshold.js.map +1 -0
  33. package/dist/core/contextWindow.d.ts +146 -0
  34. package/dist/core/contextWindow.js +256 -0
  35. package/dist/core/contextWindow.js.map +1 -0
  36. package/dist/core/exitOutputChannel.d.ts +51 -0
  37. package/dist/core/exitOutputChannel.js +65 -0
  38. package/dist/core/exitOutputChannel.js.map +1 -0
  39. package/dist/core/refusal.d.ts +17 -2
  40. package/dist/core/refusal.js +80 -14
  41. package/dist/core/refusal.js.map +1 -1
  42. package/dist/core/runStats.d.ts +1 -1
  43. package/dist/core/terminationNotice.d.ts +8 -0
  44. package/dist/core/terminationNotice.js +10 -4
  45. package/dist/core/terminationNotice.js.map +1 -1
  46. package/dist/core/terminationReason.d.ts +28 -0
  47. package/dist/core/terminationReason.js +27 -0
  48. package/dist/core/terminationReason.js.map +1 -1
  49. package/dist/core/types.d.ts +35 -1
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/history/checkpointRetention.d.ts +279 -0
  52. package/dist/history/checkpointRetention.js +567 -0
  53. package/dist/history/checkpointRetention.js.map +1 -0
  54. package/dist/history/checkpointSaver.d.ts +93 -0
  55. package/dist/history/checkpointSaver.js +464 -0
  56. package/dist/history/checkpointSaver.js.map +1 -0
  57. package/dist/history/historyEnabled.d.ts +27 -0
  58. package/dist/history/historyEnabled.js +23 -0
  59. package/dist/history/historyEnabled.js.map +1 -0
  60. package/dist/history/historyFormat.d.ts +27 -0
  61. package/dist/history/historyFormat.js +125 -2
  62. package/dist/history/historyFormat.js.map +1 -1
  63. package/dist/history/historyStore.d.ts +61 -0
  64. package/dist/history/historyStore.js +180 -7
  65. package/dist/history/historyStore.js.map +1 -1
  66. package/dist/history/recordSession.d.ts +84 -22
  67. package/dist/history/recordSession.js +187 -12
  68. package/dist/history/recordSession.js.map +1 -1
  69. package/dist/history/sessionCheckpointer.d.ts +48 -0
  70. package/dist/history/sessionCheckpointer.js +200 -0
  71. package/dist/history/sessionCheckpointer.js.map +1 -0
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.js +8 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/providers/modelCatalog.d.ts +14 -0
  76. package/dist/providers/modelCatalog.js +4 -0
  77. package/dist/providers/modelCatalog.js.map +1 -1
  78. package/dist/providers/modelDiscovery.d.ts +3 -1
  79. package/dist/providers/modelDiscovery.js +22 -8
  80. package/dist/providers/modelDiscovery.js.map +1 -1
  81. package/dist/providers/ollama.js +3 -19
  82. package/dist/providers/ollama.js.map +1 -1
  83. package/dist/runtime/conversation.js +7 -1
  84. package/dist/runtime/conversation.js.map +1 -1
  85. package/dist/runtime/singleShot.js +6 -1
  86. package/dist/runtime/singleShot.js.map +1 -1
  87. package/dist/utils/consoleUtils.d.ts +77 -0
  88. package/dist/utils/consoleUtils.js +81 -0
  89. package/dist/utils/consoleUtils.js.map +1 -1
  90. package/package.json +2 -2
  91. package/schema/gsloth-config.schema.json +33 -14
@@ -0,0 +1,77 @@
1
+ import { readConversationGrantsSafe, writeConversationGrantsSafe, } from '#src/history/recordSession.js';
2
+ import { readGrant } from '#src/core/approvals/grants.js';
3
+ /** A document with nothing in it, which is also what an absent or unreadable one reads as. */
4
+ export const NO_CONVERSATION_GRANTS = Object.freeze({
5
+ allow: [],
6
+ deny: [],
7
+ });
8
+ /**
9
+ * Serialise the grants for storage. `null` when there is nothing to store, so a conversation that
10
+ * never granted anything keeps a NULL column rather than an empty document.
11
+ */
12
+ export function encodeConversationGrants(grants) {
13
+ if (grants.allow.length === 0 && grants.deny.length === 0)
14
+ return null;
15
+ const document = {
16
+ version: 1,
17
+ allow: grants.allow,
18
+ deny: grants.deny,
19
+ };
20
+ return JSON.stringify(document);
21
+ }
22
+ /**
23
+ * Parse a stored document. Anything that is not a readable v1 document — corrupt JSON, another
24
+ * shape, a future version — reads as no grants: a resume that cannot read them costs a re-prompt,
25
+ * never a grant the person did not make. A malformed entry inside a readable document is skipped
26
+ * on its own ({@link readGrant}), and every stored scope is forced back to `session`: that is the
27
+ * only scope this document holds, and a file that claimed otherwise would be describing the project
28
+ * store, which is not consulted here.
29
+ */
30
+ export function decodeConversationGrants(json) {
31
+ if (json === null)
32
+ return { allow: [], deny: [] };
33
+ let parsed;
34
+ try {
35
+ parsed = JSON.parse(json);
36
+ }
37
+ catch {
38
+ return { allow: [], deny: [] };
39
+ }
40
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
41
+ return { allow: [], deny: [] };
42
+ const record = parsed;
43
+ if (record.version !== 1)
44
+ return { allow: [], deny: [] };
45
+ const fallbackTime = new Date().toISOString();
46
+ const readList = (value) => Array.isArray(value)
47
+ ? value
48
+ .map((entry) => readGrant(entry, fallbackTime))
49
+ .filter((grant) => grant !== null)
50
+ .map((grant) => ({ ...grant, scope: 'session' }))
51
+ : [];
52
+ return { allow: readList(record.allow), deny: readList(record.deny) };
53
+ }
54
+ /**
55
+ * Load the grants a conversation had, for a resume to restore. Empty when history is off, the
56
+ * store cannot be opened, the conversation has none, or the document cannot be read. Never throws.
57
+ */
58
+ export function loadConversationGrantsSafe(config, conversationId) {
59
+ return decodeConversationGrants(readConversationGrantsSafe(config, conversationId));
60
+ }
61
+ /**
62
+ * Store the grants a conversation has now. Called by the session on every change to the runner's
63
+ * session-scoped grants, so the row is always the current set. A `conversationId` of `undefined`
64
+ * (history off, or the row could not be opened) is a no-op — there is nowhere to write, and that is
65
+ * the case where a grant correctly ends with the process. Never throws.
66
+ */
67
+ export function saveConversationGrantsSafe(config, conversationId, grants) {
68
+ if (conversationId === undefined)
69
+ return;
70
+ try {
71
+ writeConversationGrantsSafe(config, conversationId, encodeConversationGrants(grants));
72
+ }
73
+ catch {
74
+ /* fail-soft: recording a grant must never be what breaks the turn that made it */
75
+ }
76
+ }
77
+ //# sourceMappingURL=conversationGrants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationGrants.js","sourceRoot":"","sources":["../../../src/core/approvals/conversationGrants.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,22 @@ export declare function trustWithdrawalWeakens(hint: ToolAnnotationHint): boolea
114
114
  * message uses.
115
115
  */
116
116
  export declare function describeWeakenedGrant(entry: ApprovalEntry, weakened: readonly ToolAnnotationHint[], snapshot: EffectiveToolAnnotations, current: EffectiveToolAnnotations): string;
117
+ /**
118
+ * Read one persisted grant defensively. The **entry is validated by the config grammar's own
119
+ * schema** — one grammar, one validator — so a malformed entry is dropped here and can never reach
120
+ * the matcher. Timestamp and scope are coerced rather than validated: they decide nothing, and
121
+ * discarding a real grant over a missing timestamp would cost an approval the human already gave.
122
+ * The annotation snapshot is the exception ({@link readAnnotationSnapshot}), because it decides.
123
+ */
124
+ /**
125
+ * Read one stored grant, or `null` when the value is not one: no readable entry, or an annotation
126
+ * snapshot that is present and malformed (see `readAnnotationSnapshot`).
127
+ *
128
+ * Exported because the conversation-grants document a resume restores
129
+ * (`core/approvals/conversationGrants.ts`) stores grants in this same shape, and one reader for
130
+ * both files is what keeps the two from accepting different things.
131
+ */
132
+ export declare function readGrant(value: unknown, fallbackTime: string): ApprovalGrant | null;
117
133
  /**
118
134
  * A set of grants with entry-identity semantics. Pure data + membership: it holds what the human
119
135
  * granted and answers *is this the same grant*, never *does this grant cover that command*.
@@ -344,7 +344,15 @@ function readAnnotationSnapshot(value) {
344
344
  * discarding a real grant over a missing timestamp would cost an approval the human already gave.
345
345
  * The annotation snapshot is the exception ({@link readAnnotationSnapshot}), because it decides.
346
346
  */
347
- function readGrant(value, fallbackTime) {
347
+ /**
348
+ * Read one stored grant, or `null` when the value is not one: no readable entry, or an annotation
349
+ * snapshot that is present and malformed (see `readAnnotationSnapshot`).
350
+ *
351
+ * Exported because the conversation-grants document a resume restores
352
+ * (`core/approvals/conversationGrants.ts`) stores grants in this same shape, and one reader for
353
+ * both files is what keeps the two from accepting different things.
354
+ */
355
+ export function readGrant(value, fallbackTime) {
348
356
  if (!value || typeof value !== 'object')
349
357
  return null;
350
358
  const record = value;
@@ -585,7 +593,10 @@ function refusedWriteNotice(filePath, holds, state) {
585
593
  return {
586
594
  level: StatusLevel.ERROR,
587
595
  message: `This answer was NOT saved to ${filePath}, because that file could not be read when this ` +
588
- `session started. ${recovery} For now the answer applies to this session only.`,
596
+ // GS2-20 an unsaved answer is held with the CONVERSATION (recorded in the history store and
597
+ // installed again on a resume), so the fallback lifetime is the conversation's.
598
+ `session started. ${recovery} For now the answer applies to this conversation only: ` +
599
+ 'resuming it keeps the answer, and any other conversation will ask again.',
589
600
  };
590
601
  }
591
602
  /**
@@ -617,8 +628,9 @@ function failedWriteNotice(filePath, holds, purpose, reason) {
617
628
  return {
618
629
  level: StatusLevel.ERROR,
619
630
  message: `${filePath} could NOT be updated (${reason}), so this entry is still saved in it. It is ` +
620
- 'lifted for the rest of this session and it will be back in the next one, until that file ' +
621
- 'can be written or you remove the entry from it by hand.',
631
+ // GS2-20 the lift, like a grant, is held with the conversation.
632
+ 'lifted for the rest of this conversation and it will be back in any other, until that ' +
633
+ 'file can be written or you remove the entry from it by hand.',
622
634
  };
623
635
  }
624
636
  if (purpose === 'migrate') {
@@ -633,7 +645,10 @@ function failedWriteNotice(filePath, holds, purpose, reason) {
633
645
  level: StatusLevel.ERROR,
634
646
  message: `This answer was NOT saved to ${filePath}, because that file could not be written ` +
635
647
  `(${reason}). Nothing in it was lost — it was read normally and is left exactly as it is. ` +
636
- 'The answer applies to this session only; a new session will not have it.',
648
+ // GS2-20 the fallback lifetime is the conversation's: kept in the history store, back on
649
+ // a resume, absent from any other conversation.
650
+ 'The answer applies to this conversation only; resuming it keeps the answer, and any other ' +
651
+ 'conversation will not have it.',
637
652
  };
638
653
  }
639
654
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../../src/core/approvals/grants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../../src/core/approvals/grants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * GS2-23 — **the one conversation-compaction mechanism.** Folds the older part of a conversation
4
+ * into a single summary message and keeps a recent tail verbatim, so the model has room to go on.
5
+ *
6
+ * Every path that shortens a conversation goes through {@link compactMessages}: the manual
7
+ * `/compact` (this node), the reactive compact-and-retry on a context overflow (EXT-160) and the
8
+ * preventive threshold (EXT-161). Built separately they would disagree about what a context window
9
+ * is, so the invariants live here once, as tests rather than as comments:
10
+ *
11
+ * - **(a)** a `tool_call` is never separated from its `tool_result`: the cut moves so an `AIMessage`
12
+ * with `tool_calls` and every `ToolMessage` answering it fall on the same side, by widening the
13
+ * kept tail back to the pair's start;
14
+ * - **(b)** a system prompt survives untouched, and the summary is carried in a `HumanMessage` —
15
+ * never a mid-list `SystemMessage`, which `ChatAnthropic` rejects outright;
16
+ * - **(c)** the tail is never truncated at its end, so the last message of the input is the last
17
+ * message of the output: a history that ended on the pending user turn still does, and no
18
+ * compaction turns a completed exchange into a trailing assistant turn. The guarantee is
19
+ * relative to the input — the mechanism never CREATES a trailing assistant turn; a history a
20
+ * thrown turn left ending on its unanswered human turn still ends on it, and having the next
21
+ * human turn present before the model is invoked again is the caller's job;
22
+ * - **(d)** the operation converges: a previous summary is recognised by its marker and folded into
23
+ * the new one, so a compacted history compacted again holds exactly one summary message.
24
+ *
25
+ * The function is pure over its inputs and does no I/O of its own: the model call is injected as
26
+ * `summarize`, which is what lets the involuntary path bind a different model, a test bind a stub,
27
+ * and the manual command bind the session's own. Applying the result to the live graph is the
28
+ * runner's job (`GthAgentRunner.compactConversation`), through {@link replaceGraphMessages}.
29
+ */
30
+ import { HumanMessage, type BaseMessage } from '@langchain/core/messages';
31
+ import type { RunnableConfig } from '@langchain/core/runnables';
32
+ /**
33
+ * How many trailing messages a compaction keeps verbatim when the caller names no number.
34
+ *
35
+ * Small on purpose: a compaction is asked for when the conversation has grown too long, and the
36
+ * summary is what carries the rest. Six is roughly the last exchange with a tool call in it, or the
37
+ * last three plain exchanges — enough that the model still sees, word for word, what it was just
38
+ * doing. The kept tail can be wider than this when the cut would have split a tool pair (see
39
+ * {@link compactionCutIndex}).
40
+ */
41
+ export declare const DEFAULT_KEEP_RECENT = 6;
42
+ /**
43
+ * The marker a summary message carries in `additional_kwargs.lc_source`, so a later compaction can
44
+ * recognise it and fold it in rather than nest a summary inside a summary.
45
+ *
46
+ * It rides in the slot LangChain's own `summarizationMiddleware` uses (`lc_source: 'summarization'`),
47
+ * which is why {@link isCompactionSummary} accepts both values: a history that the opt-in
48
+ * middleware already summarised converges through here the same way one of ours does.
49
+ */
50
+ export declare const COMPACTION_SUMMARY_SOURCE = "gth-compaction";
51
+ /** The line the summary message opens with, so the model reads what follows as a summary. */
52
+ export declare const COMPACTION_SUMMARY_PREFIX = "Here is a summary of the conversation to date:";
53
+ /** What a compaction hands back: the replacement list and what changed. */
54
+ export interface CompactMessagesResult {
55
+ /** The replacement message list — the input unchanged when `changed` is false. */
56
+ messages: BaseMessage[];
57
+ /** The summary the model produced, or `''` when nothing was folded. */
58
+ summaryText: string;
59
+ /** How many messages were folded into the summary (a previous summary counts as one of them). */
60
+ removedCount: number;
61
+ /** How many trailing messages were kept verbatim. */
62
+ keptCount: number;
63
+ /** Whether anything was folded. False leaves the conversation exactly as it was. */
64
+ changed: boolean;
65
+ }
66
+ /** The summariser a compaction calls once, over the span being folded. */
67
+ export type ConversationSummarizer = (spanToSummarize: BaseMessage[], focus?: string) => Promise<string>;
68
+ /** Input to {@link compactMessages}. */
69
+ export interface CompactMessagesInput {
70
+ /**
71
+ * The conversation as the graph holds it. A system prompt at the head is left where it is and
72
+ * excluded from the fold; the graphs this repo builds keep the system prompt outside
73
+ * `state.messages` altogether, so it is usually absent.
74
+ */
75
+ messages: readonly BaseMessage[];
76
+ /** The one model call the compaction makes, injected so the function itself does no I/O. */
77
+ summarize: ConversationSummarizer;
78
+ /** Trailing messages to keep verbatim; {@link DEFAULT_KEEP_RECENT} when omitted. */
79
+ keepRecent?: number;
80
+ /** An optional instruction from the user about what the summary should concentrate on. */
81
+ focus?: string;
82
+ }
83
+ /** Whether a message is a summary produced by a previous compaction (ours or LangChain's). */
84
+ export declare function isCompactionSummary(message: BaseMessage): boolean;
85
+ /**
86
+ * The summary as the graph will hold it: a `HumanMessage`, marked so {@link isCompactionSummary}
87
+ * finds it again. A `HumanMessage` and not a `SystemMessage` because a system message anywhere but
88
+ * first is rejected by the Anthropic converter, and because the summary is conversation content —
89
+ * what the two parties said — rather than an instruction about how to behave.
90
+ */
91
+ export declare function createCompactionSummaryMessage(summaryText: string): HumanMessage;
92
+ /**
93
+ * **The cut rule.** Returns the index in `messages` where the kept tail begins, or `null` when
94
+ * there is nothing to fold.
95
+ *
96
+ * The tail is the last `keepRecent` messages, widened backwards so no `tool_call` is separated from
97
+ * its `tool_result` (`widenTailToPairStart`). A system prompt at the head is never part of
98
+ * either side. A previous summary sits at the head of the conversation and is always in the folded
99
+ * span, never in the tail — and when it would be the ONLY thing folded, nothing is folded: rewriting
100
+ * a summary with no new material behind it is the thrash invariant (d) forbids.
101
+ */
102
+ export declare function compactionCutIndex(messages: readonly BaseMessage[], keepRecent?: number): number | null;
103
+ /**
104
+ * Fold the older part of `messages` into one summary message. See the module doc for the four
105
+ * invariants this holds and the tests that pin them.
106
+ *
107
+ * `summarize` is called exactly once, over the folded span (a previous summary included, so its
108
+ * content is carried forward rather than lost), and its failure propagates: a compaction that
109
+ * cannot get a summary leaves the conversation alone and says so, rather than replacing history
110
+ * with an error string.
111
+ */
112
+ export declare function compactMessages(input: CompactMessagesInput): Promise<CompactMessagesResult>;
113
+ /**
114
+ * The prompt the summariser sends, in the shape of LangChain's `summarizationMiddleware` prompt
115
+ * (role, objective, instructions, then the rendered messages) so the two mechanisms ask the model
116
+ * for the same kind of artifact. The `focus` block is the one addition: the user's own steer on
117
+ * what the summary should keep, appended when `/compact` was given free text.
118
+ */
119
+ export declare function buildCompactionPrompt(span: readonly BaseMessage[], focus?: string): string;
120
+ /** The narrowest thing a summariser needs from a chat model: `invoke(prompt)` returning a message. */
121
+ export interface SummarizingModel {
122
+ invoke(input: string): Promise<{
123
+ content: unknown;
124
+ }>;
125
+ }
126
+ /**
127
+ * A {@link ConversationSummarizer} bound to a chat model: renders the span with
128
+ * {@link buildCompactionPrompt} and returns the reply's text. The session model is what the runner
129
+ * binds; a caller with a cheaper model for summaries binds that instead.
130
+ */
131
+ export declare function createModelSummarizer(model: SummarizingModel): ConversationSummarizer;
132
+ /** A message-count and character-based size of a conversation — an estimate, never tokens. */
133
+ export interface ConversationSize {
134
+ messages: number;
135
+ characters: number;
136
+ }
137
+ /**
138
+ * The size of a conversation as a message count and a character estimate. Characters, not tokens,
139
+ * on purpose: precise token accounting belongs with the threshold that needs it (EXT-161), and a
140
+ * before/after comparison only has to agree with itself.
141
+ */
142
+ export declare function conversationSize(messages: readonly BaseMessage[]): ConversationSize;
143
+ /** The structural surface of a compiled LangGraph graph that a replacement needs. */
144
+ export interface MessagesGraph {
145
+ updateState(config: RunnableConfig, values: {
146
+ messages: BaseMessage[];
147
+ }, asNode?: string): Promise<unknown>;
148
+ }
149
+ /**
150
+ * Replace a thread's whole message list with `messages`, through the graph's own `updateState`.
151
+ *
152
+ * The write is `RemoveMessage(REMOVE_ALL_MESSAGES)` followed by the replacement, which the
153
+ * `messagesStateReducer` behind `state.messages` turns into "discard everything, keep what
154
+ * follows". Going through `updateState` is what makes a compaction durable for free: the graph
155
+ * writes a new checkpoint, so the next turn and a later resume both load the compacted history.
156
+ */
157
+ export declare function replaceGraphMessages(graph: MessagesGraph, runConfig: RunnableConfig, messages: readonly BaseMessage[]): Promise<void>;
158
+ /** What `GthAgentRunner.compactConversation` reports about the compaction it applied. */
159
+ export interface ConversationCompaction {
160
+ /** Whether anything was folded. When false, nothing was written and `after` equals `before`. */
161
+ changed: boolean;
162
+ /** Messages folded into the summary. */
163
+ removedCount: number;
164
+ /** Messages kept verbatim after the summary (the whole conversation when nothing changed). */
165
+ keptCount: number;
166
+ /** The tail length that was asked for; the kept count can be wider (a tool pair was protected). */
167
+ keepRecent: number;
168
+ /** The summary the model produced, or `''` when nothing changed. */
169
+ summaryText: string;
170
+ /** The conversation's size before the compaction. */
171
+ before: ConversationSize;
172
+ /** The conversation's size as the graph holds it afterwards, read back rather than computed. */
173
+ after: ConversationSize;
174
+ }
175
+ /** Options for `GthAgentRunner.compactConversation`. */
176
+ export interface CompactConversationOptions {
177
+ /** Free text after `/compact`: what the summary should concentrate on. */
178
+ focus?: string;
179
+ /** Trailing messages to keep verbatim; {@link DEFAULT_KEEP_RECENT} when omitted. */
180
+ keepRecent?: number;
181
+ }