@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.
@@ -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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"}
@@ -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
  }