@gaunt-sloth/agent 2.0.0-alpha.8 → 2.0.0-beta.0

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 (126) hide show
  1. package/README.md +73 -23
  2. package/cli-acp.js +21 -24
  3. package/dist/builtInToolsConfig.d.ts +17 -3
  4. package/dist/builtInToolsConfig.js +43 -41
  5. package/dist/builtInToolsConfig.js.map +1 -1
  6. package/dist/core/debugCapture.d.ts +7 -49
  7. package/dist/core/debugCapture.js +1 -1
  8. package/dist/core/debugCapture.js.map +1 -1
  9. package/dist/core/resolveAgentFactory.d.ts +10 -9
  10. package/dist/core/resolveAgentFactory.js +11 -12
  11. package/dist/core/resolveAgentFactory.js.map +1 -1
  12. package/dist/index.d.ts +4 -4
  13. package/dist/index.js +7 -5
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp/OAuthClientProviderImpl.js.map +1 -1
  16. package/dist/mcp/tlsTrust.d.ts +61 -0
  17. package/dist/mcp/tlsTrust.js +109 -0
  18. package/dist/mcp/tlsTrust.js.map +1 -0
  19. package/dist/middleware/binaryContentInjectionMiddleware.d.ts +8 -1
  20. package/dist/middleware/binaryContentInjectionMiddleware.js +11 -2
  21. package/dist/middleware/binaryContentInjectionMiddleware.js.map +1 -1
  22. package/dist/middleware/frontendImageInjectionMiddleware.d.ts +107 -0
  23. package/dist/middleware/frontendImageInjectionMiddleware.js +167 -0
  24. package/dist/middleware/frontendImageInjectionMiddleware.js.map +1 -0
  25. package/dist/middleware/registry.js +49 -1
  26. package/dist/middleware/registry.js.map +1 -1
  27. package/dist/middleware/types.d.ts +16 -2
  28. package/dist/modules/a2a/A2AClientWrapper.d.ts +56 -1
  29. package/dist/modules/a2a/A2AClientWrapper.js +131 -31
  30. package/dist/modules/a2a/A2AClientWrapper.js.map +1 -1
  31. package/dist/modules/acp/acpAgentApp.d.ts +57 -0
  32. package/dist/modules/acp/acpAgentApp.js +378 -0
  33. package/dist/modules/acp/acpAgentApp.js.map +1 -0
  34. package/dist/modules/acp/acpAgentAppV1.d.ts +52 -0
  35. package/dist/modules/acp/acpAgentAppV1.js +307 -0
  36. package/dist/modules/acp/acpAgentAppV1.js.map +1 -0
  37. package/dist/modules/acp/acpCommon.d.ts +167 -0
  38. package/dist/modules/acp/acpCommon.js +282 -0
  39. package/dist/modules/acp/acpCommon.js.map +1 -0
  40. package/dist/modules/acp/acpPermissions.d.ts +65 -0
  41. package/dist/modules/acp/acpPermissions.js +162 -0
  42. package/dist/modules/acp/acpPermissions.js.map +1 -0
  43. package/dist/modules/acp/acpPermissionsV1.d.ts +45 -0
  44. package/dist/modules/acp/acpPermissionsV1.js +110 -0
  45. package/dist/modules/acp/acpPermissionsV1.js.map +1 -0
  46. package/dist/modules/acp/acpRouter.d.ts +41 -0
  47. package/dist/modules/acp/acpRouter.js +48 -0
  48. package/dist/modules/acp/acpRouter.js.map +1 -0
  49. package/dist/modules/acp/acpStdio.d.ts +47 -0
  50. package/dist/modules/acp/acpStdio.js +71 -0
  51. package/dist/modules/acp/acpStdio.js.map +1 -0
  52. package/dist/modules/acp/acpToolCalls.d.ts +93 -0
  53. package/dist/modules/acp/acpToolCalls.js +193 -0
  54. package/dist/modules/acp/acpToolCalls.js.map +1 -0
  55. package/dist/modules/acp/acpUpdates.d.ts +48 -0
  56. package/dist/modules/acp/acpUpdates.js +142 -0
  57. package/dist/modules/acp/acpUpdates.js.map +1 -0
  58. package/dist/modules/acp/acpUpdatesV1.d.ts +61 -0
  59. package/dist/modules/acp/acpUpdatesV1.js +162 -0
  60. package/dist/modules/acp/acpUpdatesV1.js.map +1 -0
  61. package/dist/modules/apiAgUiModule.d.ts +87 -0
  62. package/dist/modules/apiAgUiModule.js +193 -28
  63. package/dist/modules/apiAgUiModule.js.map +1 -1
  64. package/dist/modules/interactiveSessionModule.js +497 -51
  65. package/dist/modules/interactiveSessionModule.js.map +1 -1
  66. package/dist/modules/slashCommands.d.ts +582 -0
  67. package/dist/modules/slashCommands.js +1001 -0
  68. package/dist/modules/slashCommands.js.map +1 -0
  69. package/dist/resolvers.js +119 -9
  70. package/dist/resolvers.js.map +1 -1
  71. package/dist/tools/GthCustomToolkit.js +95 -11
  72. package/dist/tools/GthCustomToolkit.js.map +1 -1
  73. package/dist/tools/GthDevToolkit.d.ts +8 -5
  74. package/dist/tools/GthDevToolkit.js +89 -43
  75. package/dist/tools/GthDevToolkit.js.map +1 -1
  76. package/dist/tools/GthFileSystemToolkit.d.ts +63 -0
  77. package/dist/tools/GthFileSystemToolkit.js +506 -105
  78. package/dist/tools/GthFileSystemToolkit.js.map +1 -1
  79. package/dist/tools/McpResourceTool.d.ts +31 -0
  80. package/dist/tools/McpResourceTool.js +106 -0
  81. package/dist/tools/McpResourceTool.js.map +1 -0
  82. package/dist/tools/gthChecklistTool.d.ts +30 -0
  83. package/dist/tools/gthChecklistTool.js +80 -0
  84. package/dist/tools/gthChecklistTool.js.map +1 -0
  85. package/dist/tools/gthGrepTool.d.ts +54 -0
  86. package/dist/tools/gthGrepTool.js +482 -0
  87. package/dist/tools/gthGrepTool.js.map +1 -0
  88. package/dist/tools/shell/env.js +1 -1
  89. package/dist/tools/shell/env.js.map +1 -1
  90. package/dist/tools/shell/outputBuffer.js.map +1 -1
  91. package/dist/tools/shell/workDir.d.ts +1 -10
  92. package/dist/tools/shell/workDir.js +10 -36
  93. package/dist/tools/shell/workDir.js.map +1 -1
  94. package/dist/utils/mcpAuthError.d.ts +36 -0
  95. package/dist/utils/mcpAuthError.js +89 -0
  96. package/dist/utils/mcpAuthError.js.map +1 -0
  97. package/dist/utils/mcpUtils.js +16 -0
  98. package/dist/utils/mcpUtils.js.map +1 -1
  99. package/package.json +13 -13
  100. package/dist/core/GthDeepAgent.d.ts +0 -181
  101. package/dist/core/GthDeepAgent.js +0 -682
  102. package/dist/core/GthDeepAgent.js.map +0 -1
  103. package/dist/core/deepAgentPermissions.d.ts +0 -115
  104. package/dist/core/deepAgentPermissions.js +0 -282
  105. package/dist/core/deepAgentPermissions.js.map +0 -1
  106. package/dist/core/gthAcpServer.d.ts +0 -27
  107. package/dist/core/gthAcpServer.js +0 -82
  108. package/dist/core/gthAcpServer.js.map +0 -1
  109. package/dist/core/gthDeepAgentFactory.d.ts +0 -8
  110. package/dist/core/gthDeepAgentFactory.js +0 -9
  111. package/dist/core/gthDeepAgentFactory.js.map +0 -1
  112. package/dist/modules/acpModule.d.ts +0 -40
  113. package/dist/modules/acpModule.js +0 -78
  114. package/dist/modules/acpModule.js.map +0 -1
  115. package/dist/tools/shell/allowlist.d.ts +0 -11
  116. package/dist/tools/shell/allowlist.js +0 -12
  117. package/dist/tools/shell/allowlist.js.map +0 -1
  118. package/dist/tools/shell/arity.d.ts +0 -11
  119. package/dist/tools/shell/arity.js +0 -12
  120. package/dist/tools/shell/arity.js.map +0 -1
  121. package/dist/tools/shell/hardline.d.ts +0 -15
  122. package/dist/tools/shell/hardline.js +0 -88
  123. package/dist/tools/shell/hardline.js.map +0 -1
  124. package/dist/tools/shell/normalize.d.ts +0 -10
  125. package/dist/tools/shell/normalize.js +0 -11
  126. package/dist/tools/shell/normalize.js.map +0 -1
@@ -2,10 +2,10 @@ import express from 'express';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { EventEncoder } from '@ag-ui/encoder';
4
4
  import { EventType } from '@ag-ui/core';
5
- import { GthDeepAgent } from '#src/core/GthDeepAgent.js';
6
5
  import { GthLangChainAgent } from '@gaunt-sloth/core/core/GthLangChainAgent.js';
7
6
  import { defaultStatusCallback, displayInfo, displayWarning, } from '@gaunt-sloth/core/utils/consoleUtils.js';
8
7
  import { getNewRunnableConfig } from '@gaunt-sloth/core/utils/llmUtils.js';
8
+ import { textToNativeToolCalls } from '@gaunt-sloth/core/core/toolCallRepair/index.js';
9
9
  import { HumanMessage, AIMessage, SystemMessage, ToolMessage } from '@langchain/core/messages';
10
10
  import { MemorySaver } from '@langchain/langgraph';
11
11
  import { tool } from '@langchain/core/tools';
@@ -97,9 +97,20 @@ function parseToolArguments(raw, toolName) {
97
97
  }
98
98
  }
99
99
  /**
100
- * Convert AG-UI message format to LangChain BaseMessage
100
+ * Convert AG-UI message format to LangChain BaseMessage.
101
+ *
102
+ * `allowedToolNames` is the set of tool names bound to this run (config.tools + any run-input
103
+ * client tools). It gates EXT-35 plain-text tool-call repair on the assistant branch: an incoming
104
+ * assistant message with NO native `toolCalls` whose content is a STANDALONE text-emitted call
105
+ * (bracket / `<function=…>` / Harmony — the dialects small/local models produce) is promoted to a
106
+ * native tool_call so a replayed history turn is a real tool call rather than inert prose. An empty
107
+ * (or absent) allow-list promotes nothing — the prose-safe default. This runs alongside
108
+ * {@link parseToolArguments} (which rescues malformed args on an ALREADY-native tool_call).
109
+ *
110
+ * EXT-43: `options.allowTextCallPromotion` (default `true`) lets a caller suppress promotion for a
111
+ * single message; {@link convertMessages} uses it to leave a DANGLING history call as text.
101
112
  */
102
- function convertMessage(msg) {
113
+ export function convertMessage(msg, allowedToolNames, options) {
103
114
  const content = typeof msg.content === 'string' ? msg.content : '';
104
115
  switch (msg.role) {
105
116
  case 'user':
@@ -116,30 +127,112 @@ function convertMessage(msg) {
116
127
  })),
117
128
  });
118
129
  }
130
+ // EXT-35: no native tool_calls — a small/local model may have emitted the call as assistant
131
+ // TEXT. Promote a standalone text-emitted call (gated by the bound-tool allow-list + payload
132
+ // cap + standalone-only) to a native tool_call; otherwise fall through to plain text.
133
+ // EXT-43: `allowTextCallPromotion === false` (a dangling history call) short-circuits the
134
+ // promotion so the message stays plain text.
135
+ const repairedToolCalls = options?.allowTextCallPromotion !== false && allowedToolNames && allowedToolNames.size > 0
136
+ ? textToNativeToolCalls(content, { allowedToolNames })
137
+ : undefined;
138
+ if (repairedToolCalls) {
139
+ return new AIMessage({ content: '', tool_calls: repairedToolCalls });
140
+ }
119
141
  return new AIMessage(content);
120
142
  }
121
143
  case 'system':
122
144
  case 'developer':
123
145
  return new SystemMessage(content);
124
146
  case 'tool':
125
- return new ToolMessage({ content, tool_call_id: msg.toolCallId || msg.id });
147
+ return new ToolMessage({
148
+ content,
149
+ tool_call_id: msg.toolCallId || msg.id,
150
+ ...(options?.toolName ? { name: options.toolName } : {}),
151
+ });
126
152
  default:
127
153
  return new HumanMessage(content);
128
154
  }
129
155
  }
156
+ /**
157
+ * Convert a whole AG-UI history array to LangChain messages, applying TWO symmetric replay guards
158
+ * so a poisoned history can never abort every subsequent turn on the thread.
159
+ *
160
+ * EXT-43 (forward, dangling-CALL): EXT-35's per-message promotion is unconditional, which is correct
161
+ * for a call that WILL be executed this turn. But when replaying HISTORY, promoting a STALLED text
162
+ * call (one the client recorded but that never ran) yields an `AIMessage` with `tool_calls` and NO
163
+ * following `tool_result` — a shape a strict provider (Anthropic) 400s on, where the pre-EXT-35
164
+ * plain text was valid. So promotion is allowed ONLY when the assistant message is immediately
165
+ * followed by a `tool` result message; a dangling call stays plain text (`allowTextCallPromotion:
166
+ * false`).
167
+ *
168
+ * RC-18 (backward, orphan-RESULT): the mirror image. A replayed `role:'tool'` message whose matching
169
+ * `tool_call` id is absent from EVERY PRECEDING assistant message is an ORPHAN — converting it to a
170
+ * `ToolMessage` yields a tool result with no preceding `AIMessage.tool_calls`, which the same strict
171
+ * provider 400s on (`Invalid parameter: messages with role 'tool' must be a response to a preceding
172
+ * message with 'tool_calls'`, INVALID_TOOL_RESULTS). Such orphans arise when a terminal
173
+ * (`returnDirect`) tool call's result is reconstructed by the client without its parenting assistant
174
+ * `tool_call`. We DROP the orphan (match on tool_call_id, NOT adjacency; keep genuine pairs; do NOT
175
+ * fabricate a synthetic call — mirroring EXT-43's demote-don't-invent spirit). Ids are accumulated
176
+ * in iteration order, so a result whose matching call appears only LATER is still an orphan.
177
+ *
178
+ * RC-32 (tool NAME restoration): the AG-UI wire message for a `tool` result carries `toolCallId`
179
+ * but no tool name, so a naively-converted `ToolMessage` has none — and every middleware that
180
+ * inspects results by name is blind to it. `frontend-image-injection` keys on
181
+ * `msg.name === 'capture_image'`, so a captured photo reached the model on the resume turn (where
182
+ * the graph builds the ToolMessage itself, with a name) and then vanished from every later turn,
183
+ * leaving the model to answer questions about a picture it could no longer see. The name is
184
+ * recoverable from the parenting assistant `tool_call`, which this function already walks for the
185
+ * RC-18 guard, so it is resolved there and stamped back on.
186
+ *
187
+ * The live middleware path (`GthLangChainAgent`, fixing the CURRENT turn) is unaffected — the two
188
+ * guards and the name restoration are history-replay only.
189
+ */
190
+ export function convertMessages(messages, allowedToolNames) {
191
+ // tool_call id → tool NAME, for calls emitted by PRECEDING assistant messages, accumulated as we
192
+ // iterate in order. Membership is the RC-18 orphan test (a `tool` result whose tool_call_id is
193
+ // absent has no preceding assistant tool_call); the name is what RC-32 stamps back onto the
194
+ // replayed ToolMessage, since the AG-UI wire format carries the id but not the name.
195
+ const seenToolCalls = new Map();
196
+ const converted = [];
197
+ messages.forEach((msg, index) => {
198
+ // RC-18 backward orphan-RESULT guard.
199
+ if (msg.role === 'tool') {
200
+ const toolCallId = msg.toolCallId || msg.id;
201
+ if (!seenToolCalls.has(toolCallId)) {
202
+ displayWarning(`Dropping orphan tool result (tool_call_id ${JSON.stringify(toolCallId)}) with no ` +
203
+ 'preceding assistant tool_call in the replayed history; converting it would 400 the ' +
204
+ 'provider (INVALID_TOOL_RESULTS).');
205
+ return; // drop — do not convert to a ToolMessage
206
+ }
207
+ converted.push(convertMessage(msg, allowedToolNames, { toolName: seenToolCalls.get(toolCallId) }));
208
+ return;
209
+ }
210
+ // Record this assistant's native tool_call ids BEFORE any following tool result is checked, so
211
+ // a genuine call→result pair (id present on a preceding assistant) survives the guard above.
212
+ if (msg.role === 'assistant' && msg.toolCalls) {
213
+ for (const tc of msg.toolCalls) {
214
+ if (tc?.id)
215
+ seenToolCalls.set(tc.id, tc.function?.name);
216
+ }
217
+ }
218
+ // EXT-43 forward dangling-CALL guard (PRESERVED, unchanged).
219
+ const followedByToolResult = messages[index + 1]?.role === 'tool';
220
+ converted.push(convertMessage(msg, allowedToolNames, {
221
+ allowTextCallPromotion: followedByToolResult,
222
+ }));
223
+ });
224
+ return converted;
225
+ }
130
226
  /**
131
227
  * Construct the AG-UI agent for the configured backend (B5).
132
- * - `agent.backend: 'lean'` → {@link GthLangChainAgent} (plain LangChain agent, no deepagents
133
- * `/large_tool_results` offload — the fix for `filesystem: 'none'` consumers).
134
- * - anything else (including `'deep'` and the default `undefined`) → {@link GthDeepAgent}.
135
228
  *
136
- * Returns the shared {@link GthAbstractAgent} base so both backends flow through the same
137
- * `.init`/`.streamWithEvents`/`.streamWithEventsResume` surface used below.
229
+ * There is one backend, the lean {@link GthLangChainAgent}, so `agent.backend` selects nothing
230
+ * here. The return type stays the shared {@link GthAbstractAgent} base — the
231
+ * `.init`/`.streamWithEvents`/`.streamWithEventsResume` surface used below — so a second backend
232
+ * would slot in without touching the server.
138
233
  */
139
- function createConfiguredAgent(cfg) {
140
- return cfg.agent?.backend === 'lean'
141
- ? new GthLangChainAgent(defaultStatusCallback, createResolvers())
142
- : new GthDeepAgent(defaultStatusCallback, createResolvers());
234
+ function createConfiguredAgent(_cfg) {
235
+ return new GthLangChainAgent(defaultStatusCallback, createResolvers());
143
236
  }
144
237
  export async function startAgUiServer(config, port) {
145
238
  const app = express();
@@ -172,6 +265,39 @@ export async function startAgUiServer(config, port) {
172
265
  // checkpointer, but the graph shape must match the suspended one. Built lazily
173
266
  // on first sighting of a given toolset.
174
267
  const toolAgentCache = new Map();
268
+ // The client is the source of truth for history — it re-sends the full message list every turn.
269
+ // The checkpointer is NOT where that history lives; it exists so a graph suspended at an
270
+ // `interrupt()` survives between the run that suspends it and the POST that resumes it.
271
+ //
272
+ // Those two roles cannot share one thread. `add_messages` can only reconcile an incoming message
273
+ // with the checkpoint when the message carries an `id` the checkpoint already knows; a replayed
274
+ // client message has none, so the reducer mints a fresh id and APPENDS. Each turn therefore
275
+ // stacks the whole replayed history on top of the previous turn's checkpoint. For text that is
276
+ // invisible bloat, but once a tool result is in the history the thread is dead: two `tool_result`
277
+ // blocks under one `tool_use` id is the one duplication providers reject outright.
278
+ //
279
+ // So a fresh run gets a fresh checkpoint thread, making the replayed history the sole history —
280
+ // the same rotation `runConversation` performs for the CLI's multi-turn replay — while a resume
281
+ // stays on the thread whose graph is actually suspended. The client's own `threadId` remains the
282
+ // protocol-facing identity reported in RUN_STARTED / RUN_FINISHED; only the checkpoint key
283
+ // rotates.
284
+ const checkpointThreads = new Map();
285
+ function rotateCheckpointThread(clientThreadId) {
286
+ const retired = checkpointThreads.get(clientThreadId);
287
+ const fresh = randomUUID();
288
+ checkpointThreads.set(clientThreadId, fresh);
289
+ // Reclaim the superseded thread so a long-lived local server does not accumulate one dead
290
+ // checkpoint per turn. Housekeeping only — never a reason to fail a run.
291
+ const saver = checkpointSaver;
292
+ if (retired && typeof saver.deleteThread === 'function') {
293
+ // Called from inside the `.then` so a SYNCHRONOUS throw is caught too — invoking it directly
294
+ // would evaluate it before `.catch` is attached and take the request handler down with it.
295
+ void Promise.resolve()
296
+ .then(() => saver.deleteThread?.(retired))
297
+ .catch(() => { });
298
+ }
299
+ return fresh;
300
+ }
175
301
  function toolSignature(tools) {
176
302
  return JSON.stringify(tools
177
303
  .map((t) => [t.name, t.parameters ?? {}])
@@ -211,6 +337,13 @@ export async function startAgUiServer(config, port) {
211
337
  // the server's statically-configured agent.
212
338
  const hasClientTools = Array.isArray(tools) && tools.length > 0;
213
339
  const activeAgent = hasClientTools ? await getAgentForTools(tools) : agent;
340
+ // EXT-35: the names of the tools bound to THIS run (server config.tools + any run-input client
341
+ // tools) — the allow-list for plain-text tool-call repair in convertMessage. Only a text-emitted
342
+ // call naming one of these is promoted to a native tool_call; an empty set promotes nothing.
343
+ const allowedToolNames = new Set([
344
+ ...(config.tools ?? []).map((t) => t?.name),
345
+ ...(hasClientTools ? tools.map((t) => t.name) : []),
346
+ ].filter((name) => Boolean(name)));
214
347
  const encoder = new EventEncoder({ accept: req.headers.accept });
215
348
  res.setHeader('Content-Type', encoder.getContentType());
216
349
  res.setHeader('Cache-Control', 'no-cache');
@@ -240,11 +373,47 @@ export async function startAgUiServer(config, port) {
240
373
  runId: effectiveRunId,
241
374
  }));
242
375
  const messageId = randomUUID();
376
+ // C-a (spike): detect CopilotKit's resume shape. CopilotKit fulfils a
377
+ // frontend tool client-side and then RE-RUNS the agent with the full
378
+ // message history, the tool result appended as a trailing `tool` message
379
+ // — it does NOT send `forwardedProps.command.resume`. When that lands on a
380
+ // thread whose graph is suspended at our interrupt() stub, translate the
381
+ // trailing tool result into a graph resume so the suspended run continues
382
+ // (instead of starting a fresh run that just re-calls the tool).
383
+ const lastMsg = Array.isArray(messages) && messages.length > 0 ? messages[messages.length - 1] : undefined;
384
+ const isCopilotToolResume = hasClientTools && forwardedProps?.command?.resume === undefined && lastMsg?.role === 'tool';
385
+ const isResume = isCopilotToolResume || forwardedProps?.command?.resume !== undefined;
386
+ // RC-33: the tool results this request's own history already carries. A `TOOL_CALL_RESULT`
387
+ // for one of these must NOT be echoed back — the client is where it came from.
388
+ //
389
+ // The echo is right for a server-side tool: streaming it is the client's only way to learn
390
+ // what the tool returned. It is wrong for a CLIENT-fulfilled (frontend) tool, whose result
391
+ // the client computed, appended to its own history, and posted to us. `@ag-ui/client` does
392
+ // not dedupe on the way back in: its TOOL_CALL_RESULT branch locates the parenting assistant
393
+ // message, walks PAST any tool messages already sitting after it, and splices the echo in
394
+ // unconditionally. The client's history then holds two `tool` messages under one
395
+ // `toolCallId`, it replays both on the next turn, and the provider rejects the pair
396
+ // ("each tool_use must have a single result") — killing every turn after a capture.
397
+ //
398
+ // Keyed on what the client sent us in THIS request rather than on the toolset, so it stays
399
+ // correct without carrying tool-call state between runs, and can never suppress a result the
400
+ // client does not already hold.
401
+ const clientHeldToolResultIds = new Set((Array.isArray(messages) ? messages : [])
402
+ .filter((m) => m?.role === 'tool')
403
+ .map((m) => m.toolCallId || m.id)
404
+ .filter((id) => Boolean(id)));
405
+ // A resume must reach the suspended graph, so it stays on the thread the interrupted run
406
+ // used; anything else is a fresh run and gets a fresh checkpoint thread (see
407
+ // `rotateCheckpointThread`). The fallback covers a resume for which we hold no mapping —
408
+ // a client resuming across a server restart — where the client's own id is the best guess.
409
+ const checkpointThreadId = isResume
410
+ ? (checkpointThreads.get(effectiveThreadId) ?? effectiveThreadId)
411
+ : rotateCheckpointThread(effectiveThreadId);
243
412
  // Get runnable config with thread_id for checkpointing. config.recursionLimit
244
413
  // (when set by the consumer) caps the agent's super-steps per run.
245
414
  const runConfig = {
246
415
  ...getNewRunnableConfig(config.recursionLimit),
247
- configurable: { thread_id: effectiveThreadId },
416
+ configurable: { thread_id: checkpointThreadId },
248
417
  };
249
418
  // Stream the response with typed events. Text runs MUST be delimited
250
419
  // (START…CONTENT…END) around tool calls and reasoning: the AG-UI client
@@ -262,15 +431,6 @@ export async function startAgUiServer(config, port) {
262
431
  textRunId = null;
263
432
  }
264
433
  };
265
- // C-a (spike): detect CopilotKit's resume shape. CopilotKit fulfils a
266
- // frontend tool client-side and then RE-RUNS the agent with the full
267
- // message history, the tool result appended as a trailing `tool` message
268
- // — it does NOT send `forwardedProps.command.resume`. When that lands on a
269
- // thread whose graph is suspended at our interrupt() stub, translate the
270
- // trailing tool result into a graph resume so the suspended run continues
271
- // (instead of starting a fresh run that just re-calls the tool).
272
- const lastMsg = Array.isArray(messages) && messages.length > 0 ? messages[messages.length - 1] : undefined;
273
- const isCopilotToolResume = hasClientTools && forwardedProps?.command?.resume === undefined && lastMsg?.role === 'tool';
274
434
  let eventStream;
275
435
  if (isCopilotToolResume) {
276
436
  const resumeContent = typeof lastMsg.content === 'string' ? lastMsg.content : JSON.stringify(lastMsg.content);
@@ -286,16 +446,18 @@ export async function startAgUiServer(config, port) {
286
446
  ? queued
287
447
  .map((s) => typeof s === 'string'
288
448
  ? new HumanMessage(s)
289
- : convertMessage(s))
449
+ : convertMessage(s, allowedToolNames))
290
450
  .filter((m) => Boolean(m))
291
451
  : [];
292
452
  eventStream = activeAgent.streamWithEventsResume(forwardedProps.command.resume, runConfig, queuedMessages, ac.signal);
293
453
  }
294
454
  else {
295
- // The system prompt (backstory + guidelines + mode prompt + identity) lives in the
296
- // deep-agent graph via createDeepAgent({ systemPrompt }) see GthDeepAgent so it is no
297
- // longer prepended here. A separate, non-first SystemMessage would be rejected by Anthropic.
298
- const langChainMessages = (messages || []).map(convertMessage);
455
+ // The system prompt (backstory + guidelines + mode prompt + identity) is composed by the
456
+ // agent itself (GthLangChainAgent) and handed to the graph, so it is not prepended here. A
457
+ // separate, non-first SystemMessage would be rejected by Anthropic.
458
+ // EXT-43: convertMessages (not a bare map) applies the dangling-call guard so a stalled
459
+ // text call replayed in history is not promoted to a native tool_call with no result.
460
+ const langChainMessages = convertMessages((messages || []), allowedToolNames);
299
461
  eventStream = activeAgent.streamWithEvents(langChainMessages, runConfig, ac.signal);
300
462
  }
301
463
  for await (const event of eventStream) {
@@ -344,6 +506,9 @@ export async function startAgUiServer(config, port) {
344
506
  break;
345
507
  }
346
508
  case 'tool_result': {
509
+ // RC-33: never hand a result back to the client that the client itself supplied.
510
+ if (clientHeldToolResultIds.has(event.id))
511
+ break;
347
512
  res.write(encoder.encode({
348
513
  type: EventType.TOOL_CALL_RESULT,
349
514
  toolCallId: event.id,
@@ -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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"}