@gaunt-sloth/agent 2.0.0-alpha.3 → 2.0.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +73 -23
  2. package/dist/builtInToolsConfig.d.ts +17 -3
  3. package/dist/builtInToolsConfig.js +40 -41
  4. package/dist/builtInToolsConfig.js.map +1 -1
  5. package/dist/core/GthDeepAgent.d.ts +52 -32
  6. package/dist/core/GthDeepAgent.js +438 -198
  7. package/dist/core/GthDeepAgent.js.map +1 -1
  8. package/dist/core/debugCapture.d.ts +8 -49
  9. package/dist/core/debugCapture.js +1 -1
  10. package/dist/core/debugCapture.js.map +1 -1
  11. package/dist/core/deepAgentPermissions.d.ts +67 -2
  12. package/dist/core/deepAgentPermissions.js +151 -3
  13. package/dist/core/deepAgentPermissions.js.map +1 -1
  14. package/dist/core/gthAcpServer.js +11 -0
  15. package/dist/core/gthAcpServer.js.map +1 -1
  16. package/dist/core/gthDeepAgentFactory.d.ts +3 -0
  17. package/dist/core/gthDeepAgentFactory.js +9 -1
  18. package/dist/core/gthDeepAgentFactory.js.map +1 -1
  19. package/dist/core/resolveAgentFactory.d.ts +14 -0
  20. package/dist/core/resolveAgentFactory.js +18 -0
  21. package/dist/core/resolveAgentFactory.js.map +1 -0
  22. package/dist/core/subagentProfiles.d.ts +50 -0
  23. package/dist/core/subagentProfiles.js +76 -0
  24. package/dist/core/subagentProfiles.js.map +1 -0
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/mcp/OAuthClientProviderImpl.js.map +1 -1
  29. package/dist/mcp/tlsTrust.d.ts +61 -0
  30. package/dist/mcp/tlsTrust.js +109 -0
  31. package/dist/mcp/tlsTrust.js.map +1 -0
  32. package/dist/middleware/binaryContentInjectionMiddleware.d.ts +8 -1
  33. package/dist/middleware/binaryContentInjectionMiddleware.js +11 -2
  34. package/dist/middleware/binaryContentInjectionMiddleware.js.map +1 -1
  35. package/dist/middleware/frontendImageInjectionMiddleware.d.ts +106 -0
  36. package/dist/middleware/frontendImageInjectionMiddleware.js +166 -0
  37. package/dist/middleware/frontendImageInjectionMiddleware.js.map +1 -0
  38. package/dist/middleware/registry.js +36 -1
  39. package/dist/middleware/registry.js.map +1 -1
  40. package/dist/middleware/types.d.ts +16 -2
  41. package/dist/modules/a2a/A2AClientWrapper.d.ts +56 -1
  42. package/dist/modules/a2a/A2AClientWrapper.js +131 -31
  43. package/dist/modules/a2a/A2AClientWrapper.js.map +1 -1
  44. package/dist/modules/acpModule.js +17 -1
  45. package/dist/modules/acpModule.js.map +1 -1
  46. package/dist/modules/apiAgUiModule.d.ts +87 -0
  47. package/dist/modules/apiAgUiModule.js +229 -28
  48. package/dist/modules/apiAgUiModule.js.map +1 -1
  49. package/dist/modules/interactiveSessionModule.js +501 -41
  50. package/dist/modules/interactiveSessionModule.js.map +1 -1
  51. package/dist/modules/slashCommands.d.ts +576 -0
  52. package/dist/modules/slashCommands.js +995 -0
  53. package/dist/modules/slashCommands.js.map +1 -0
  54. package/dist/resolvers.js +119 -9
  55. package/dist/resolvers.js.map +1 -1
  56. package/dist/tools/GthCustomToolkit.js +95 -11
  57. package/dist/tools/GthCustomToolkit.js.map +1 -1
  58. package/dist/tools/GthDevToolkit.d.ts +11 -3
  59. package/dist/tools/GthDevToolkit.js +120 -34
  60. package/dist/tools/GthDevToolkit.js.map +1 -1
  61. package/dist/tools/GthFileSystemToolkit.d.ts +63 -0
  62. package/dist/tools/GthFileSystemToolkit.js +506 -105
  63. package/dist/tools/GthFileSystemToolkit.js.map +1 -1
  64. package/dist/tools/McpResourceTool.d.ts +31 -0
  65. package/dist/tools/McpResourceTool.js +106 -0
  66. package/dist/tools/McpResourceTool.js.map +1 -0
  67. package/dist/tools/gthChecklistTool.d.ts +30 -0
  68. package/dist/tools/gthChecklistTool.js +81 -0
  69. package/dist/tools/gthChecklistTool.js.map +1 -0
  70. package/dist/tools/gthGrepTool.d.ts +54 -0
  71. package/dist/tools/gthGrepTool.js +482 -0
  72. package/dist/tools/gthGrepTool.js.map +1 -0
  73. package/dist/tools/shell/env.js +1 -1
  74. package/dist/tools/shell/env.js.map +1 -1
  75. package/dist/tools/shell/outputBuffer.js.map +1 -1
  76. package/dist/tools/shell/workDir.d.ts +11 -0
  77. package/dist/tools/shell/workDir.js +45 -0
  78. package/dist/tools/shell/workDir.js.map +1 -0
  79. package/dist/utils/mcpAuthError.d.ts +36 -0
  80. package/dist/utils/mcpAuthError.js +89 -0
  81. package/dist/utils/mcpAuthError.js.map +1 -0
  82. package/dist/utils/mcpUtils.js +16 -0
  83. package/dist/utils/mcpUtils.js.map +1 -1
  84. package/package.json +12 -11
  85. package/dist/tools/shell/allowlist.d.ts +0 -11
  86. package/dist/tools/shell/allowlist.js +0 -12
  87. package/dist/tools/shell/allowlist.js.map +0 -1
  88. package/dist/tools/shell/arity.d.ts +0 -11
  89. package/dist/tools/shell/arity.js +0 -12
  90. package/dist/tools/shell/arity.js.map +0 -1
  91. package/dist/tools/shell/hardline.d.ts +0 -15
  92. package/dist/tools/shell/hardline.js +0 -88
  93. package/dist/tools/shell/hardline.js.map +0 -1
  94. package/dist/tools/shell/normalize.d.ts +0 -10
  95. package/dist/tools/shell/normalize.js +0 -11
  96. package/dist/tools/shell/normalize.js.map +0 -1
@@ -1,2 +1,89 @@
1
1
  import { GthConfig } from '@gaunt-sloth/core/config.js';
2
+ import type { BaseMessage } from '@langchain/core/messages';
3
+ /** An AG-UI wire message as received on the run input (the shape {@link convertMessage} accepts). */
4
+ type AgUiWireMessage = {
5
+ role: string;
6
+ content?: string;
7
+ id: string;
8
+ toolCalls?: Array<{
9
+ id: string;
10
+ type: string;
11
+ function: {
12
+ name: string;
13
+ arguments: string;
14
+ };
15
+ }>;
16
+ toolCallId?: string;
17
+ };
18
+ /** Per-message options for {@link convertMessage}. */
19
+ interface ConvertMessageOptions {
20
+ /**
21
+ * Whether an assistant text-emitted tool call may be PROMOTED to a native tool_call for this
22
+ * message. Defaults to `true` (the EXT-35 behaviour). {@link convertMessages} sets this to `false`
23
+ * for a DANGLING history call (one not followed by its tool result) so a stalled replayed call
24
+ * stays plain text — see EXT-43 and that function's doc.
25
+ */
26
+ allowTextCallPromotion?: boolean;
27
+ /**
28
+ * RC-32: the tool NAME to stamp on a `role:'tool'` message, resolved by
29
+ * {@link convertMessages} from the parenting assistant `tool_call`. The AG-UI wire format does
30
+ * not carry it, and a `ToolMessage` without a name is invisible to every result-inspecting
31
+ * middleware — `frontend-image-injection` keys on `msg.name === 'capture_image'`, so a replayed
32
+ * capture silently stopped producing a vision block on every turn after the capture itself.
33
+ * Absent on the standalone {@link convertMessage} path (a queued resume message has no history
34
+ * to resolve against), where the name is simply unknown.
35
+ */
36
+ toolName?: string;
37
+ }
38
+ /**
39
+ * Convert AG-UI message format to LangChain BaseMessage.
40
+ *
41
+ * `allowedToolNames` is the set of tool names bound to this run (config.tools + any run-input
42
+ * client tools). It gates EXT-35 plain-text tool-call repair on the assistant branch: an incoming
43
+ * assistant message with NO native `toolCalls` whose content is a STANDALONE text-emitted call
44
+ * (bracket / `<function=…>` / Harmony — the dialects small/local models produce) is promoted to a
45
+ * native tool_call so a replayed history turn is a real tool call rather than inert prose. An empty
46
+ * (or absent) allow-list promotes nothing — the prose-safe default. This runs alongside
47
+ * {@link parseToolArguments} (which rescues malformed args on an ALREADY-native tool_call).
48
+ *
49
+ * EXT-43: `options.allowTextCallPromotion` (default `true`) lets a caller suppress promotion for a
50
+ * single message; {@link convertMessages} uses it to leave a DANGLING history call as text.
51
+ */
52
+ export declare function convertMessage(msg: AgUiWireMessage, allowedToolNames?: Set<string>, options?: ConvertMessageOptions): BaseMessage;
53
+ /**
54
+ * Convert a whole AG-UI history array to LangChain messages, applying TWO symmetric replay guards
55
+ * so a poisoned history can never abort every subsequent turn on the thread.
56
+ *
57
+ * EXT-43 (forward, dangling-CALL): EXT-35's per-message promotion is unconditional, which is correct
58
+ * for a call that WILL be executed this turn. But when replaying HISTORY, promoting a STALLED text
59
+ * call (one the client recorded but that never ran) yields an `AIMessage` with `tool_calls` and NO
60
+ * following `tool_result` — a shape a strict provider (Anthropic) 400s on, where the pre-EXT-35
61
+ * plain text was valid. So promotion is allowed ONLY when the assistant message is immediately
62
+ * followed by a `tool` result message; a dangling call stays plain text (`allowTextCallPromotion:
63
+ * false`).
64
+ *
65
+ * RC-18 (backward, orphan-RESULT): the mirror image. A replayed `role:'tool'` message whose matching
66
+ * `tool_call` id is absent from EVERY PRECEDING assistant message is an ORPHAN — converting it to a
67
+ * `ToolMessage` yields a tool result with no preceding `AIMessage.tool_calls`, which the same strict
68
+ * provider 400s on (`Invalid parameter: messages with role 'tool' must be a response to a preceding
69
+ * message with 'tool_calls'`, INVALID_TOOL_RESULTS). Such orphans arise when a terminal
70
+ * (`returnDirect`) tool call's result is reconstructed by the client without its parenting assistant
71
+ * `tool_call`. We DROP the orphan (match on tool_call_id, NOT adjacency; keep genuine pairs; do NOT
72
+ * fabricate a synthetic call — mirroring EXT-43's demote-don't-invent spirit). Ids are accumulated
73
+ * in iteration order, so a result whose matching call appears only LATER is still an orphan.
74
+ *
75
+ * RC-32 (tool NAME restoration): the AG-UI wire message for a `tool` result carries `toolCallId`
76
+ * but no tool name, so a naively-converted `ToolMessage` has none — and every middleware that
77
+ * inspects results by name is blind to it. `frontend-image-injection` keys on
78
+ * `msg.name === 'capture_image'`, so a captured photo reached the model on the resume turn (where
79
+ * the graph builds the ToolMessage itself, with a name) and then vanished from every later turn,
80
+ * leaving the model to answer questions about a picture it could no longer see. The name is
81
+ * recoverable from the parenting assistant `tool_call`, which this function already walks for the
82
+ * RC-18 guard, so it is resolved there and stamped back on.
83
+ *
84
+ * The live middleware path (`GthLangChainAgent`, fixing the CURRENT turn) is unaffected — the two
85
+ * guards and the name restoration are history-replay only.
86
+ */
87
+ export declare function convertMessages(messages: AgUiWireMessage[], allowedToolNames?: Set<string>): BaseMessage[];
2
88
  export declare function startAgUiServer(config: GthConfig, port: number): Promise<void>;
89
+ export {};
@@ -3,8 +3,10 @@ import { randomUUID } from 'node:crypto';
3
3
  import { EventEncoder } from '@ag-ui/encoder';
4
4
  import { EventType } from '@ag-ui/core';
5
5
  import { GthDeepAgent } from '#src/core/GthDeepAgent.js';
6
+ import { GthLangChainAgent } from '@gaunt-sloth/core/core/GthLangChainAgent.js';
6
7
  import { defaultStatusCallback, displayInfo, displayWarning, } from '@gaunt-sloth/core/utils/consoleUtils.js';
7
8
  import { getNewRunnableConfig } from '@gaunt-sloth/core/utils/llmUtils.js';
9
+ import { textToNativeToolCalls } from '@gaunt-sloth/core/core/toolCallRepair/index.js';
8
10
  import { HumanMessage, AIMessage, SystemMessage, ToolMessage } from '@langchain/core/messages';
9
11
  import { MemorySaver } from '@langchain/langgraph';
10
12
  import { tool } from '@langchain/core/tools';
@@ -96,9 +98,20 @@ function parseToolArguments(raw, toolName) {
96
98
  }
97
99
  }
98
100
  /**
99
- * Convert AG-UI message format to LangChain BaseMessage
101
+ * Convert AG-UI message format to LangChain BaseMessage.
102
+ *
103
+ * `allowedToolNames` is the set of tool names bound to this run (config.tools + any run-input
104
+ * client tools). It gates EXT-35 plain-text tool-call repair on the assistant branch: an incoming
105
+ * assistant message with NO native `toolCalls` whose content is a STANDALONE text-emitted call
106
+ * (bracket / `<function=…>` / Harmony — the dialects small/local models produce) is promoted to a
107
+ * native tool_call so a replayed history turn is a real tool call rather than inert prose. An empty
108
+ * (or absent) allow-list promotes nothing — the prose-safe default. This runs alongside
109
+ * {@link parseToolArguments} (which rescues malformed args on an ALREADY-native tool_call).
110
+ *
111
+ * EXT-43: `options.allowTextCallPromotion` (default `true`) lets a caller suppress promotion for a
112
+ * single message; {@link convertMessages} uses it to leave a DANGLING history call as text.
100
113
  */
101
- function convertMessage(msg) {
114
+ export function convertMessage(msg, allowedToolNames, options) {
102
115
  const content = typeof msg.content === 'string' ? msg.content : '';
103
116
  switch (msg.role) {
104
117
  case 'user':
@@ -115,17 +128,120 @@ function convertMessage(msg) {
115
128
  })),
116
129
  });
117
130
  }
131
+ // EXT-35: no native tool_calls — a small/local model may have emitted the call as assistant
132
+ // TEXT. Promote a standalone text-emitted call (gated by the bound-tool allow-list + payload
133
+ // cap + standalone-only) to a native tool_call; otherwise fall through to plain text.
134
+ // EXT-43: `allowTextCallPromotion === false` (a dangling history call) short-circuits the
135
+ // promotion so the message stays plain text.
136
+ const repairedToolCalls = options?.allowTextCallPromotion !== false && allowedToolNames && allowedToolNames.size > 0
137
+ ? textToNativeToolCalls(content, { allowedToolNames })
138
+ : undefined;
139
+ if (repairedToolCalls) {
140
+ return new AIMessage({ content: '', tool_calls: repairedToolCalls });
141
+ }
118
142
  return new AIMessage(content);
119
143
  }
120
144
  case 'system':
121
145
  case 'developer':
122
146
  return new SystemMessage(content);
123
147
  case 'tool':
124
- return new ToolMessage({ content, tool_call_id: msg.toolCallId || msg.id });
148
+ return new ToolMessage({
149
+ content,
150
+ tool_call_id: msg.toolCallId || msg.id,
151
+ ...(options?.toolName ? { name: options.toolName } : {}),
152
+ });
125
153
  default:
126
154
  return new HumanMessage(content);
127
155
  }
128
156
  }
157
+ /**
158
+ * Convert a whole AG-UI history array to LangChain messages, applying TWO symmetric replay guards
159
+ * so a poisoned history can never abort every subsequent turn on the thread.
160
+ *
161
+ * EXT-43 (forward, dangling-CALL): EXT-35's per-message promotion is unconditional, which is correct
162
+ * for a call that WILL be executed this turn. But when replaying HISTORY, promoting a STALLED text
163
+ * call (one the client recorded but that never ran) yields an `AIMessage` with `tool_calls` and NO
164
+ * following `tool_result` — a shape a strict provider (Anthropic) 400s on, where the pre-EXT-35
165
+ * plain text was valid. So promotion is allowed ONLY when the assistant message is immediately
166
+ * followed by a `tool` result message; a dangling call stays plain text (`allowTextCallPromotion:
167
+ * false`).
168
+ *
169
+ * RC-18 (backward, orphan-RESULT): the mirror image. A replayed `role:'tool'` message whose matching
170
+ * `tool_call` id is absent from EVERY PRECEDING assistant message is an ORPHAN — converting it to a
171
+ * `ToolMessage` yields a tool result with no preceding `AIMessage.tool_calls`, which the same strict
172
+ * provider 400s on (`Invalid parameter: messages with role 'tool' must be a response to a preceding
173
+ * message with 'tool_calls'`, INVALID_TOOL_RESULTS). Such orphans arise when a terminal
174
+ * (`returnDirect`) tool call's result is reconstructed by the client without its parenting assistant
175
+ * `tool_call`. We DROP the orphan (match on tool_call_id, NOT adjacency; keep genuine pairs; do NOT
176
+ * fabricate a synthetic call — mirroring EXT-43's demote-don't-invent spirit). Ids are accumulated
177
+ * in iteration order, so a result whose matching call appears only LATER is still an orphan.
178
+ *
179
+ * RC-32 (tool NAME restoration): the AG-UI wire message for a `tool` result carries `toolCallId`
180
+ * but no tool name, so a naively-converted `ToolMessage` has none — and every middleware that
181
+ * inspects results by name is blind to it. `frontend-image-injection` keys on
182
+ * `msg.name === 'capture_image'`, so a captured photo reached the model on the resume turn (where
183
+ * the graph builds the ToolMessage itself, with a name) and then vanished from every later turn,
184
+ * leaving the model to answer questions about a picture it could no longer see. The name is
185
+ * recoverable from the parenting assistant `tool_call`, which this function already walks for the
186
+ * RC-18 guard, so it is resolved there and stamped back on.
187
+ *
188
+ * The live middleware path (`GthLangChainAgent`, fixing the CURRENT turn) is unaffected — the two
189
+ * guards and the name restoration are history-replay only.
190
+ */
191
+ export function convertMessages(messages, allowedToolNames) {
192
+ // tool_call id → tool NAME, for calls emitted by PRECEDING assistant messages, accumulated as we
193
+ // iterate in order. Membership is the RC-18 orphan test (a `tool` result whose tool_call_id is
194
+ // absent has no preceding assistant tool_call); the name is what RC-32 stamps back onto the
195
+ // replayed ToolMessage, since the AG-UI wire format carries the id but not the name.
196
+ const seenToolCalls = new Map();
197
+ const converted = [];
198
+ messages.forEach((msg, index) => {
199
+ // RC-18 backward orphan-RESULT guard.
200
+ if (msg.role === 'tool') {
201
+ const toolCallId = msg.toolCallId || msg.id;
202
+ if (!seenToolCalls.has(toolCallId)) {
203
+ displayWarning(`Dropping orphan tool result (tool_call_id ${JSON.stringify(toolCallId)}) with no ` +
204
+ 'preceding assistant tool_call in the replayed history; converting it would 400 the ' +
205
+ 'provider (INVALID_TOOL_RESULTS).');
206
+ return; // drop — do not convert to a ToolMessage
207
+ }
208
+ converted.push(convertMessage(msg, allowedToolNames, { toolName: seenToolCalls.get(toolCallId) }));
209
+ return;
210
+ }
211
+ // Record this assistant's native tool_call ids BEFORE any following tool result is checked, so
212
+ // a genuine call→result pair (id present on a preceding assistant) survives the guard above.
213
+ if (msg.role === 'assistant' && msg.toolCalls) {
214
+ for (const tc of msg.toolCalls) {
215
+ if (tc?.id)
216
+ seenToolCalls.set(tc.id, tc.function?.name);
217
+ }
218
+ }
219
+ // EXT-43 forward dangling-CALL guard (PRESERVED, unchanged).
220
+ const followedByToolResult = messages[index + 1]?.role === 'tool';
221
+ converted.push(convertMessage(msg, allowedToolNames, {
222
+ allowTextCallPromotion: followedByToolResult,
223
+ }));
224
+ });
225
+ return converted;
226
+ }
227
+ /**
228
+ * Construct the AG-UI agent for the configured backend (B5).
229
+ * - `agent.backend: 'deep'` → {@link GthDeepAgent} (deepagents runtime, experimental).
230
+ * - anything else (including `'lean'` and the default `undefined`) → {@link GthLangChainAgent}
231
+ * (plain LangChain agent, no deepagents `/large_tool_results` offload — also the fix for
232
+ * `filesystem: 'none'` consumers). Lean is the default.
233
+ *
234
+ * Returns the shared {@link GthAbstractAgent} base so both backends flow through the same
235
+ * `.init`/`.streamWithEvents`/`.streamWithEventsResume` surface used below.
236
+ */
237
+ function createConfiguredAgent(cfg) {
238
+ if (cfg.agent?.backend === 'deep') {
239
+ displayWarning('Using the experimental deepagents backend (agent.backend: deep). The lean agent is the ' +
240
+ 'default and recommended backend.');
241
+ return new GthDeepAgent(defaultStatusCallback, createResolvers());
242
+ }
243
+ return new GthLangChainAgent(defaultStatusCallback, createResolvers());
244
+ }
129
245
  export async function startAgUiServer(config, port) {
130
246
  const app = express();
131
247
  app.use(express.json({ limit: '5mb' }));
@@ -148,7 +264,7 @@ export async function startAgUiServer(config, port) {
148
264
  // Note this would need a refactoring if it is to be used for a public web server,
149
265
  // For connecting local WEB to local CLI agent, this is absolutely OK, since one thread is OK.
150
266
  const checkpointSaver = new MemorySaver();
151
- const agent = new GthDeepAgent(defaultStatusCallback, createResolvers());
267
+ const agent = createConfiguredAgent(config);
152
268
  await agent.init('api', config, checkpointSaver);
153
269
  displayInfo(`AG-UI agent initialized`);
154
270
  // C-a (spike): agents that additionally bind the client-declared run-input
@@ -157,6 +273,39 @@ export async function startAgUiServer(config, port) {
157
273
  // checkpointer, but the graph shape must match the suspended one. Built lazily
158
274
  // on first sighting of a given toolset.
159
275
  const toolAgentCache = new Map();
276
+ // The client is the source of truth for history — it re-sends the full message list every turn.
277
+ // The checkpointer is NOT where that history lives; it exists so a graph suspended at an
278
+ // `interrupt()` survives between the run that suspends it and the POST that resumes it.
279
+ //
280
+ // Those two roles cannot share one thread. `add_messages` can only reconcile an incoming message
281
+ // with the checkpoint when the message carries an `id` the checkpoint already knows; a replayed
282
+ // client message has none, so the reducer mints a fresh id and APPENDS. Each turn therefore
283
+ // stacks the whole replayed history on top of the previous turn's checkpoint. For text that is
284
+ // invisible bloat, but once a tool result is in the history the thread is dead: two `tool_result`
285
+ // blocks under one `tool_use` id is the one duplication providers reject outright.
286
+ //
287
+ // So a fresh run gets a fresh checkpoint thread, making the replayed history the sole history —
288
+ // the same rotation `runConversation` performs for the CLI's multi-turn replay — while a resume
289
+ // stays on the thread whose graph is actually suspended. The client's own `threadId` remains the
290
+ // protocol-facing identity reported in RUN_STARTED / RUN_FINISHED; only the checkpoint key
291
+ // rotates.
292
+ const checkpointThreads = new Map();
293
+ function rotateCheckpointThread(clientThreadId) {
294
+ const retired = checkpointThreads.get(clientThreadId);
295
+ const fresh = randomUUID();
296
+ checkpointThreads.set(clientThreadId, fresh);
297
+ // Reclaim the superseded thread so a long-lived local server does not accumulate one dead
298
+ // checkpoint per turn. Housekeeping only — never a reason to fail a run.
299
+ const saver = checkpointSaver;
300
+ if (retired && typeof saver.deleteThread === 'function') {
301
+ // Called from inside the `.then` so a SYNCHRONOUS throw is caught too — invoking it directly
302
+ // would evaluate it before `.catch` is attached and take the request handler down with it.
303
+ void Promise.resolve()
304
+ .then(() => saver.deleteThread?.(retired))
305
+ .catch(() => { });
306
+ }
307
+ return fresh;
308
+ }
160
309
  function toolSignature(tools) {
161
310
  return JSON.stringify(tools
162
311
  .map((t) => [t.name, t.parameters ?? {}])
@@ -180,7 +329,7 @@ export async function startAgUiServer(config, port) {
180
329
  ...config,
181
330
  tools: [...baseTools, ...clientStubs],
182
331
  };
183
- const reqAgent = new GthDeepAgent(defaultStatusCallback, createResolvers());
332
+ const reqAgent = createConfiguredAgent(reqConfig);
184
333
  await reqAgent.init('api', reqConfig, checkpointSaver);
185
334
  toolAgentCache.set(sig, reqAgent);
186
335
  displayInfo(`AG-UI: bound ${clientStubs.length} client tool(s): ${tools.map((t) => t.name).join(', ')}`);
@@ -196,6 +345,13 @@ export async function startAgUiServer(config, port) {
196
345
  // the server's statically-configured agent.
197
346
  const hasClientTools = Array.isArray(tools) && tools.length > 0;
198
347
  const activeAgent = hasClientTools ? await getAgentForTools(tools) : agent;
348
+ // EXT-35: the names of the tools bound to THIS run (server config.tools + any run-input client
349
+ // tools) — the allow-list for plain-text tool-call repair in convertMessage. Only a text-emitted
350
+ // call naming one of these is promoted to a native tool_call; an empty set promotes nothing.
351
+ const allowedToolNames = new Set([
352
+ ...(config.tools ?? []).map((t) => t?.name),
353
+ ...(hasClientTools ? tools.map((t) => t.name) : []),
354
+ ].filter((name) => Boolean(name)));
199
355
  const encoder = new EventEncoder({ accept: req.headers.accept });
200
356
  res.setHeader('Content-Type', encoder.getContentType());
201
357
  res.setHeader('Cache-Control', 'no-cache');
@@ -225,15 +381,6 @@ export async function startAgUiServer(config, port) {
225
381
  runId: effectiveRunId,
226
382
  }));
227
383
  const messageId = randomUUID();
228
- // Get runnable config with thread_id for checkpointing. config.recursionLimit
229
- // (when set by the consumer) caps the agent's super-steps per run.
230
- const runConfig = {
231
- ...getNewRunnableConfig(config.recursionLimit),
232
- configurable: { thread_id: effectiveThreadId },
233
- };
234
- // Stream the response with typed events
235
- let textMessageStarted = false;
236
- let reasoningMessageId = null;
237
384
  // C-a (spike): detect CopilotKit's resume shape. CopilotKit fulfils a
238
385
  // frontend tool client-side and then RE-RUNS the agent with the full
239
386
  // message history, the tool result appended as a trailing `tool` message
@@ -243,6 +390,55 @@ export async function startAgUiServer(config, port) {
243
390
  // (instead of starting a fresh run that just re-calls the tool).
244
391
  const lastMsg = Array.isArray(messages) && messages.length > 0 ? messages[messages.length - 1] : undefined;
245
392
  const isCopilotToolResume = hasClientTools && forwardedProps?.command?.resume === undefined && lastMsg?.role === 'tool';
393
+ const isResume = isCopilotToolResume || forwardedProps?.command?.resume !== undefined;
394
+ // RC-33: the tool results this request's own history already carries. A `TOOL_CALL_RESULT`
395
+ // for one of these must NOT be echoed back — the client is where it came from.
396
+ //
397
+ // The echo is right for a server-side tool: streaming it is the client's only way to learn
398
+ // what the tool returned. It is wrong for a CLIENT-fulfilled (frontend) tool, whose result
399
+ // the client computed, appended to its own history, and posted to us. `@ag-ui/client` does
400
+ // not dedupe on the way back in: its TOOL_CALL_RESULT branch locates the parenting assistant
401
+ // message, walks PAST any tool messages already sitting after it, and splices the echo in
402
+ // unconditionally. The client's history then holds two `tool` messages under one
403
+ // `toolCallId`, it replays both on the next turn, and the provider rejects the pair
404
+ // ("each tool_use must have a single result") — killing every turn after a capture.
405
+ //
406
+ // Keyed on what the client sent us in THIS request rather than on the toolset, so it stays
407
+ // correct without carrying tool-call state between runs, and can never suppress a result the
408
+ // client does not already hold.
409
+ const clientHeldToolResultIds = new Set((Array.isArray(messages) ? messages : [])
410
+ .filter((m) => m?.role === 'tool')
411
+ .map((m) => m.toolCallId || m.id)
412
+ .filter((id) => Boolean(id)));
413
+ // A resume must reach the suspended graph, so it stays on the thread the interrupted run
414
+ // used; anything else is a fresh run and gets a fresh checkpoint thread (see
415
+ // `rotateCheckpointThread`). The fallback covers a resume for which we hold no mapping —
416
+ // a client resuming across a server restart — where the client's own id is the best guess.
417
+ const checkpointThreadId = isResume
418
+ ? (checkpointThreads.get(effectiveThreadId) ?? effectiveThreadId)
419
+ : rotateCheckpointThread(effectiveThreadId);
420
+ // Get runnable config with thread_id for checkpointing. config.recursionLimit
421
+ // (when set by the consumer) caps the agent's super-steps per run.
422
+ const runConfig = {
423
+ ...getNewRunnableConfig(config.recursionLimit),
424
+ configurable: { thread_id: checkpointThreadId },
425
+ };
426
+ // Stream the response with typed events. Text runs MUST be delimited
427
+ // (START…CONTENT…END) around tool calls and reasoning: the AG-UI client
428
+ // finalizes a text message once a tool call for it begins, so any text that
429
+ // resumes after a TOOL_CALL_START on the SAME messageId is silently dropped
430
+ // (the "swallowed last line before a tool call" bug). Give each contiguous
431
+ // text run its own id and END it before any tool/reasoning event; tool calls
432
+ // parent to the most recent assistant message id. (GS2-22 / RC-10.)
433
+ let textRunId = null;
434
+ let lastAssistantId = messageId;
435
+ let reasoningMessageId = null;
436
+ const endTextRun = () => {
437
+ if (textRunId) {
438
+ res.write(encoder.encode({ type: EventType.TEXT_MESSAGE_END, messageId: textRunId }));
439
+ textRunId = null;
440
+ }
441
+ };
246
442
  let eventStream;
247
443
  if (isCopilotToolResume) {
248
444
  const resumeContent = typeof lastMsg.content === 'string' ? lastMsg.content : JSON.stringify(lastMsg.content);
@@ -258,7 +454,7 @@ export async function startAgUiServer(config, port) {
258
454
  ? queued
259
455
  .map((s) => typeof s === 'string'
260
456
  ? new HumanMessage(s)
261
- : convertMessage(s))
457
+ : convertMessage(s, allowedToolNames))
262
458
  .filter((m) => Boolean(m))
263
459
  : [];
264
460
  eventStream = activeAgent.streamWithEventsResume(forwardedProps.command.resume, runConfig, queuedMessages, ac.signal);
@@ -267,33 +463,38 @@ export async function startAgUiServer(config, port) {
267
463
  // The system prompt (backstory + guidelines + mode prompt + identity) lives in the
268
464
  // deep-agent graph via createDeepAgent({ systemPrompt }) — see GthDeepAgent — so it is no
269
465
  // longer prepended here. A separate, non-first SystemMessage would be rejected by Anthropic.
270
- const langChainMessages = (messages || []).map(convertMessage);
466
+ // EXT-43: convertMessages (not a bare map) applies the dangling-call guard so a stalled
467
+ // text call replayed in history is not promoted to a native tool_call with no result.
468
+ const langChainMessages = convertMessages((messages || []), allowedToolNames);
271
469
  eventStream = activeAgent.streamWithEvents(langChainMessages, runConfig, ac.signal);
272
470
  }
273
471
  for await (const event of eventStream) {
274
472
  switch (event.type) {
275
473
  case 'text': {
276
- if (!textMessageStarted) {
474
+ if (!textRunId) {
475
+ textRunId = randomUUID();
476
+ lastAssistantId = textRunId;
277
477
  res.write(encoder.encode({
278
478
  type: EventType.TEXT_MESSAGE_START,
279
- messageId,
479
+ messageId: textRunId,
280
480
  role: 'assistant',
281
481
  }));
282
- textMessageStarted = true;
283
482
  }
284
483
  res.write(encoder.encode({
285
484
  type: EventType.TEXT_MESSAGE_CONTENT,
286
- messageId,
485
+ messageId: textRunId,
287
486
  delta: event.delta,
288
487
  }));
289
488
  break;
290
489
  }
291
490
  case 'tool_start': {
491
+ // Close any open text run first so its final line isn't swallowed.
492
+ endTextRun();
292
493
  res.write(encoder.encode({
293
494
  type: EventType.TOOL_CALL_START,
294
495
  toolCallId: event.id,
295
496
  toolCallName: event.name,
296
- parentMessageId: messageId,
497
+ parentMessageId: lastAssistantId,
297
498
  }));
298
499
  break;
299
500
  }
@@ -313,6 +514,9 @@ export async function startAgUiServer(config, port) {
313
514
  break;
314
515
  }
315
516
  case 'tool_result': {
517
+ // RC-33: never hand a result back to the client that the client itself supplied.
518
+ if (clientHeldToolResultIds.has(event.id))
519
+ break;
316
520
  res.write(encoder.encode({
317
521
  type: EventType.TOOL_CALL_RESULT,
318
522
  toolCallId: event.id,
@@ -323,6 +527,8 @@ export async function startAgUiServer(config, port) {
323
527
  break;
324
528
  }
325
529
  case 'reasoning_start': {
530
+ // Close any open text run before a reasoning message begins.
531
+ endTextRun();
326
532
  reasoningMessageId = randomUUID();
327
533
  res.write(encoder.encode({
328
534
  type: EventType.REASONING_MESSAGE_START,
@@ -353,13 +559,8 @@ export async function startAgUiServer(config, port) {
353
559
  }
354
560
  }
355
561
  }
356
- // TEXT_MESSAGE_END (only if a text message was started)
357
- if (textMessageStarted) {
358
- res.write(encoder.encode({
359
- type: EventType.TEXT_MESSAGE_END,
360
- messageId,
361
- }));
362
- }
562
+ // Close any still-open text run at the end of the stream.
563
+ endTextRun();
363
564
  // RUN_FINISHED
364
565
  res.write(encoder.encode({
365
566
  type: EventType.RUN_FINISHED,
@@ -1 +1 @@
1
- {"version":3,"file":"apiAgUiModule.js","sourceRoot":"","sources":["../../src/modules/apiAgUiModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiAgUiModule.js","sourceRoot":"","sources":["../../src/modules/apiAgUiModule.ts"],"names":[],"mappings":"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"}