@jait/gateway 0.1.565 → 0.1.567
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/routes/chat.d.ts.map +1 -1
- package/dist/routes/chat.js +91 -7
- package/dist/routes/chat.js.map +1 -1
- package/dist/services/background-command-monitor.d.ts +67 -0
- package/dist/services/background-command-monitor.d.ts.map +1 -0
- package/dist/services/background-command-monitor.js +142 -0
- package/dist/services/background-command-monitor.js.map +1 -0
- package/dist/tools/agent-loop.d.ts +14 -0
- package/dist/tools/agent-loop.d.ts.map +1 -1
- package/dist/tools/agent-loop.js +72 -0
- package/dist/tools/agent-loop.js.map +1 -1
- package/dist/tools/chat-modes.d.ts +1 -1
- package/dist/tools/chat-modes.d.ts.map +1 -1
- package/dist/tools/chat-modes.js +1 -1
- package/dist/tools/core/execute.js +2 -2
- package/dist/tools/core/execute.js.map +1 -1
- package/dist/tools/terminal-tools.d.ts.map +1 -1
- package/dist/tools/terminal-tools.js +13 -4
- package/dist/tools/terminal-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background command monitor.
|
|
3
|
+
*
|
|
4
|
+
* When the agent starts a long-running shell command in "background" mode
|
|
5
|
+
* (e.g. `execute` / `terminal.run` with `isBackground: true` for a test run,
|
|
6
|
+
* build, or one-shot task), the tool returns immediately so the agent can end
|
|
7
|
+
* its turn. This monitor watches the persistent terminal for the OSC 633
|
|
8
|
+
* shell-integration "command done" marker and, when the command finishes,
|
|
9
|
+
* invokes a completion handler so the agent can be automatically re-triggered
|
|
10
|
+
* to react to the result — instead of the user having to type "continue".
|
|
11
|
+
*
|
|
12
|
+
* Never-ending processes (servers, watchers) simply never emit the done marker,
|
|
13
|
+
* so they never fire the handler (and are dropped after `maxWatchMs`).
|
|
14
|
+
*/
|
|
15
|
+
/** Minimal terminal-surface contract the monitor needs (satisfied by TerminalSurface). */
|
|
16
|
+
export interface MonitorableSurface {
|
|
17
|
+
addOutputListener(listener: (data: string) => void): void;
|
|
18
|
+
removeOutputListener(listener: (data: string) => void): void;
|
|
19
|
+
}
|
|
20
|
+
export interface BackgroundCommandResult {
|
|
21
|
+
sessionId: string;
|
|
22
|
+
terminalId: string;
|
|
23
|
+
command: string;
|
|
24
|
+
/** Exit code from OSC 633;D, or null when unavailable. */
|
|
25
|
+
exitCode: number | null;
|
|
26
|
+
/** Cleaned command output (OSC/ANSI stripped, echoed command removed, tail-truncated). */
|
|
27
|
+
output: string;
|
|
28
|
+
durationMs: number;
|
|
29
|
+
}
|
|
30
|
+
export type BackgroundCompletionHandler = (result: BackgroundCommandResult) => void | Promise<void>;
|
|
31
|
+
export interface TrackBackgroundCommandOptions {
|
|
32
|
+
sessionId: string;
|
|
33
|
+
terminalId: string;
|
|
34
|
+
command: string;
|
|
35
|
+
surface: MonitorableSurface;
|
|
36
|
+
/**
|
|
37
|
+
* Stop watching after this long. Guards against never-ending processes
|
|
38
|
+
* (servers/watchers) leaking listeners forever. Default 30 minutes.
|
|
39
|
+
*/
|
|
40
|
+
maxWatchMs?: number;
|
|
41
|
+
}
|
|
42
|
+
/** Strip OSC 633 + ANSI, drop the echoed command line, and tail-truncate. */
|
|
43
|
+
export declare function extractCompletionOutput(raw: string, command: string): string;
|
|
44
|
+
declare class BackgroundCommandMonitor {
|
|
45
|
+
private handler;
|
|
46
|
+
private readonly active;
|
|
47
|
+
/**
|
|
48
|
+
* Register the (single) handler invoked when a tracked background command
|
|
49
|
+
* finishes. Returns an unregister function. A later call replaces the
|
|
50
|
+
* previous handler.
|
|
51
|
+
*/
|
|
52
|
+
setCompletionHandler(handler: BackgroundCompletionHandler): () => void;
|
|
53
|
+
/** Number of commands currently being watched (for tests/introspection). */
|
|
54
|
+
get activeCount(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Begin watching a background command for completion. Non-blocking: attaches
|
|
57
|
+
* an output listener to the terminal surface and returns immediately.
|
|
58
|
+
*/
|
|
59
|
+
track(options: TrackBackgroundCommandOptions): void;
|
|
60
|
+
/** Stop watching every background command for a session (e.g. on session close). */
|
|
61
|
+
stopForSession(sessionId: string): void;
|
|
62
|
+
clearForTests(): void;
|
|
63
|
+
}
|
|
64
|
+
/** Process-wide singleton, mirroring `interventionRunResumeRegistry`. */
|
|
65
|
+
export declare const backgroundCommandMonitor: BackgroundCommandMonitor;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=background-command-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-command-monitor.d.ts","sourceRoot":"","sources":["../../src/services/background-command-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,oBAAoB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,EAAE,uBAAuB,KAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAWD,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA8B5E;AAOD,cAAM,wBAAwB;IAC5B,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,IAAI;IAOtE,4EAA4E;IAC5E,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,6BAA6B,GAAG,IAAI;IAqDnD,oFAAoF;IACpF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMvC,aAAa,IAAI,IAAI;CAKtB;AAED,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,0BAAiC,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background command monitor.
|
|
3
|
+
*
|
|
4
|
+
* When the agent starts a long-running shell command in "background" mode
|
|
5
|
+
* (e.g. `execute` / `terminal.run` with `isBackground: true` for a test run,
|
|
6
|
+
* build, or one-shot task), the tool returns immediately so the agent can end
|
|
7
|
+
* its turn. This monitor watches the persistent terminal for the OSC 633
|
|
8
|
+
* shell-integration "command done" marker and, when the command finishes,
|
|
9
|
+
* invokes a completion handler so the agent can be automatically re-triggered
|
|
10
|
+
* to react to the result — instead of the user having to type "continue".
|
|
11
|
+
*
|
|
12
|
+
* Never-ending processes (servers, watchers) simply never emit the done marker,
|
|
13
|
+
* so they never fire the handler (and are dropped after `maxWatchMs`).
|
|
14
|
+
*/
|
|
15
|
+
// OSC 633;D;{exitCode} — command finished (exit code may be empty/negative).
|
|
16
|
+
// eslint-disable-next-line no-control-regex
|
|
17
|
+
const OSC_DONE_RE = /\x1b\]633;D;(-?\d*)(?:\x07|\x1b\\)/;
|
|
18
|
+
const DEFAULT_MAX_WATCH_MS = 30 * 60_000;
|
|
19
|
+
const MAX_OUTPUT_CHARS = 4000;
|
|
20
|
+
/** Hard cap on simultaneously-watched background commands (safety valve). */
|
|
21
|
+
const MAX_CONCURRENT_WATCHERS = 50;
|
|
22
|
+
/** Strip OSC 633 + ANSI, drop the echoed command line, and tail-truncate. */
|
|
23
|
+
export function extractCompletionOutput(raw, command) {
|
|
24
|
+
let out = raw
|
|
25
|
+
// OSC 633 shell-integration sequences (A/B/C/D/E/P …)
|
|
26
|
+
// eslint-disable-next-line no-control-regex
|
|
27
|
+
.replace(/\x1b\]633;[A-Z][^\x07]*(?:\x07|\x1b\\)/g, "")
|
|
28
|
+
// Remaining ANSI / OSC escape sequences
|
|
29
|
+
// eslint-disable-next-line no-control-regex
|
|
30
|
+
.replace(/\x1b(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\].*?(?:\x07|\x1b\\))/g, "")
|
|
31
|
+
// eslint-disable-next-line no-control-regex
|
|
32
|
+
.replace(/\x07/g, "")
|
|
33
|
+
.replace(/\r\n/g, "\n")
|
|
34
|
+
.replace(/\r/g, "");
|
|
35
|
+
const lines = out.split("\n");
|
|
36
|
+
while (lines.length > 0 && lines[0].trim() === "")
|
|
37
|
+
lines.shift();
|
|
38
|
+
// Drop the first line if it is just the echoed command.
|
|
39
|
+
const cmdHead = command.trim().split("\n")[0]?.trim();
|
|
40
|
+
if (cmdHead && lines.length > 0) {
|
|
41
|
+
const head = lines[0].trim();
|
|
42
|
+
if (head === cmdHead || head.endsWith(cmdHead))
|
|
43
|
+
lines.shift();
|
|
44
|
+
}
|
|
45
|
+
while (lines.length > 0 && lines[lines.length - 1].trim() === "")
|
|
46
|
+
lines.pop();
|
|
47
|
+
let text = lines.join("\n").trim();
|
|
48
|
+
if (text.length > MAX_OUTPUT_CHARS) {
|
|
49
|
+
text = "…(truncated)\n" + text.slice(-MAX_OUTPUT_CHARS);
|
|
50
|
+
}
|
|
51
|
+
return text || "(no output)";
|
|
52
|
+
}
|
|
53
|
+
class BackgroundCommandMonitor {
|
|
54
|
+
handler;
|
|
55
|
+
active = new Set();
|
|
56
|
+
/**
|
|
57
|
+
* Register the (single) handler invoked when a tracked background command
|
|
58
|
+
* finishes. Returns an unregister function. A later call replaces the
|
|
59
|
+
* previous handler.
|
|
60
|
+
*/
|
|
61
|
+
setCompletionHandler(handler) {
|
|
62
|
+
this.handler = handler;
|
|
63
|
+
return () => {
|
|
64
|
+
if (this.handler === handler)
|
|
65
|
+
this.handler = undefined;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Number of commands currently being watched (for tests/introspection). */
|
|
69
|
+
get activeCount() {
|
|
70
|
+
return this.active.size;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Begin watching a background command for completion. Non-blocking: attaches
|
|
74
|
+
* an output listener to the terminal surface and returns immediately.
|
|
75
|
+
*/
|
|
76
|
+
track(options) {
|
|
77
|
+
if (this.active.size >= MAX_CONCURRENT_WATCHERS)
|
|
78
|
+
return;
|
|
79
|
+
const startedAt = Date.now();
|
|
80
|
+
let raw = "";
|
|
81
|
+
let finished = false;
|
|
82
|
+
const cleanup = () => {
|
|
83
|
+
if (timer)
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
try {
|
|
86
|
+
options.surface.removeOutputListener(listener);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
/* surface already gone */
|
|
90
|
+
}
|
|
91
|
+
this.active.delete(entry);
|
|
92
|
+
};
|
|
93
|
+
const listener = (data) => {
|
|
94
|
+
if (finished)
|
|
95
|
+
return;
|
|
96
|
+
raw += data;
|
|
97
|
+
const match = raw.match(OSC_DONE_RE);
|
|
98
|
+
if (!match)
|
|
99
|
+
return;
|
|
100
|
+
finished = true;
|
|
101
|
+
const exitCode = match[1] ? parseInt(match[1], 10) : 0;
|
|
102
|
+
const output = extractCompletionOutput(raw, options.command);
|
|
103
|
+
cleanup();
|
|
104
|
+
const result = {
|
|
105
|
+
sessionId: options.sessionId,
|
|
106
|
+
terminalId: options.terminalId,
|
|
107
|
+
command: options.command,
|
|
108
|
+
exitCode: Number.isNaN(exitCode) ? null : exitCode,
|
|
109
|
+
output,
|
|
110
|
+
durationMs: Date.now() - startedAt,
|
|
111
|
+
};
|
|
112
|
+
const handler = this.handler;
|
|
113
|
+
if (handler) {
|
|
114
|
+
void Promise.resolve()
|
|
115
|
+
.then(() => handler(result))
|
|
116
|
+
.catch(() => {
|
|
117
|
+
/* handler errors must not crash the terminal output pump */
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const timer = setTimeout(cleanup, options.maxWatchMs ?? DEFAULT_MAX_WATCH_MS);
|
|
122
|
+
const entry = { sessionId: options.sessionId, cancel: cleanup };
|
|
123
|
+
options.surface.addOutputListener(listener);
|
|
124
|
+
this.active.add(entry);
|
|
125
|
+
}
|
|
126
|
+
/** Stop watching every background command for a session (e.g. on session close). */
|
|
127
|
+
stopForSession(sessionId) {
|
|
128
|
+
for (const entry of [...this.active]) {
|
|
129
|
+
if (entry.sessionId === sessionId)
|
|
130
|
+
entry.cancel();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
clearForTests() {
|
|
134
|
+
for (const entry of [...this.active])
|
|
135
|
+
entry.cancel();
|
|
136
|
+
this.active.clear();
|
|
137
|
+
this.handler = undefined;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Process-wide singleton, mirroring `interventionRunResumeRegistry`. */
|
|
141
|
+
export const backgroundCommandMonitor = new BackgroundCommandMonitor();
|
|
142
|
+
//# sourceMappingURL=background-command-monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-command-monitor.js","sourceRoot":"","sources":["../../src/services/background-command-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,13 @@ export interface AgentMessage {
|
|
|
29
29
|
tool_calls?: OpenAIToolCall[];
|
|
30
30
|
tool_call_id?: string;
|
|
31
31
|
name?: string;
|
|
32
|
+
/**
|
|
33
|
+
* True for messages injected into the working context by the agent loop
|
|
34
|
+
* itself (e.g. a task re-injected after pruning) rather than sent by the
|
|
35
|
+
* user. Stripped by `serializeMessages`, so it never reaches the model, is
|
|
36
|
+
* never persisted, and must be excluded from user-facing counts.
|
|
37
|
+
*/
|
|
38
|
+
synthetic?: boolean;
|
|
32
39
|
}
|
|
33
40
|
/** Segment for interleaved rendering of text and tool calls */
|
|
34
41
|
export type MessageSegment = {
|
|
@@ -404,6 +411,7 @@ export declare const __testUtils: {
|
|
|
404
411
|
buildStructuredConversationSummary: typeof buildStructuredConversationSummary;
|
|
405
412
|
executeOneToolCall: typeof executeOneToolCall;
|
|
406
413
|
isTransientFailure: typeof isTransientFailure;
|
|
414
|
+
isSubstantiveUserMessage: typeof isSubstantiveUserMessage;
|
|
407
415
|
pruneHistory: typeof pruneHistory;
|
|
408
416
|
repairToolCallHistory: typeof repairToolCallHistory;
|
|
409
417
|
};
|
|
@@ -416,6 +424,12 @@ export type ToolExecutor = (name: string, args: unknown, sessionId: string, auth
|
|
|
416
424
|
runtimeMode?: string;
|
|
417
425
|
}, onChunk?: (chunk: string) => void, signal?: AbortSignal) => Promise<ToolResult>;
|
|
418
426
|
declare function buildStructuredConversationSummary(removedMessages: AgentMessage[]): string;
|
|
427
|
+
/**
|
|
428
|
+
* A user message is "substantive" when it carries an actual instruction rather
|
|
429
|
+
* than a bare continuation ("continue?", "yes", "go on"). Used so pruning never
|
|
430
|
+
* leaves the model with only a trivial continuation and no task to act on.
|
|
431
|
+
*/
|
|
432
|
+
declare function isSubstantiveUserMessage(content: string | undefined): boolean;
|
|
419
433
|
/**
|
|
420
434
|
* Prune oldest conversation turns to bring context usage below the target.
|
|
421
435
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/tools/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/tools/agent-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/agent-loop.js
CHANGED
|
@@ -738,6 +738,7 @@ export const __testUtils = {
|
|
|
738
738
|
buildStructuredConversationSummary,
|
|
739
739
|
executeOneToolCall,
|
|
740
740
|
isTransientFailure,
|
|
741
|
+
isSubstantiveUserMessage,
|
|
741
742
|
pruneHistory,
|
|
742
743
|
repairToolCallHistory,
|
|
743
744
|
};
|
|
@@ -1032,6 +1033,73 @@ function buildStructuredConversationSummary(removedMessages) {
|
|
|
1032
1033
|
"[/conversation-summary]",
|
|
1033
1034
|
].join("\n");
|
|
1034
1035
|
}
|
|
1036
|
+
/**
|
|
1037
|
+
* Bare "continue" style user turns that carry no task on their own. When one of
|
|
1038
|
+
* these is the only user turn left after pruning, the model has nothing to act
|
|
1039
|
+
* on, so `pruneHistory` re-injects the most recent substantive user turn.
|
|
1040
|
+
*/
|
|
1041
|
+
const TRIVIAL_USER_CONTINUATIONS = new Set([
|
|
1042
|
+
"continue", "continue?", "continue.", "cont", "go", "go?", "go on", "go on?",
|
|
1043
|
+
"keep going", "keep going?", "carry on", "proceed", "resume", "next",
|
|
1044
|
+
"more", "and?", "?", "yes", "y", "yep", "yeah", "ok", "okay", "k",
|
|
1045
|
+
"yes please", "please continue", "continue please", "keep going please",
|
|
1046
|
+
]);
|
|
1047
|
+
/**
|
|
1048
|
+
* A user message is "substantive" when it carries an actual instruction rather
|
|
1049
|
+
* than a bare continuation ("continue?", "yes", "go on"). Used so pruning never
|
|
1050
|
+
* leaves the model with only a trivial continuation and no task to act on.
|
|
1051
|
+
*/
|
|
1052
|
+
function isSubstantiveUserMessage(content) {
|
|
1053
|
+
if (!content)
|
|
1054
|
+
return false;
|
|
1055
|
+
const normalized = content.trim().replace(/\s+/g, " ").toLowerCase();
|
|
1056
|
+
if (!normalized)
|
|
1057
|
+
return false;
|
|
1058
|
+
const stripped = normalized.replace(/[?.!,]+$/g, "");
|
|
1059
|
+
if (TRIVIAL_USER_CONTINUATIONS.has(normalized) || TRIVIAL_USER_CONTINUATIONS.has(stripped)) {
|
|
1060
|
+
return false;
|
|
1061
|
+
}
|
|
1062
|
+
const wordCount = normalized.split(/\s+/).filter(Boolean).length;
|
|
1063
|
+
return wordCount >= 2 || normalized.length >= 12;
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* After pruning, guarantee the model still sees the user's real task as a live
|
|
1067
|
+
* `user` turn. If the surviving tail user message is a trivial continuation
|
|
1068
|
+
* (e.g. "continue?"), the actual request now lives only inside the injected
|
|
1069
|
+
* summary — which models tend to treat as background and ignore. Re-inject the
|
|
1070
|
+
* most recent substantive user message (just pruned) verbatim, right before the
|
|
1071
|
+
* tail turn so it stays the active instruction. Mutates `history` in place.
|
|
1072
|
+
*/
|
|
1073
|
+
function reinjectSubstantiveUserTask(history, removedMessages) {
|
|
1074
|
+
let tailUserIdx = -1;
|
|
1075
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
1076
|
+
if (history[i].role === "user") {
|
|
1077
|
+
tailUserIdx = i;
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
if (tailUserIdx < 0)
|
|
1082
|
+
return;
|
|
1083
|
+
// Tail already carries a real instruction — nothing was lost.
|
|
1084
|
+
if (isSubstantiveUserMessage(history[tailUserIdx].content))
|
|
1085
|
+
return;
|
|
1086
|
+
// Most recent substantive user turn among the pruned messages.
|
|
1087
|
+
let task;
|
|
1088
|
+
for (let i = removedMessages.length - 1; i >= 0; i--) {
|
|
1089
|
+
const msg = removedMessages[i];
|
|
1090
|
+
if (msg.role === "user" && isSubstantiveUserMessage(msg.content)) {
|
|
1091
|
+
task = msg;
|
|
1092
|
+
break;
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
if (!task)
|
|
1096
|
+
return;
|
|
1097
|
+
history.splice(tailUserIdx, 0, {
|
|
1098
|
+
role: "user",
|
|
1099
|
+
content: `[Restored task from earlier in this conversation — this is still your active task]\n${task.content}`,
|
|
1100
|
+
synthetic: true,
|
|
1101
|
+
});
|
|
1102
|
+
}
|
|
1035
1103
|
/**
|
|
1036
1104
|
* Prune oldest conversation turns to bring context usage below the target.
|
|
1037
1105
|
*
|
|
@@ -1096,6 +1164,10 @@ export function pruneHistory(history, contextWindow, toolSchemas) {
|
|
|
1096
1164
|
role: "system",
|
|
1097
1165
|
content: buildStructuredConversationSummary(removedMessages),
|
|
1098
1166
|
});
|
|
1167
|
+
// If the only surviving user turn is a trivial continuation ("continue?"),
|
|
1168
|
+
// re-inject the most recent substantive user message so the task isn't lost
|
|
1169
|
+
// to the summary and silently ignored on the next turn.
|
|
1170
|
+
reinjectSubstantiveUserTask(history, removedMessages);
|
|
1099
1171
|
}
|
|
1100
1172
|
return pruned;
|
|
1101
1173
|
}
|