@gaunt-sloth/agent 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/README.md +6 -1
- package/cli.js +93 -6
- package/dist/middleware/binaryContentInjectionMiddleware.js +6 -1
- package/dist/middleware/binaryContentInjectionMiddleware.js.map +1 -1
- package/dist/middleware/frontendImageInjectionMiddleware.d.ts +52 -25
- package/dist/middleware/frontendImageInjectionMiddleware.js +91 -13
- package/dist/middleware/frontendImageInjectionMiddleware.js.map +1 -1
- package/dist/middleware/registry.js +14 -12
- package/dist/middleware/registry.js.map +1 -1
- package/dist/modules/acp/acpAgentApp.js +5 -0
- package/dist/modules/acp/acpAgentApp.js.map +1 -1
- package/dist/modules/acp/acpAgentAppV1.js +5 -0
- package/dist/modules/acp/acpAgentAppV1.js.map +1 -1
- package/dist/modules/acp/acpCommon.d.ts +6 -14
- package/dist/modules/acp/acpCommon.js +6 -16
- package/dist/modules/acp/acpCommon.js.map +1 -1
- package/dist/modules/apiAgUiModule.js +7 -0
- package/dist/modules/apiAgUiModule.js.map +1 -1
- package/dist/modules/interactiveSessionModule.d.ts +10 -1
- package/dist/modules/interactiveSessionModule.js +224 -41
- package/dist/modules/interactiveSessionModule.js.map +1 -1
- package/dist/modules/sessionResume.d.ts +123 -0
- package/dist/modules/sessionResume.js +268 -0
- package/dist/modules/sessionResume.js.map +1 -0
- package/dist/modules/slashCommands.d.ts +142 -0
- package/dist/modules/slashCommands.js +352 -15
- package/dist/modules/slashCommands.js.map +1 -1
- package/dist/modules/workspace.d.ts +24 -0
- package/dist/modules/workspace.js +27 -0
- package/dist/modules/workspace.js.map +1 -0
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { initConfig } from '@gaunt-sloth/core/config.js';
|
|
2
|
-
import { defaultStatusCallback, display, displayDialogLine, displayInfo, displayLaunchBanner, displayWarning, flushSessionLog, formatInputPrompt, initSessionLogging, stopSessionLogging, } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
2
|
+
import { defaultStatusCallback, display, displayDialogLine, displayInfo, displayLaunchBanner, displayNotice, displayWarning, flushSessionLog, formatInputPrompt, initSessionLogging, stopSessionLogging, } from '@gaunt-sloth/core/utils/consoleUtils.js';
|
|
3
3
|
import { GthAgentRunner } from '@gaunt-sloth/core/core/GthAgentRunner.js';
|
|
4
4
|
import { GthAbstractAgent } from '@gaunt-sloth/core/core/GthAbstractAgent.js';
|
|
5
5
|
import { launchBannerFields, launchBannerText } from '@gaunt-sloth/core/core/launchBanner.js';
|
|
@@ -13,12 +13,14 @@ import { displayTermination } from '@gaunt-sloth/core/core/terminationNotice.js'
|
|
|
13
13
|
import { readTermination, writeDebugDump } from '@gaunt-sloth/core/utils/debugDump.js';
|
|
14
14
|
import { appendToFile, getCommandOutputFilePath } from '@gaunt-sloth/core/utils/fileUtils.js';
|
|
15
15
|
import { openConversationSafe, recordSessionSafe, } from '@gaunt-sloth/core/history/recordSession.js';
|
|
16
|
+
import { openSessionCheckpointerSafe } from '@gaunt-sloth/core/history/sessionCheckpointer.js';
|
|
17
|
+
import { saveConversationGrantsSafe } from '@gaunt-sloth/core/core/approvals/conversationGrants.js';
|
|
18
|
+
import { applyResumeTarget, listResumeCandidates, resolveResumeTarget, resumedConversationNotice, resumeFailedNotice, resumePickerNotice, resumeRefusalNotice, resumeSameConversationNotice, } from '#src/modules/sessionResume.js';
|
|
16
19
|
import { createInterface, error, exit, getProjectDir, getUseColour, refStdin, setRawMode, stdin as input, stdout as output, } from '@gaunt-sloth/core/utils/systemUtils.js';
|
|
17
20
|
import { HumanMessage } from '@langchain/core/messages';
|
|
18
|
-
import { MemorySaver } from '@langchain/langgraph';
|
|
19
21
|
import { createResolvers } from '#src/resolvers.js';
|
|
20
22
|
import { resolveAgentFactory } from '#src/core/resolveAgentFactory.js';
|
|
21
|
-
import { approvalsRefusalsNotice, approvalsRungNotice, approvalsStatusNotice, approvalsTrustNotice, approvalsUndenyNotice, createCommandRegistry, dispatchSlashCommand, formatConfigSummary, parseSlashCommand, } from '#src/modules/slashCommands.js';
|
|
23
|
+
import { approvalsRefusalsNotice, approvalsRungNotice, approvalsStatusNotice, approvalsTrustNotice, approvalsUndenyNotice, COMPACTING_LINE, compactionFailedNotice, compactionNotice, createCommandRegistry, autocompactNotice, autocompactUnavailableNotice, dispatchSlashCommand, formatConfigSummary, parseSlashCommand, } from '#src/modules/slashCommands.js';
|
|
22
24
|
/**
|
|
23
25
|
* [[TUI-C26]] §6 / [[EXT-105]] — **every line of an escalation dialog goes through
|
|
24
26
|
* {@link displayDialogLine}, and no line of one goes anywhere else.**
|
|
@@ -35,8 +37,13 @@ import { approvalsRefusalsNotice, approvalsRungNotice, approvalsStatusNotice, ap
|
|
|
35
37
|
* So the rule for this file is mechanical: **inside the approval dialog and the attack banner, use
|
|
36
38
|
* `displayDialogLine` and pass the tone.** A `display`/`displayInfo`/`displayWarning`/`displayError`
|
|
37
39
|
* call added among them is the defect coming back, and the stream test covering these two callbacks
|
|
38
|
-
* is what catches it.
|
|
39
|
-
*
|
|
40
|
+
* is what catches it.
|
|
41
|
+
*
|
|
42
|
+
* **A command notice has the same rule and its own writer**: [[EXT-165]] — every line of one goes
|
|
43
|
+
* through `displayNotice`, which takes the title and the body TOGETHER so no caller can put them on
|
|
44
|
+
* two streams, and which takes the tone as a separate argument for the same reason as above. The
|
|
45
|
+
* session's own single-line chatter — the launch banner, the degrade pointers, an incidental
|
|
46
|
+
* `result.message` — keeps the ordinary helpers: one line cannot be torn in half.
|
|
40
47
|
*
|
|
41
48
|
* The tone is the observable an assertion can bite on, too: a change that made `catastrophic` look
|
|
42
49
|
* like `destructive` would have to pass both the same tone, which a test can see.
|
|
@@ -69,30 +76,100 @@ const dialogLines = (lines, tone = 'plain') => {
|
|
|
69
76
|
*/
|
|
70
77
|
const rememberedAnswerLine = (decision, landed) => {
|
|
71
78
|
const savedToProject = landed === 'always';
|
|
79
|
+
// GS2-20 — a grant that did not reach the project file lives with the CONVERSATION: it is kept in
|
|
80
|
+
// the history store and comes back when this conversation is resumed, and no other conversation
|
|
81
|
+
// has it. So the sentence names the conversation, not the process.
|
|
72
82
|
if (decision === 'approve') {
|
|
73
83
|
return savedToProject
|
|
74
84
|
? 'Approved and remembered — this exact command is saved to the project allow-list.'
|
|
75
|
-
: 'Approved for this
|
|
85
|
+
: 'Approved for this conversation only — it was not written to the project allow-list, so ' +
|
|
86
|
+
'resuming this conversation keeps it and any other conversation will ask again.';
|
|
76
87
|
}
|
|
77
88
|
return savedToProject
|
|
78
89
|
? 'Refused — this exact call will not run and will not ask again. It is saved to this ' +
|
|
79
90
|
'project, so it stays refused in new sessions; lift it with /approvals undeny.'
|
|
80
|
-
: 'Refused — this exact call will not run and will not ask again this
|
|
81
|
-
'
|
|
82
|
-
'/approvals undeny.';
|
|
91
|
+
: 'Refused — this exact call will not run and will not ask again in this conversation, even ' +
|
|
92
|
+
'if you resume it later. It was not written to the project, so another conversation will ' +
|
|
93
|
+
'ask about it again; lift it with /approvals undeny.';
|
|
83
94
|
};
|
|
84
|
-
|
|
95
|
+
/**
|
|
96
|
+
* EXT-161 — the preventive compaction threshold for `/status`, read fail-soft.
|
|
97
|
+
*
|
|
98
|
+
* **The method is optional in the parameter type on purpose.** Every runner this surface is given
|
|
99
|
+
* in production implements it, but a partially-stubbed one must not be able to break slash-command
|
|
100
|
+
* dispatch altogether: the worst an unavailable threshold may cost is the compaction line missing
|
|
101
|
+
* from `/status`, which is exactly what an unresolved model already produces. A status line that
|
|
102
|
+
* could take the session down would be worse than no status line.
|
|
103
|
+
*/
|
|
104
|
+
async function readAutocompactStatus(runner) {
|
|
105
|
+
try {
|
|
106
|
+
return await runner.getAutocompactStatus?.();
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export async function createInteractiveSession(sessionConfig, commandLineConfigOverrides, message, options = {}) {
|
|
85
113
|
const config = { ...(await initConfig(commandLineConfigOverrides)) };
|
|
86
|
-
|
|
114
|
+
// GS2-20: the session's checkpointer. Durable (SQLite, in the same file as the history store) when
|
|
115
|
+
// history is on and the DB opens, so the LangGraph state this session builds outlives the process
|
|
116
|
+
// and the conversation can be resumed with its tools and pending work intact; a MemorySaver — with
|
|
117
|
+
// a notice — when it cannot be. Never no saver: with a tool-approval interrupt installed, the
|
|
118
|
+
// absence of one throws MISSING_CHECKPOINTER mid-turn.
|
|
119
|
+
const checkpointer = openSessionCheckpointerSafe(config);
|
|
120
|
+
// GS2-8 — render a structured command notice on the plain-text surface: tone-matched title,
|
|
121
|
+
// then the body lines indented under it.
|
|
122
|
+
//
|
|
123
|
+
// [[EXT-165]] — through `displayNotice`, which writes the WHOLE notice to one stream. Rendered
|
|
124
|
+
// line by line through the ordinary helpers, the title took its stream from its colour while
|
|
125
|
+
// the body took another, so a redirected session kept one half and discarded the other; and
|
|
126
|
+
// because the two halves were filtered at different levels, a quieted console showed a title
|
|
127
|
+
// with no body under it (or, at `display` level, a body with no title over it). The tone is
|
|
128
|
+
// passed through rather than turned into a helper choice here — that mapping is what coupled
|
|
129
|
+
// colour to stream.
|
|
130
|
+
const printNotice = (notice) => {
|
|
131
|
+
displayNotice(notice.title, notice.lines, { tone: notice.tone ?? 'info' });
|
|
132
|
+
};
|
|
133
|
+
// GS2-20 — `--resume <id>`: decide BEFORE anything else is opened or written whether the stored
|
|
134
|
+
// conversation can be re-entered, through the same seam `/resume` uses mid-session. A refusal
|
|
135
|
+
// is a notice and exit status 1 with nothing changed — no conversation row opened, no session
|
|
136
|
+
// log started — so a mistyped id costs the person nothing but the message.
|
|
137
|
+
let bootResume;
|
|
138
|
+
if (options.resumeConversationId !== undefined) {
|
|
139
|
+
const resolution = await resolveResumeTarget({ config, checkpointer, workspace: getProjectDir() }, options.resumeConversationId);
|
|
140
|
+
if (!resolution.ok) {
|
|
141
|
+
printNotice(resumeRefusalNotice(resolution.refusal));
|
|
142
|
+
checkpointer.close();
|
|
143
|
+
exit(1);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
bootResume = resolution.target;
|
|
147
|
+
}
|
|
87
148
|
// GS2-19: open ONE conversation for this interactive session up-front; every turn below is stamped
|
|
88
|
-
// with its id so a multi-turn chat groups under one conversation (not N unrelated rows).
|
|
89
|
-
//
|
|
90
|
-
// per-turn 1-turn conversations.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
149
|
+
// with its id so a multi-turn chat groups under one conversation (not N unrelated rows). Fail-soft:
|
|
150
|
+
// a no-op returning undefined when `history.enabled: false`, in which case turns fall back to
|
|
151
|
+
// per-turn 1-turn conversations.
|
|
152
|
+
//
|
|
153
|
+
// GS2-20: it also carries the thread id, which is the link a resume travels — from the id
|
|
154
|
+
// `gth history list` prints, to the checkpoint holding this session's state. Written HERE, before
|
|
155
|
+
// the runner exists, because `runner.init` can throw partway and a conversation whose thread was
|
|
156
|
+
// never recorded is an entry that can never be resumed.
|
|
157
|
+
//
|
|
158
|
+
// GS2-20: a resumed session opens NO new row — its turns go on recording under the conversation
|
|
159
|
+
// it re-entered, which is what makes the resumed conversation one conversation in `history list`
|
|
160
|
+
// rather than a chain of them. `let`, because `/resume` moves it mid-session and every turn
|
|
161
|
+
// recorded after that must follow.
|
|
162
|
+
let conversationId = bootResume
|
|
163
|
+
? bootResume.conversationId
|
|
164
|
+
: (openConversationSafe(config, {
|
|
165
|
+
command: sessionConfig.mode,
|
|
166
|
+
project: getProjectDir(),
|
|
167
|
+
model: config.modelDisplayName,
|
|
168
|
+
threadId: checkpointer.threadId,
|
|
169
|
+
}) ?? undefined);
|
|
170
|
+
// GS2-20: tell the checkpointer which row to mark unresumable if a checkpoint write fails later.
|
|
171
|
+
// Optional call — a spec that stubs the checkpointer with a plain object has nothing to bind.
|
|
172
|
+
checkpointer.bindConversation?.(conversationId);
|
|
96
173
|
// Initialize Runner
|
|
97
174
|
const logFileName = getCommandOutputFilePath(config, sessionConfig.mode);
|
|
98
175
|
if (logFileName) {
|
|
@@ -103,14 +180,47 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
103
180
|
// full toolset (filesystem + hardened dev/shell).
|
|
104
181
|
const runner = new GthAgentRunner(defaultStatusCallback, createResolvers(), resolveAgentFactory(config, 'lean'));
|
|
105
182
|
try {
|
|
106
|
-
await runner.init(sessionConfig.mode, config,
|
|
183
|
+
await runner.init(sessionConfig.mode, config, checkpointer.saver, {
|
|
184
|
+
threadId: checkpointer.threadId,
|
|
185
|
+
});
|
|
186
|
+
// GS2-20 — Ruling 3: a grant made at the approval menu is written against the conversation the
|
|
187
|
+
// moment it lands, so it outlives the process and a resume can install it again. The listener
|
|
188
|
+
// reads the LIVE `conversationId`, because `/resume` moves it; a grant made after that belongs
|
|
189
|
+
// to the conversation the session is then in. Nothing to write against ⇒ the bridge no-ops.
|
|
190
|
+
// Optional call, like `checkpointer.bindConversation`: a spec that stubs the runner with a
|
|
191
|
+
// plain object has nothing to listen with.
|
|
192
|
+
runner.setSessionGrantsListener?.(() => {
|
|
193
|
+
saveConversationGrantsSafe(config, conversationId, runner.getSessionScopedGrants());
|
|
194
|
+
});
|
|
107
195
|
const rl = createInterface({ input, output });
|
|
108
196
|
let shouldExit = false;
|
|
109
197
|
// GS2-8 — the readline surface shares the SAME command registry as the Ink TUI (one source
|
|
110
198
|
// of truth): every registered command parses, appears in /help, and dispatches here too.
|
|
111
199
|
const registry = createCommandRegistry();
|
|
112
200
|
// Committed-turn counter for the /status command (mirrors the TUI's status-bar counter).
|
|
113
|
-
|
|
201
|
+
// GS2-20 — a resumed conversation starts the count where it left off.
|
|
202
|
+
let turnCount = bootResume?.turns.length ?? 0;
|
|
203
|
+
// GS2-20 — what a resume shows: the banner, then every recorded turn replayed as the person
|
|
204
|
+
// and the model said it, so the screen holds the conversation the model is continuing. Plain
|
|
205
|
+
// `display`, not the dialog writers: these are restored transcript lines, not chrome. The
|
|
206
|
+
// prompt marker is the same one the live loop uses, so a restored turn reads like a live one.
|
|
207
|
+
const showRestoredConversation = (target) => {
|
|
208
|
+
printNotice(resumedConversationNotice(target));
|
|
209
|
+
for (const turn of target.turns) {
|
|
210
|
+
display(`${formatInputPrompt(' > ')}${turn.prompt ?? ''}`);
|
|
211
|
+
if (turn.response)
|
|
212
|
+
display(turn.response);
|
|
213
|
+
display('');
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
// GS2-20 — the boot half of `--resume`: the SAME apply call `/resume` makes below, after
|
|
217
|
+
// `runner.init` has built the graph on a thread of its own. Rotating onto the stored thread
|
|
218
|
+
// here rather than initialising on it is deliberate: both spellings then go through one seam,
|
|
219
|
+
// and breaking it breaks both.
|
|
220
|
+
if (bootResume) {
|
|
221
|
+
await applyResumeTarget({ runner, checkpointer }, bootResume);
|
|
222
|
+
showRestoredConversation(bootResume);
|
|
223
|
+
}
|
|
114
224
|
// GS2-56 — wire `/debug-dump` on the readline (`--no-tui`) surface too. Previously this surface
|
|
115
225
|
// injected no writer, so `/debug-dump` reported itself "unavailable" here; it now forwards to the
|
|
116
226
|
// same core writer the TUI uses AND threads the agent's always-on last-model-request snapshot
|
|
@@ -154,9 +264,11 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
154
264
|
// EXT-9 Tier-2: instead of a bare y/N, offer a scoped choice so the
|
|
155
265
|
// human can stop re-prompting for an operation they trust:
|
|
156
266
|
// [o]nce — approve this single invocation only (persists nothing),
|
|
157
|
-
// [s]ession — auto-approve this exact command for the rest of the
|
|
267
|
+
// [s]ession — auto-approve this exact command for the rest of the CONVERSATION (GS2-20:
|
|
268
|
+
// it is kept with the conversation and comes back on a resume; the key and
|
|
269
|
+
// its label stay `session`, which is the name the store gives the scope),
|
|
158
270
|
// [a]lways — additionally persist it to the project allow-list,
|
|
159
|
-
// [d]eny always — refuse it AND record a deny entry for the
|
|
271
|
+
// [d]eny always — refuse it AND record a deny entry, for the conversation or the project,
|
|
160
272
|
// anything else → reject this one call (fail-closed, and it stays the fallthrough).
|
|
161
273
|
// The runner consults the allow-list BEFORE calling this, so trusted commands never reach
|
|
162
274
|
// this prompt at all. (The Ink TUI surfaces the same scoped prompt via an approval bridge —
|
|
@@ -260,7 +372,10 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
260
372
|
// core's, the single chokepoint for every surface, and this must not start deciding
|
|
261
373
|
// persistence for itself.
|
|
262
374
|
if (sticky && (answer === 's' || answer === 'session')) {
|
|
263
|
-
|
|
375
|
+
// GS2-20 — the conversation, not the process: the grant is recorded against the
|
|
376
|
+
// conversation and is in force again when it is resumed.
|
|
377
|
+
displayDialogLine('Approved — this exact command will not ask again in this conversation, even if you ' +
|
|
378
|
+
'resume it later.', 'notice');
|
|
264
379
|
return { type: 'approve', scope: 'session' };
|
|
265
380
|
}
|
|
266
381
|
if (sticky && (answer === 'a' || answer === 'always')) {
|
|
@@ -434,10 +549,10 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
434
549
|
// agent and handed to its graph, so it is not injected here as a per-turn SystemMessage
|
|
435
550
|
// (which yielded a second, non-first system message that Anthropic rejects).
|
|
436
551
|
const messages = [new HumanMessage(userInput)];
|
|
437
|
-
// GS2-18: wire the readline (`--no-tui`) interactive path into the
|
|
438
|
-
// at its turn boundary, matching the single-shot and Ink-TUI paths. Fail-soft and
|
|
439
|
-
//
|
|
440
|
-
//
|
|
552
|
+
// GS2-18: wire the readline (`--no-tui`) interactive path into the local history recorder
|
|
553
|
+
// at its turn boundary, matching the single-shot and Ink-TUI paths. Fail-soft, and a no-op
|
|
554
|
+
// when `history.enabled` is false. GS2-16 threads live token/tool/duration analytics; costUsd
|
|
555
|
+
// stays unset.
|
|
441
556
|
const startedAt = Date.now();
|
|
442
557
|
const responseText = await runner.processMessages(messages);
|
|
443
558
|
// [[EXT-159]] — say why the turn ended, before the prompt comes back.
|
|
@@ -476,24 +591,12 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
476
591
|
});
|
|
477
592
|
turnCount += 1; // GS2-8 — feeds the /status turn counter
|
|
478
593
|
};
|
|
479
|
-
// GS2-8 — render a structured command notice on the plain-text surface: tone-matched title
|
|
480
|
-
// (warn ⇒ yellow), then the body lines indented under it.
|
|
481
|
-
const printNotice = (notice) => {
|
|
482
|
-
if (notice.tone === 'warn') {
|
|
483
|
-
displayWarning(notice.title);
|
|
484
|
-
}
|
|
485
|
-
else {
|
|
486
|
-
displayInfo(notice.title);
|
|
487
|
-
}
|
|
488
|
-
for (const line of notice.lines) {
|
|
489
|
-
display(` ${line}`);
|
|
490
|
-
}
|
|
491
|
-
};
|
|
492
594
|
const endSession = async () => {
|
|
493
595
|
display('Exiting...');
|
|
494
596
|
shouldExit = true;
|
|
495
597
|
await runner.cleanup();
|
|
496
598
|
stopSessionLogging();
|
|
599
|
+
checkpointer.close();
|
|
497
600
|
rl.close();
|
|
498
601
|
};
|
|
499
602
|
const askQuestion = async () => {
|
|
@@ -513,10 +616,22 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
513
616
|
// path (`/usr/home/bob/test.md`) is NOT a command and falls through to the model below.
|
|
514
617
|
const parsed = parseSlashCommand(userInput);
|
|
515
618
|
if (parsed) {
|
|
619
|
+
// EXT-161 — the threshold `/status` reports, read fresh on every dispatch rather than
|
|
620
|
+
// cached in this closure, so it follows an `/autocompact` typed a moment ago. The
|
|
621
|
+
// resolution behind it is memoised per session, so this is a promise wrapper after the
|
|
622
|
+
// first call and never touches the network twice.
|
|
623
|
+
const autocompactStatus = await readAutocompactStatus(runner);
|
|
516
624
|
const result = dispatchSlashCommand(parsed, registry, {
|
|
517
625
|
mode: sessionConfig.mode,
|
|
518
626
|
modelDisplayName: config.modelDisplayName ?? '',
|
|
627
|
+
// CFG-38 — the TUI's twin of this call passes the same field; the registry is one
|
|
628
|
+
// source, so a provider threaded on only one surface is a divergence, not a subset.
|
|
629
|
+
modelProviderType: config.modelProviderType,
|
|
519
630
|
turnCount,
|
|
631
|
+
autocompact: autocompactStatus,
|
|
632
|
+
// GS2-20 — the id `/status` names and `gth history resume` takes; live, so it follows
|
|
633
|
+
// a mid-session `/resume`.
|
|
634
|
+
conversationId,
|
|
520
635
|
// No tool-detail panels or debug pane exist on this surface; their commands degrade
|
|
521
636
|
// below rather than vanishing from the catalog.
|
|
522
637
|
toolsExpanded: false,
|
|
@@ -568,6 +683,66 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
568
683
|
printNotice(approvalsRungNotice(runner.getSessionApprovals()));
|
|
569
684
|
}
|
|
570
685
|
}
|
|
686
|
+
else if (result.autocompact) {
|
|
687
|
+
// EXT-161 — `/autocompact [budget]`: report or move the preventive compaction
|
|
688
|
+
// threshold for this session. The notice is built from the status the runner RETURNS,
|
|
689
|
+
// so it can only describe the threshold actually in force — including the case where
|
|
690
|
+
// there is no resolved model and nothing was changed.
|
|
691
|
+
const request = result.autocompact;
|
|
692
|
+
const status = 'show' in request
|
|
693
|
+
? await readAutocompactStatus(runner)
|
|
694
|
+
: await runner.setAutocompactThreshold?.(request.budget);
|
|
695
|
+
printNotice(status
|
|
696
|
+
? autocompactNotice(status, !('show' in request))
|
|
697
|
+
: autocompactUnavailableNotice());
|
|
698
|
+
}
|
|
699
|
+
else if (result.compact) {
|
|
700
|
+
// GS2-23 — `/compact [focus]`: the runner folds the older conversation in the live
|
|
701
|
+
// graph and reports what LANDED; the notice is built from that, never from what was
|
|
702
|
+
// asked for. Sequential here — the prompt does not come back until the await settles —
|
|
703
|
+
// so nothing on this surface can race the state rewrite. The transcript in scrollback
|
|
704
|
+
// is the person's record and is left exactly as it is.
|
|
705
|
+
displayInfo(COMPACTING_LINE);
|
|
706
|
+
try {
|
|
707
|
+
const outcome = await runner.compactConversation(result.compact);
|
|
708
|
+
printNotice(compactionNotice(outcome, result.compact.focus));
|
|
709
|
+
}
|
|
710
|
+
catch (err) {
|
|
711
|
+
printNotice(compactionFailedNotice(err instanceof Error ? err.message : String(err)));
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
else if (result.resume) {
|
|
715
|
+
// GS2-20 — `/resume [<id>]`: the mid-session spelling of `--resume`, through the SAME
|
|
716
|
+
// two seam calls the boot path makes above. Bare, it lists what could be resumed —
|
|
717
|
+
// every resumable conversation except this one. With an id it resolves (the five
|
|
718
|
+
// checks, each with its own sentence), applies, moves the recorder onto the resumed
|
|
719
|
+
// conversation, and shows the banner and the restored turns. The conversation being
|
|
720
|
+
// left keeps everything recorded under it; nothing is deleted by moving away.
|
|
721
|
+
const { id } = result.resume;
|
|
722
|
+
if (id === undefined) {
|
|
723
|
+
printNotice(resumePickerNotice(listResumeCandidates(config, conversationId)));
|
|
724
|
+
}
|
|
725
|
+
else if (id === conversationId) {
|
|
726
|
+
printNotice(resumeSameConversationNotice(id));
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
const resolution = await resolveResumeTarget({ config, checkpointer, workspace: getProjectDir() }, id);
|
|
730
|
+
if (!resolution.ok) {
|
|
731
|
+
printNotice(resumeRefusalNotice(resolution.refusal, { inSession: true }));
|
|
732
|
+
}
|
|
733
|
+
else {
|
|
734
|
+
try {
|
|
735
|
+
await applyResumeTarget({ runner, checkpointer }, resolution.target);
|
|
736
|
+
conversationId = resolution.target.conversationId;
|
|
737
|
+
turnCount = resolution.target.turns.length;
|
|
738
|
+
showRestoredConversation(resolution.target);
|
|
739
|
+
}
|
|
740
|
+
catch (err) {
|
|
741
|
+
printNotice(resumeFailedNotice(err instanceof Error ? err.message : String(err)));
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
571
746
|
else if (result.clearTranscript ||
|
|
572
747
|
result.toggleDebug ||
|
|
573
748
|
result.toggleTools ||
|
|
@@ -664,6 +839,7 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
664
839
|
catch (err) {
|
|
665
840
|
await runner.cleanup();
|
|
666
841
|
stopSessionLogging();
|
|
842
|
+
checkpointer.close();
|
|
667
843
|
// [[TUI-C71]] — **the `-m` path lands here, not on the loop's handler.** `processMessage` is
|
|
668
844
|
// called once directly for `gth chat -m …` / `gth code -m …`, outside the interactive loop's
|
|
669
845
|
// try/catch, so a run-ending approvals stop on that invocation reaches this outermost catch
|
|
@@ -679,5 +855,12 @@ export async function createInteractiveSession(sessionConfig, commandLineConfigO
|
|
|
679
855
|
}
|
|
680
856
|
exit(1);
|
|
681
857
|
}
|
|
858
|
+
finally {
|
|
859
|
+
// GS2-20: the backstop, not the usual door. `endSession` closes the connection as soon as the
|
|
860
|
+
// session ends, which is what releases the file promptly; this is here so that a future exit
|
|
861
|
+
// path added to the loop cannot silently stop closing it. Closing twice is safe — the saver's
|
|
862
|
+
// close swallows, and `sessionCheckpointer.spec.ts` pins that.
|
|
863
|
+
checkpointer.close();
|
|
864
|
+
}
|
|
682
865
|
}
|
|
683
866
|
//# sourceMappingURL=interactiveSessionModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactiveSessionModule.js","sourceRoot":"","sources":["../../src/modules/interactiveSessionModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { BaseCheckpointSaver } from '@langchain/langgraph';
|
|
2
|
+
import { type HistoryConfigView } from '@gaunt-sloth/core/history/historyEnabled.js';
|
|
3
|
+
import type { ConversationSummary, SessionRecord } from '@gaunt-sloth/core/history/historyStore.js';
|
|
4
|
+
import { type ConversationGrants } from '@gaunt-sloth/core/core/approvals/conversationGrants.js';
|
|
5
|
+
import type { SlashCommandNotice } from '#src/modules/slashCommands.js';
|
|
6
|
+
/** Everything a resume needs, gathered by {@link resolveResumeTarget} once the checks have passed. */
|
|
7
|
+
export interface ResumeTarget {
|
|
8
|
+
conversationId: number;
|
|
9
|
+
/** The LangGraph thread whose checkpoint holds the conversation's state. */
|
|
10
|
+
threadId: string;
|
|
11
|
+
summary: ConversationSummary;
|
|
12
|
+
/** The recorded turns, oldest first — what the surfaces replay as restored turns. */
|
|
13
|
+
turns: SessionRecord[];
|
|
14
|
+
/** The approvals granted in the conversation, to install again (Ruling 3). */
|
|
15
|
+
grants: ConversationGrants;
|
|
16
|
+
}
|
|
17
|
+
/** Why a resume was refused — one variant per check, each with what its sentence needs. */
|
|
18
|
+
export type ResumeRefusal = {
|
|
19
|
+
kind: 'history-off';
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'store-unavailable';
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'unknown';
|
|
24
|
+
id: number;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'not-resumable';
|
|
27
|
+
id: number;
|
|
28
|
+
/**
|
|
29
|
+
* The reason class, where it is known:
|
|
30
|
+
* - `single-shot` — recorded by a command that keeps no conversation state (`ask`, `exec`, …);
|
|
31
|
+
* - `no-thread` — an interactive conversation whose thread link is null: a checkpoint write
|
|
32
|
+
* failed while it ran and it was marked unresumable, or it predates conversation state;
|
|
33
|
+
* - `no-checkpoint` — the thread is on record but nothing was ever checkpointed under it;
|
|
34
|
+
* - `unreadable` — the checkpoint could not be read from the store.
|
|
35
|
+
*/
|
|
36
|
+
reason: 'single-shot' | 'no-thread' | 'no-checkpoint' | 'unreadable';
|
|
37
|
+
command?: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'workspace-mismatch';
|
|
40
|
+
id: number;
|
|
41
|
+
stored: string;
|
|
42
|
+
current: string;
|
|
43
|
+
};
|
|
44
|
+
export type ResumeResolution = {
|
|
45
|
+
ok: true;
|
|
46
|
+
target: ResumeTarget;
|
|
47
|
+
} | {
|
|
48
|
+
ok: false;
|
|
49
|
+
refusal: ResumeRefusal;
|
|
50
|
+
};
|
|
51
|
+
/** What {@link resolveResumeTarget} needs from the session asking. */
|
|
52
|
+
export interface ResumeSessionContext {
|
|
53
|
+
config: HistoryConfigView;
|
|
54
|
+
/** The session's checkpointer — the saver the thread is looked up in, and whether it is durable. */
|
|
55
|
+
checkpointer: {
|
|
56
|
+
saver: BaseCheckpointSaver;
|
|
57
|
+
durable: boolean;
|
|
58
|
+
};
|
|
59
|
+
/** The directory this session works in, compared with the conversation's stored `project`. */
|
|
60
|
+
workspace: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Decide whether conversation `id` can be resumed by this session, and gather what the resume
|
|
64
|
+
* needs. Never throws: a failure to read is a refusal with a reason, never a crash.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveResumeTarget(session: ResumeSessionContext, id: number): Promise<ResumeResolution>;
|
|
67
|
+
/** The half of the runner a resume drives — `GthAgentRunner` satisfies it; specs pass a fake. */
|
|
68
|
+
export interface ResumableRunner {
|
|
69
|
+
resumeConversation(target: {
|
|
70
|
+
threadId: string;
|
|
71
|
+
grants: ConversationGrants;
|
|
72
|
+
}): void | Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Make the session BE in the resolved conversation: the runner rotates onto the stored thread and
|
|
76
|
+
* installs the conversation's grants, and the checkpointer is told which row to mark if a write
|
|
77
|
+
* fails from here on. The caller switches its own recorder id to `target.conversationId`, because
|
|
78
|
+
* that id is the caller's variable; nothing else is needed.
|
|
79
|
+
*
|
|
80
|
+
* Rejects when the runner refuses — a turn still running, or a tool approval still pending on the
|
|
81
|
+
* thread being left — and then nothing has moved: the checkpointer is bound only after the runner
|
|
82
|
+
* has actually rotated, so a refused resume leaves the session exactly where it was.
|
|
83
|
+
*/
|
|
84
|
+
export declare function applyResumeTarget(session: {
|
|
85
|
+
runner: ResumableRunner;
|
|
86
|
+
checkpointer: {
|
|
87
|
+
bindConversation?(conversationId: number | undefined): void;
|
|
88
|
+
};
|
|
89
|
+
}, target: ResumeTarget): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* The conversations a bare `/resume` offers: every resumable one except the conversation the
|
|
92
|
+
* session is already in. Fail-soft and empty when history is off or the store is absent.
|
|
93
|
+
*/
|
|
94
|
+
export declare function listResumeCandidates(config: HistoryConfigView, currentConversationId: number | undefined, limit?: number): ConversationSummary[];
|
|
95
|
+
/**
|
|
96
|
+
* Parse the id a person typed after `--resume`, `/resume` or `history resume`. A positive integer
|
|
97
|
+
* in decimal, or `null` — the ids `gth history list` prints are exactly that, and anything else is
|
|
98
|
+
* a typo worth naming rather than a lookup worth making.
|
|
99
|
+
*/
|
|
100
|
+
export declare function parseResumeId(raw: string | undefined): number | null;
|
|
101
|
+
/**
|
|
102
|
+
* The banner a resumed session shows first: which conversation, when it started, how much of it is
|
|
103
|
+
* on record, and under which command and model — the facts a person needs to confirm they picked
|
|
104
|
+
* the right id. It also states the one thing a resume changes that nothing on screen shows: the
|
|
105
|
+
* approvals granted in that conversation are in force again.
|
|
106
|
+
*/
|
|
107
|
+
export declare function resumedConversationNotice(target: ResumeTarget): SlashCommandNotice;
|
|
108
|
+
/**
|
|
109
|
+
* The sentence for each refusal. One title states what did not happen and why; the body says what
|
|
110
|
+
* to do instead. `inSession` picks the pointer: the slash commands a running session has, or the
|
|
111
|
+
* CLI commands a shell has.
|
|
112
|
+
*/
|
|
113
|
+
export declare function resumeRefusalNotice(refusal: ResumeRefusal, options?: {
|
|
114
|
+
inSession?: boolean;
|
|
115
|
+
}): SlashCommandNotice;
|
|
116
|
+
/** A bare `/resume`: the conversations this session could move to, and how. */
|
|
117
|
+
export declare function resumePickerNotice(candidates: ConversationSummary[]): SlashCommandNotice;
|
|
118
|
+
/** `/resume <id>` naming the conversation the session is already in: nothing to do, and said so. */
|
|
119
|
+
export declare function resumeSameConversationNotice(id: number): SlashCommandNotice;
|
|
120
|
+
/** `/resume` on a surface with no conversation store behind it (the fixture agent). */
|
|
121
|
+
export declare function resumeUnavailableNotice(): SlashCommandNotice;
|
|
122
|
+
/** A resume whose apply step threw. The session is left in the conversation it was in. */
|
|
123
|
+
export declare function resumeFailedNotice(reason: string): SlashCommandNotice;
|