@gaunt-sloth/core 2.0.0-beta.4 → 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.
- package/dist/config/schema.d.ts +4 -0
- package/dist/config/schema.js +64 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/config/tokenBudget.d.ts +88 -0
- package/dist/config/tokenBudget.js +155 -0
- package/dist/config/tokenBudget.js.map +1 -0
- package/dist/config/types.d.ts +33 -4
- package/dist/config/types.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -1
- package/dist/core/GthAbstractAgent.d.ts +24 -0
- package/dist/core/GthAbstractAgent.js +37 -1
- package/dist/core/GthAbstractAgent.js.map +1 -1
- package/dist/core/GthAgentRunner.d.ts +216 -1
- package/dist/core/GthAgentRunner.js +424 -3
- package/dist/core/GthAgentRunner.js.map +1 -1
- package/dist/core/GthLangChainAgent.d.ts +196 -0
- package/dist/core/GthLangChainAgent.js +392 -2
- package/dist/core/GthLangChainAgent.js.map +1 -1
- package/dist/core/approvals/approvalRequest.d.ts +142 -0
- package/dist/core/approvals/approvalRequest.js +198 -3
- package/dist/core/approvals/approvalRequest.js.map +1 -1
- package/dist/core/approvals/conversationGrants.d.ts +60 -0
- package/dist/core/approvals/conversationGrants.js +77 -0
- package/dist/core/approvals/conversationGrants.js.map +1 -0
- package/dist/core/approvals/grants.d.ts +16 -0
- package/dist/core/approvals/grants.js +20 -5
- package/dist/core/approvals/grants.js.map +1 -1
- package/dist/core/compaction.d.ts +181 -0
- package/dist/core/compaction.js +293 -0
- package/dist/core/compaction.js.map +1 -0
- package/dist/core/compactionThreshold.d.ts +158 -0
- package/dist/core/compactionThreshold.js +183 -0
- package/dist/core/compactionThreshold.js.map +1 -0
- package/dist/core/contextWindow.d.ts +146 -0
- package/dist/core/contextWindow.js +256 -0
- package/dist/core/contextWindow.js.map +1 -0
- package/dist/core/exitOutputChannel.d.ts +51 -0
- package/dist/core/exitOutputChannel.js +65 -0
- package/dist/core/exitOutputChannel.js.map +1 -0
- package/dist/core/refusal.d.ts +17 -2
- package/dist/core/refusal.js +80 -14
- package/dist/core/refusal.js.map +1 -1
- package/dist/core/runStats.d.ts +1 -1
- package/dist/core/terminationNotice.d.ts +8 -0
- package/dist/core/terminationNotice.js +10 -4
- package/dist/core/terminationNotice.js.map +1 -1
- package/dist/core/terminationReason.d.ts +28 -0
- package/dist/core/terminationReason.js +27 -0
- package/dist/core/terminationReason.js.map +1 -1
- package/dist/core/types.d.ts +35 -1
- package/dist/core/types.js.map +1 -1
- package/dist/history/checkpointRetention.d.ts +279 -0
- package/dist/history/checkpointRetention.js +567 -0
- package/dist/history/checkpointRetention.js.map +1 -0
- package/dist/history/checkpointSaver.d.ts +93 -0
- package/dist/history/checkpointSaver.js +464 -0
- package/dist/history/checkpointSaver.js.map +1 -0
- package/dist/history/historyEnabled.d.ts +27 -0
- package/dist/history/historyEnabled.js +23 -0
- package/dist/history/historyEnabled.js.map +1 -0
- package/dist/history/historyFormat.d.ts +27 -0
- package/dist/history/historyFormat.js +125 -2
- package/dist/history/historyFormat.js.map +1 -1
- package/dist/history/historyStore.d.ts +61 -0
- package/dist/history/historyStore.js +180 -7
- package/dist/history/historyStore.js.map +1 -1
- package/dist/history/recordSession.d.ts +84 -22
- package/dist/history/recordSession.js +187 -12
- package/dist/history/recordSession.js.map +1 -1
- package/dist/history/sessionCheckpointer.d.ts +48 -0
- package/dist/history/sessionCheckpointer.js +200 -0
- package/dist/history/sessionCheckpointer.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/modelCatalog.d.ts +14 -0
- package/dist/providers/modelCatalog.js +4 -0
- package/dist/providers/modelCatalog.js.map +1 -1
- package/dist/providers/modelDiscovery.d.ts +3 -1
- package/dist/providers/modelDiscovery.js +22 -8
- package/dist/providers/modelDiscovery.js.map +1 -1
- package/dist/providers/ollama.js +3 -19
- package/dist/providers/ollama.js.map +1 -1
- package/dist/runtime/conversation.js +7 -1
- package/dist/runtime/conversation.js.map +1 -1
- package/dist/runtime/singleShot.js +6 -1
- package/dist/runtime/singleShot.js.map +1 -1
- package/dist/utils/consoleUtils.d.ts +77 -0
- package/dist/utils/consoleUtils.js +81 -0
- package/dist/utils/consoleUtils.js.map +1 -1
- package/package.json +2 -2
- package/schema/gsloth-config.schema.json +33 -14
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* {@link displayTermination} says nothing to the user, because "we did not classify this" is a
|
|
25
25
|
* defect report aimed at us and not an explanation aimed at them.
|
|
26
26
|
*/
|
|
27
|
-
import {
|
|
27
|
+
import { displayNotice } from '#src/utils/consoleUtils.js';
|
|
28
28
|
import { debugLog } from '#src/utils/debugUtils.js';
|
|
29
29
|
/**
|
|
30
30
|
* What each category is called in a sentence a user reads.
|
|
@@ -190,6 +190,14 @@ export function terminationLogLine(reason) {
|
|
|
190
190
|
*
|
|
191
191
|
* Fail-soft in the strongest sense: explaining a failure must never become a second failure, so
|
|
192
192
|
* every path here is wrapped and a throw is swallowed.
|
|
193
|
+
*
|
|
194
|
+
* **The whole notice, on one stream, at any console level.** Written through
|
|
195
|
+
* {@link displayNotice}, so the title and the body cannot land on different streams and cannot be
|
|
196
|
+
* filtered apart. `gate: 'always'` because {@link terminationCode} is the token a user quotes in a
|
|
197
|
+
* bug report and there is nowhere else they will find it: the session log is off by default and the
|
|
198
|
+
* debug log is not what anyone reads. A notice they cannot recover is not a notice worth quieting —
|
|
199
|
+
* and only a run that ended abnormally reaches here at all, since
|
|
200
|
+
* {@link shouldAnnounceTermination} declines the ordinary ones.
|
|
193
201
|
*/
|
|
194
202
|
export function displayTermination(reason) {
|
|
195
203
|
try {
|
|
@@ -197,9 +205,7 @@ export function displayTermination(reason) {
|
|
|
197
205
|
if (!reason || !shouldAnnounceTermination(reason))
|
|
198
206
|
return false;
|
|
199
207
|
const notice = terminationNotice(reason);
|
|
200
|
-
|
|
201
|
-
for (const line of notice.lines)
|
|
202
|
-
display(` ${line}`);
|
|
208
|
+
displayNotice(notice.title, notice.lines, { tone: 'warn', gate: 'always' });
|
|
203
209
|
return true;
|
|
204
210
|
}
|
|
205
211
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminationNotice.js","sourceRoot":"","sources":["../../src/core/terminationNotice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"terminationNotice.js","sourceRoot":"","sources":["../../src/core/terminationNotice.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,22 @@ export type GthTerminationSite =
|
|
|
112
112
|
| 'runner.stream-error'
|
|
113
113
|
/** The turn threw. */
|
|
114
114
|
| 'runner.turn-error'
|
|
115
|
+
/**
|
|
116
|
+
* [[EXT-160]] — the turn overflowed the context and compaction could not make it smaller: there
|
|
117
|
+
* was nothing left worth folding, the summary could not be produced, or the agent exposes no
|
|
118
|
+
* conversation state to rewrite. Distinct from the two wrappers above because the category they
|
|
119
|
+
* would report is the same and the *remedy* is not: this one says the automatic remedy was tried
|
|
120
|
+
* and had nothing left to give, so the next step is a human's.
|
|
121
|
+
*/
|
|
122
|
+
| 'runner.overflow-compact'
|
|
123
|
+
/**
|
|
124
|
+
* [[EXT-160]] — the turn overflowed AGAIN on the retry that followed a successful compaction.
|
|
125
|
+
* One retry is the whole budget: a second overflow after the conversation was already folded is
|
|
126
|
+
* evidence that the prompt is too large for reasons compaction cannot reach (one enormous tool
|
|
127
|
+
* result, a window smaller than the system prompt), and a second compaction would fold the tail
|
|
128
|
+
* it just kept and try the same thing again.
|
|
129
|
+
*/
|
|
130
|
+
| 'runner.overflow-compact-exhausted'
|
|
115
131
|
/** The string path's tool-approval drain ran out of resume rounds. */
|
|
116
132
|
| 'runner.interrupt-guard-exhausted'
|
|
117
133
|
/** `GthAgentRunner.processMessagesWithEvents` drained its stream to the end. */
|
|
@@ -267,5 +283,17 @@ export declare function classifyThrownTermination(error: unknown): GthTerminatio
|
|
|
267
283
|
* primitive throw value is returned unchanged rather than turning a failure into a different one.
|
|
268
284
|
*/
|
|
269
285
|
export declare function attachTerminationReason<T>(error: T, reason: GthTerminationReason): T;
|
|
286
|
+
/**
|
|
287
|
+
* [[EXT-160]] — **replace** the reason attached to a thrown value.
|
|
288
|
+
*
|
|
289
|
+
* {@link attachTerminationReason} is first-write-wins, which is right for the nested wrappers it
|
|
290
|
+
* was built for: the inner site saw the failure first and is the truer classification. This is the
|
|
291
|
+
* one case that legitimately overwrites, and it is not an exception to that rule but an instance of
|
|
292
|
+
* it — the compact-and-retry seam has seen the overflow happen TWICE, and the wrapper that
|
|
293
|
+
* classified the second one only ever saw one of them. Without this the runner's own field and the
|
|
294
|
+
* reason riding on the error would disagree about the same failure, which is precisely what
|
|
295
|
+
* `classifyThrownAt` exists to prevent.
|
|
296
|
+
*/
|
|
297
|
+
export declare function replaceTerminationReason<T>(error: T, reason: GthTerminationReason): T;
|
|
270
298
|
/** The reason attached to a thrown value, following one `cause` link. Undefined when none is. */
|
|
271
299
|
export declare function terminationReasonOf(error: unknown): GthTerminationReason | undefined;
|
|
@@ -391,6 +391,33 @@ export function attachTerminationReason(error, reason) {
|
|
|
391
391
|
}
|
|
392
392
|
return error;
|
|
393
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* [[EXT-160]] — **replace** the reason attached to a thrown value.
|
|
396
|
+
*
|
|
397
|
+
* {@link attachTerminationReason} is first-write-wins, which is right for the nested wrappers it
|
|
398
|
+
* was built for: the inner site saw the failure first and is the truer classification. This is the
|
|
399
|
+
* one case that legitimately overwrites, and it is not an exception to that rule but an instance of
|
|
400
|
+
* it — the compact-and-retry seam has seen the overflow happen TWICE, and the wrapper that
|
|
401
|
+
* classified the second one only ever saw one of them. Without this the runner's own field and the
|
|
402
|
+
* reason riding on the error would disagree about the same failure, which is precisely what
|
|
403
|
+
* `classifyThrownAt` exists to prevent.
|
|
404
|
+
*/
|
|
405
|
+
export function replaceTerminationReason(error, reason) {
|
|
406
|
+
try {
|
|
407
|
+
if (!error || (typeof error !== 'object' && typeof error !== 'function'))
|
|
408
|
+
return error;
|
|
409
|
+
Object.defineProperty(error, TERMINATION_REASON_KEY, {
|
|
410
|
+
value: reason,
|
|
411
|
+
enumerable: false,
|
|
412
|
+
writable: true,
|
|
413
|
+
configurable: true,
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
catch {
|
|
417
|
+
/* fail-soft */
|
|
418
|
+
}
|
|
419
|
+
return error;
|
|
420
|
+
}
|
|
394
421
|
/** The reason attached to a thrown value, following one `cause` link. Undefined when none is. */
|
|
395
422
|
export function terminationReasonOf(error) {
|
|
396
423
|
const own = field(error, TERMINATION_REASON_KEY);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminationReason.js","sourceRoot":"","sources":["../../src/core/terminationReason.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminationReason.js","sourceRoot":"","sources":["../../src/core/terminationReason.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { GthConfig } from '#src/config.js';
|
|
2
2
|
import type { DeclaredToolAnnotations } from '#src/core/approvals/annotations.js';
|
|
3
3
|
import type { ApprovalSubject } from '#src/core/approvals/matcher.js';
|
|
4
|
+
import type { AutocompactController } from '#src/core/compactionThreshold.js';
|
|
4
5
|
import type { RaterNegotiationRound, ShellSafetyVerdict } from '#src/core/shell/rater.js';
|
|
5
6
|
import type { GthFinishReasonObservation, GthTerminationReason } from '#src/core/terminationReason.js';
|
|
6
7
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
@@ -195,6 +196,13 @@ export interface GthCompiledGraph {
|
|
|
195
196
|
* `state.tasks[].interrupts[].value`). Optional because the structural surface predates it.
|
|
196
197
|
*/
|
|
197
198
|
getState?(config: RunnableConfig): Promise<any>;
|
|
199
|
+
/**
|
|
200
|
+
* GS2-23 — write values into the checkpointed state for a thread, as LangGraph compiled graphs
|
|
201
|
+
* do. A compaction replaces `messages` through it (see `core/compaction.ts`), which is what makes
|
|
202
|
+
* the compacted history durable: the graph writes a new checkpoint rather than a transcript copy.
|
|
203
|
+
* Optional for the same reason {@link getState} is.
|
|
204
|
+
*/
|
|
205
|
+
updateState?(config: RunnableConfig, values: any, asNode?: string): Promise<unknown>;
|
|
198
206
|
}
|
|
199
207
|
/**
|
|
200
208
|
* A single tool call a human-in-the-loop interrupt is waiting on, surfaced from the
|
|
@@ -573,6 +581,18 @@ export interface GthAgentInterface {
|
|
|
573
581
|
* receives no granted list (and so suggests nothing).
|
|
574
582
|
*/
|
|
575
583
|
getRegisteredToolNames?(): string[];
|
|
584
|
+
/**
|
|
585
|
+
* EXT-161 — the preventive compaction threshold in force, and the handle that moves it.
|
|
586
|
+
*
|
|
587
|
+
* The runner exposes it to the surfaces so `/status` can report the number and `/autocompact` can
|
|
588
|
+
* change it. It is the SAME object the context guard reads before every model call, which is what
|
|
589
|
+
* stops `/status` advertising a threshold nobody enforces.
|
|
590
|
+
*
|
|
591
|
+
* Optional and undefined before `init`: an agent with no resolved model (the TUI fixture agent)
|
|
592
|
+
* has no context window to set a threshold against, and the commands say so rather than
|
|
593
|
+
* inventing one.
|
|
594
|
+
*/
|
|
595
|
+
autocompact?: AutocompactController | undefined;
|
|
576
596
|
/**
|
|
577
597
|
* EXT-70 (spec §4.7.1) — what the connected MCP servers declared about their own tools in their
|
|
578
598
|
* `tools/list` responses, keyed by the REGISTERED tool name (`mcp__<server>__<tool>`). The runner
|
|
@@ -593,7 +613,7 @@ export interface GthAgentInterface {
|
|
|
593
613
|
resetRunStats?(): void;
|
|
594
614
|
/**
|
|
595
615
|
* GS2-16 — the analytics harvested from the run(s) since the last {@link resetRunStats}. Used by
|
|
596
|
-
* the runner to thread token/tool data into the
|
|
616
|
+
* the runner to thread token/tool data into the local history recorder. Optional; when absent
|
|
597
617
|
* the runner records no analytics for that turn. Reading must never throw.
|
|
598
618
|
*/
|
|
599
619
|
getRunStats?(): GthRunStats;
|
|
@@ -622,6 +642,20 @@ export interface GthAgentInterface {
|
|
|
622
642
|
* observed at all. Optional; reading must never throw.
|
|
623
643
|
*/
|
|
624
644
|
getFinishReasonObservations?(): readonly GthFinishReasonObservation[];
|
|
645
|
+
/**
|
|
646
|
+
* GS2-23 — the thread's conversation as the graph holds it: `state.messages` for `runConfig`'s
|
|
647
|
+
* thread, in order, without the system prompt (which the graphs this repo builds keep outside the
|
|
648
|
+
* message state). What `GthAgentRunner.compactConversation` reads before it decides a cut.
|
|
649
|
+
* Optional: an agent whose graph exposes no state omits it, and the runner then reports the
|
|
650
|
+
* conversation as one it cannot compact.
|
|
651
|
+
*/
|
|
652
|
+
getConversationMessages?(runConfig: RunnableConfig): Promise<BaseMessage[]>;
|
|
653
|
+
/**
|
|
654
|
+
* GS2-23 — replace the thread's whole conversation with `messages`, through the graph's own
|
|
655
|
+
* state update so the change is checkpointed. The other half of {@link getConversationMessages};
|
|
656
|
+
* the runner calls it with the list `compactMessages` produced and nothing else.
|
|
657
|
+
*/
|
|
658
|
+
replaceConversationMessages?(runConfig: RunnableConfig, messages: BaseMessage[]): Promise<void>;
|
|
625
659
|
cleanup?(): Promise<void>;
|
|
626
660
|
}
|
|
627
661
|
/**
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAyEA;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,+CAAS,CAAA;IACT,6CAAQ,CAAA;IACR,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,+CAAS,CAAA;IACT,iDAAU,CAAA;AACZ,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* GS2-107 — **the retention policy for the checkpoint tables, and the readout that makes their
|
|
4
|
+
* size visible.**
|
|
5
|
+
*
|
|
6
|
+
* A checkpoint is not a history row. A `sessions` row is a prompt and a response; a checkpoint is
|
|
7
|
+
* the state the agent was working with — tool results verbatim, file contents that were read,
|
|
8
|
+
* command output, whatever an MCP server returned. `history.enabled` is on by default, so every
|
|
9
|
+
* interactive session writes full graph state per super-step, and until this module nothing ever
|
|
10
|
+
* reclaimed a byte.
|
|
11
|
+
*
|
|
12
|
+
* ## The policy, and why it is split in two
|
|
13
|
+
*
|
|
14
|
+
* **Automatic reclamation removes only what can never be resumed. Anything that would cost a user a
|
|
15
|
+
* resume is available only as an explicit command they type.** That follows the ruling GS2-20 was
|
|
16
|
+
* built to: resume sheds nothing, and shedding is the user's own act. An age-based sweep that
|
|
17
|
+
* silently made an old conversation unresumable would remove, without being asked, the one
|
|
18
|
+
* capability the durable checkpointer exists to provide.
|
|
19
|
+
*
|
|
20
|
+
* So:
|
|
21
|
+
*
|
|
22
|
+
* - {@link reclaimUnresumableThreads} is automatic and cannot cost a resume, because it only
|
|
23
|
+
* deletes threads **no conversation row names** — see the predicate below.
|
|
24
|
+
* - {@link selectPrunableConversations} + {@link deleteThreads} is `gth history prune`: it removes
|
|
25
|
+
* state a user *could* still have resumed, so it is never automatic, never has a silent default
|
|
26
|
+
* bound, and says what it will remove before it removes it.
|
|
27
|
+
*
|
|
28
|
+
* ## The predicate: one class, not two
|
|
29
|
+
*
|
|
30
|
+
* A resume travels exactly one link — `gth history list` prints a conversation id,
|
|
31
|
+
* `conversations.thread_id` turns that id into a thread, and the thread is what
|
|
32
|
+
* `resolveResumeTarget` looks up. So a thread that **no conversation row names** cannot be reached
|
|
33
|
+
* by any id a person could type: it is unaddressable, and deleting it removes no capability anyone
|
|
34
|
+
* had.
|
|
35
|
+
*
|
|
36
|
+
* That single predicate covers both classes retention has to reclaim, because the second collapses
|
|
37
|
+
* into the first at the row level:
|
|
38
|
+
*
|
|
39
|
+
* - a thread with **no conversation row at all** — a `/clear` mints a fresh thread that nothing ever
|
|
40
|
+
* names ([[EXT-109]]), and an abandoned boot or a test can leave one too;
|
|
41
|
+
* - a conversation whose **`thread_id` is NULL** — written by `clearConversationThread` when a
|
|
42
|
+
* checkpoint write fails. NULLing the column *destroys the link*, so the thread it used to name is
|
|
43
|
+
* thereafter an orphan by exactly the definition above. There is no second query to write.
|
|
44
|
+
*
|
|
45
|
+
* ## Whole threads, never a prefix
|
|
46
|
+
*
|
|
47
|
+
* Pruning the middle of a thread is forbidden here even though it was **measured not to break this
|
|
48
|
+
* graph**: `channelsFromCheckpoint` walks ancestors only for a `DeltaChannel` absent from
|
|
49
|
+
* `channel_values`, and this state schema has none (`messages` is a `BinaryOperatorAggregate` and
|
|
50
|
+
* every checkpoint carries the whole array), so `getDeltaChannelHistory` is never called on a
|
|
51
|
+
* resume. A prefix policy is nevertheless a wider decision than retention makes, and it would become
|
|
52
|
+
* wrong the moment a channel moves behind a reducer. Whole threads only.
|
|
53
|
+
*
|
|
54
|
+
* ## Two guards, and which one covers which case
|
|
55
|
+
*
|
|
56
|
+
* `/clear` rotates a **live** session onto a thread no conversation row names, and it stays there
|
|
57
|
+
* for the rest of the session. So "unaddressable" does not imply "finished": a thread being written
|
|
58
|
+
* right now can satisfy the predicate, and deleting it is silent amnesia rather than a lost resume,
|
|
59
|
+
* because both interactive surfaces send only the new message and let checkpoint state carry the
|
|
60
|
+
* conversation.
|
|
61
|
+
*
|
|
62
|
+
* - **In this process, the write set.** `GthSqliteSaver` remembers every `thread_id` it has written
|
|
63
|
+
* and excludes that set from every pass it runs. It is the only place that knows: the runner
|
|
64
|
+
* rotates threads without notifying the checkpointer, so an exclusion assembled by a caller from
|
|
65
|
+
* the id a session started with names the wrong thread after the first `/clear` or `/resume`.
|
|
66
|
+
* - **Across processes, {@link RECLAIM_GRACE_MS}.** Another process cannot be asked whether it is
|
|
67
|
+
* still there, so nothing is reclaimed until its newest checkpoint is older than the window. A
|
|
68
|
+
* thread whose age cannot be established is left alone.
|
|
69
|
+
*
|
|
70
|
+
* The residual is a session in another process that has been idle longer than the window — the
|
|
71
|
+
* write set does not reach it and the age gate no longer holds it. Closing that needs shared
|
|
72
|
+
* cross-process session state, which retention does not add.
|
|
73
|
+
*/
|
|
74
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
75
|
+
/**
|
|
76
|
+
* How stale a thread's newest checkpoint must be before automatic reclamation will touch it.
|
|
77
|
+
*
|
|
78
|
+
* Not a tidy-up margin: after a `/clear` a live session writes every remaining checkpoint under a
|
|
79
|
+
* thread no conversation row names, and another process cannot be asked whether it is still there.
|
|
80
|
+
* A day is far longer than the gap between two super-steps of a session anyone is still using,
|
|
81
|
+
* while still reclaiming the rows within a day of the session ending.
|
|
82
|
+
*/
|
|
83
|
+
export declare const RECLAIM_GRACE_MS: number;
|
|
84
|
+
/** How many threads the readout names individually. */
|
|
85
|
+
export declare const DEFAULT_TOP_THREADS = 5;
|
|
86
|
+
/** One thread's footprint in the checkpoint tables. */
|
|
87
|
+
export interface ThreadUsage {
|
|
88
|
+
threadId: string;
|
|
89
|
+
/** The conversation that names this thread, when one does — absent means unaddressable. */
|
|
90
|
+
conversationId?: number;
|
|
91
|
+
command?: string;
|
|
92
|
+
checkpointCount: number;
|
|
93
|
+
/** Bytes of checkpoint / metadata / pending-write blobs stored under the thread. */
|
|
94
|
+
bytes: number;
|
|
95
|
+
/** The `ts` of the newest checkpoint, when it could be read. */
|
|
96
|
+
newestTs?: string;
|
|
97
|
+
}
|
|
98
|
+
/** What the checkpoint tables hold, for the readout. */
|
|
99
|
+
export interface CheckpointStoreStats {
|
|
100
|
+
dbPath: string;
|
|
101
|
+
/**
|
|
102
|
+
* Size of the database file, which also holds `sessions` / `conversations` / the FTS index — so it
|
|
103
|
+
* is reported beside {@link checkpointBytes} rather than instead of it. Zero when the file is
|
|
104
|
+
* absent.
|
|
105
|
+
*/
|
|
106
|
+
fileBytes: number;
|
|
107
|
+
/** Bytes of checkpoint, metadata and pending-write blobs — the checkpoint tables' own share. */
|
|
108
|
+
checkpointBytes: number;
|
|
109
|
+
checkpointCount: number;
|
|
110
|
+
writeCount: number;
|
|
111
|
+
threadCount: number;
|
|
112
|
+
/** The biggest threads by stored bytes, largest first. */
|
|
113
|
+
largestThreads: ThreadUsage[];
|
|
114
|
+
/** Threads no conversation row names, and what they cost — what reclamation will take. */
|
|
115
|
+
unresumableThreadCount: number;
|
|
116
|
+
unresumableBytes: number;
|
|
117
|
+
}
|
|
118
|
+
/** What one {@link reclaimUnresumableThreads} / {@link deleteThreads} pass removed. */
|
|
119
|
+
export interface ReclaimSummary {
|
|
120
|
+
threadCount: number;
|
|
121
|
+
checkpointCount: number;
|
|
122
|
+
writeCount: number;
|
|
123
|
+
bytes: number;
|
|
124
|
+
}
|
|
125
|
+
/** A conversation `gth history prune` would remove the stored state of. */
|
|
126
|
+
export interface PrunableConversation {
|
|
127
|
+
conversationId: number;
|
|
128
|
+
threadId: string;
|
|
129
|
+
command?: string;
|
|
130
|
+
/** Last recorded activity: the newest turn's timestamp, or the conversation's start. */
|
|
131
|
+
lastActivityTs: string;
|
|
132
|
+
turnCount: number;
|
|
133
|
+
checkpointCount: number;
|
|
134
|
+
bytes: number;
|
|
135
|
+
/**
|
|
136
|
+
* True when the last recorded turn is newer than {@link RECLAIM_GRACE_MS} — so this conversation
|
|
137
|
+
* may be **open in another window right now**, and pruning it would take a live session's memory
|
|
138
|
+
* rather than an old one's.
|
|
139
|
+
*
|
|
140
|
+
* A flag and not an exclusion, deliberately. `gth history prune` is given an explicit bound by the
|
|
141
|
+
* person typing it, and silently keeping back rows inside that bound would make the bound a lie;
|
|
142
|
+
* liveness across processes is also not knowable from here, so a refusal would be a guess wearing
|
|
143
|
+
* a guarantee. The automatic pass can be conservative because nobody asked for it. This one says
|
|
144
|
+
* what it is about to do and lets the person answer.
|
|
145
|
+
*/
|
|
146
|
+
recentlyActive: boolean;
|
|
147
|
+
}
|
|
148
|
+
/** Bounds for {@link selectPrunableConversations}. At least one is required by the command. */
|
|
149
|
+
export interface PruneBounds {
|
|
150
|
+
/** Prune conversations whose last activity is older than this many days. */
|
|
151
|
+
olderThanDays?: number;
|
|
152
|
+
/**
|
|
153
|
+
* Keep the N most recently active resumable conversations **whole** and prune the rest.
|
|
154
|
+
*
|
|
155
|
+
* Deliberately NOT "keep the last N super-steps of each thread": that is the prefix policy this
|
|
156
|
+
* module forbids, and a flag whose name suggested it would be a documentation hazard.
|
|
157
|
+
*/
|
|
158
|
+
keepLast?: number;
|
|
159
|
+
/** Injectable clock for the age bound. */
|
|
160
|
+
now?: number;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* True when both halves of the link this module reasons over are present. Without `conversations`
|
|
164
|
+
* every thread would look unaddressable and a reclamation pass would delete the whole store — so a
|
|
165
|
+
* database missing that table is left entirely alone rather than swept.
|
|
166
|
+
*/
|
|
167
|
+
export declare function retentionTablesReady(db: DatabaseSync): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* The predicate itself, as one constant.
|
|
170
|
+
*
|
|
171
|
+
* It asks `conversations` a question once per distinct thread in the store, so it is only cheap
|
|
172
|
+
* while `conversations.thread_id` is indexed — `conversations.id` is a rowid alias and indexes
|
|
173
|
+
* nothing else, which left this scanning the whole table per thread (measured: 3.18s at 6,000
|
|
174
|
+
* threads, 13ms with `idx_conversations_thread_id`, created in `historyStore.migrate`). Named here
|
|
175
|
+
* rather than inlined so the spec that asks SQLite for the query plan is looking at the same text
|
|
176
|
+
* this runs, and cannot go on passing after the query is edited.
|
|
177
|
+
*/
|
|
178
|
+
export declare const UNADDRESSABLE_THREADS_SQL = "SELECT DISTINCT c.thread_id AS thread_id\n FROM checkpoints c\n WHERE NOT EXISTS (\n SELECT 1 FROM conversations v WHERE v.thread_id = c.thread_id\n )";
|
|
179
|
+
/**
|
|
180
|
+
* Every thread in the checkpoint tables that **no conversation row names** — see the module note for
|
|
181
|
+
* why that one predicate covers both unresumable classes.
|
|
182
|
+
*
|
|
183
|
+
* `includeWithinGrace: true` answers "what is unaddressable", which is what the readout reports;
|
|
184
|
+
* the default answers "what may be deleted now", which additionally requires the thread's newest
|
|
185
|
+
* checkpoint to be older than {@link RECLAIM_GRACE_MS}. Never throws.
|
|
186
|
+
*/
|
|
187
|
+
export declare function findUnaddressableThreads(db: DatabaseSync, options?: {
|
|
188
|
+
now?: number;
|
|
189
|
+
graceMs?: number;
|
|
190
|
+
includeWithinGrace?: boolean;
|
|
191
|
+
excludeThreadIds?: readonly string[];
|
|
192
|
+
}): string[];
|
|
193
|
+
/**
|
|
194
|
+
* Delete every checkpoint and pending write of the named threads, and report what went.
|
|
195
|
+
*
|
|
196
|
+
* The single-thread spelling on the saver (`GthSqliteSaver.deleteThread`) routes through here, so
|
|
197
|
+
* there is one implementation of the delete rather than two that can drift.
|
|
198
|
+
*
|
|
199
|
+
* **Both tables go in one transaction.** A thread's rows live in `checkpoints` and in
|
|
200
|
+
* `checkpoint_writes`, and only the first of those is what anything looks for: every candidate query
|
|
201
|
+
* in this module reads `FROM checkpoints`. So a failure between the two statements would leave
|
|
202
|
+
* `checkpoint_writes` rows belonging to a thread that no longer appears in `checkpoints` — bytes the
|
|
203
|
+
* readout still counts as stored, that no later pass can find, and that no reader can reach. Not a
|
|
204
|
+
* self-healing leak; a permanent one. Either both deletes land or neither does.
|
|
205
|
+
*
|
|
206
|
+
* The caller must not already be inside a transaction: the rollback here would discard theirs. No
|
|
207
|
+
* caller is — the two entry points are the close hook and `gth history prune`.
|
|
208
|
+
*/
|
|
209
|
+
export declare function deleteThreads(db: DatabaseSync, threadIds: readonly string[]): ReclaimSummary;
|
|
210
|
+
/**
|
|
211
|
+
* The automatic half of the policy: delete every thread no conversation row names and whose newest
|
|
212
|
+
* checkpoint is past the grace window. Never throws, and never touches a thread a resume could
|
|
213
|
+
* reach.
|
|
214
|
+
*/
|
|
215
|
+
export declare function reclaimUnresumableThreads(db: DatabaseSync, options?: {
|
|
216
|
+
now?: number;
|
|
217
|
+
graceMs?: number;
|
|
218
|
+
excludeThreadIds?: readonly string[];
|
|
219
|
+
}): ReclaimSummary;
|
|
220
|
+
/**
|
|
221
|
+
* The conversations `gth history prune` would remove the stored state of, newest activity first.
|
|
222
|
+
*
|
|
223
|
+
* A conversation qualifies when it still names a thread that has checkpoints (there is something to
|
|
224
|
+
* remove) and it satisfies **every** bound given. `olderThanDays` and `keepLast` therefore compose
|
|
225
|
+
* as a conjunction: with both, a conversation is pruned only when it is older than the age AND
|
|
226
|
+
* outside the newest N. Passing neither selects nothing — the command requires an explicit bound,
|
|
227
|
+
* so that there is no silent default for an operation that can cost a resume.
|
|
228
|
+
*
|
|
229
|
+
* **Neither of the automatic pass's two guards applies here, and that is the design.** The bounds
|
|
230
|
+
* the person typed are the whole selection: a grace window layered on top would quietly shrink the
|
|
231
|
+
* set they asked for, and the in-process write set is empty in a `gth history prune` process, which
|
|
232
|
+
* shares no state with the session in the window next door. What this does instead is *say so* —
|
|
233
|
+
* {@link PrunableConversation.recentlyActive} marks every candidate whose last turn is inside
|
|
234
|
+
* {@link RECLAIM_GRACE_MS}, the plan prints that marker, and the command asks before removing
|
|
235
|
+
* anything.
|
|
236
|
+
*/
|
|
237
|
+
export declare function selectPrunableConversations(db: DatabaseSync, bounds: PruneBounds): PrunableConversation[];
|
|
238
|
+
/**
|
|
239
|
+
* `VACUUM` — the part that actually gives the disk space back. Deleting rows in SQLite moves pages
|
|
240
|
+
* onto the free list and leaves the file exactly as large as it was, so a prune that skipped this
|
|
241
|
+
* would report bytes removed while the file a user can see never moved.
|
|
242
|
+
*
|
|
243
|
+
* Returns whether it ran. It cannot run inside a transaction, and it needs the file to itself; a
|
|
244
|
+
* failure is reported rather than thrown, because the rows are already gone and the run should say
|
|
245
|
+
* so.
|
|
246
|
+
*/
|
|
247
|
+
export declare function vacuumStore(db: DatabaseSync): boolean;
|
|
248
|
+
/**
|
|
249
|
+
* The readout: what the checkpoint tables hold, and what of it is unaddressable.
|
|
250
|
+
*
|
|
251
|
+
* `fileBytes` and `checkpointBytes` are reported separately on purpose — the same file also holds
|
|
252
|
+
* the session transcripts and the FTS index, so one number labelled "checkpoints" that is really the
|
|
253
|
+
* whole file would be a false statement on the very screen this exists to make honest.
|
|
254
|
+
*/
|
|
255
|
+
export declare function collectCheckpointStoreStats(db: DatabaseSync, dbPath: string, topN?: number): CheckpointStoreStats;
|
|
256
|
+
/**
|
|
257
|
+
* A read/write connection to the history file for the maintenance commands, or `null` when there is
|
|
258
|
+
* nothing there. Fail-soft in the same shape as `openHistoryStore` / `openCheckpointSaver`, and it
|
|
259
|
+
* never CREATES the file: `gth history prune` on a machine with no history should say there is none,
|
|
260
|
+
* not leave an empty database behind.
|
|
261
|
+
*/
|
|
262
|
+
export declare class CheckpointMaintenance {
|
|
263
|
+
private readonly db;
|
|
264
|
+
private constructor();
|
|
265
|
+
static open(dbPath: string): CheckpointMaintenance | null;
|
|
266
|
+
stats(dbPath: string, topN?: number): CheckpointStoreStats;
|
|
267
|
+
prunable(bounds: PruneBounds): PrunableConversation[];
|
|
268
|
+
unaddressable(options?: {
|
|
269
|
+
now?: number;
|
|
270
|
+
graceMs?: number;
|
|
271
|
+
}): string[];
|
|
272
|
+
remove(threadIds: readonly string[]): ReclaimSummary;
|
|
273
|
+
/** Bytes stored under exactly these threads — what removing them would reclaim. */
|
|
274
|
+
bytesOf(threadIds: readonly string[]): number;
|
|
275
|
+
vacuum(): boolean;
|
|
276
|
+
close(): void;
|
|
277
|
+
}
|
|
278
|
+
/** Fail-soft opener for {@link CheckpointMaintenance}; `null` when there is no store to maintain. */
|
|
279
|
+
export declare function openCheckpointMaintenance(dbPath: string): CheckpointMaintenance | null;
|