daycare-cli 0.0.36 → 0.0.37

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 (61) hide show
  1. package/dist/engine/agents/ops/agentHistoryContext.d.ts.map +1 -1
  2. package/dist/engine/agents/ops/agentHistoryContext.js +39 -0
  3. package/dist/engine/agents/ops/agentHistoryContext.js.map +1 -1
  4. package/dist/engine/agents/ops/agentHistoryContext.spec.js +77 -0
  5. package/dist/engine/agents/ops/agentHistoryContext.spec.js.map +1 -1
  6. package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts.map +1 -1
  7. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js +9 -0
  8. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js.map +1 -1
  9. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js +7 -0
  10. package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js.map +1 -1
  11. package/dist/engine/agents/ops/agentHistorySummary.d.ts.map +1 -1
  12. package/dist/engine/agents/ops/agentHistorySummary.js +5 -0
  13. package/dist/engine/agents/ops/agentHistorySummary.js.map +1 -1
  14. package/dist/engine/agents/ops/agentHistorySummary.spec.js +11 -2
  15. package/dist/engine/agents/ops/agentHistorySummary.spec.js.map +1 -1
  16. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  17. package/dist/engine/agents/ops/agentLoopRun.js +83 -110
  18. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  19. package/dist/engine/agents/ops/agentLoopRun.spec.js +157 -18
  20. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  21. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.d.ts +7 -0
  22. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.d.ts.map +1 -0
  23. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.js +20 -0
  24. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.js.map +1 -0
  25. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.d.ts +2 -0
  26. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.d.ts.map +1 -0
  27. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.js +39 -0
  28. package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.js.map +1 -0
  29. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.d.ts +6 -0
  30. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.d.ts.map +1 -0
  31. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.js +17 -0
  32. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.js.map +1 -0
  33. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.d.ts +2 -0
  34. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.d.ts.map +1 -0
  35. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.js +31 -0
  36. package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.js.map +1 -0
  37. package/dist/engine/agents/ops/agentTypes.d.ts +8 -1
  38. package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
  39. package/dist/engine/modules/rlm/rlmNoToolsExtract.d.ts +2 -2
  40. package/dist/engine/modules/rlm/rlmNoToolsExtract.d.ts.map +1 -1
  41. package/dist/engine/modules/rlm/rlmNoToolsExtract.js +3 -3
  42. package/dist/engine/modules/rlm/rlmNoToolsExtract.js.map +1 -1
  43. package/dist/engine/modules/rlm/rlmNoToolsExtract.spec.js +10 -6
  44. package/dist/engine/modules/rlm/rlmNoToolsExtract.spec.js.map +1 -1
  45. package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js +6 -3
  46. package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js.map +1 -1
  47. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.d.ts +0 -2
  48. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.d.ts.map +1 -1
  49. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.js +1 -3
  50. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.js.map +1 -1
  51. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.spec.js +0 -11
  52. package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.spec.js.map +1 -1
  53. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js +3 -0
  54. package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js.map +1 -1
  55. package/dist/engine/modules/tools/sessionHistoryToolBuild.js +4 -0
  56. package/dist/engine/modules/tools/sessionHistoryToolBuild.js.map +1 -1
  57. package/dist/prompts/SYSTEM_TOOLS_RLM.md +13 -0
  58. package/dist/prompts/SYSTEM_TOOLS_RLM_INLINE.md +19 -5
  59. package/dist/types.d.ts +1 -1
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -16,6 +16,8 @@ import { agentDescriptorIsCron } from "./agentDescriptorIsCron.js";
16
16
  import { agentDescriptorTargetResolve } from "./agentDescriptorTargetResolve.js";
17
17
  import { tokensResolve } from "./tokensResolve.js";
18
18
  import { agentHistoryPendingToolResults } from "./agentHistoryPendingToolResults.js";
19
+ import { agentMessageRunPythonFailureTrim } from "./agentMessageRunPythonFailureTrim.js";
20
+ import { agentMessageRunPythonSayAfterTrim } from "./agentMessageRunPythonSayAfterTrim.js";
19
21
  import { tagExtract, tagExtractAll } from "../../../util/tagExtract.js";
20
22
  import { sayFileExtract } from "../../modules/say/sayFileExtract.js";
21
23
  import { sayFileResolve } from "../../modules/say/sayFileResolve.js";
@@ -126,10 +128,13 @@ export async function agentLoopRun(options) {
126
128
  logger.debug(`receive: Inference response received providerId=${response.providerId} modelId=${response.modelId} stopReason=${response.message.stopReason}`);
127
129
  context.messages.push(response.message);
128
130
  const responseText = messageExtractText(response.message);
131
+ let historyResponseText = responseText ?? "";
132
+ const pendingHistoryRewrites = [];
129
133
  const toolCalls = messageExtractToolCalls(response.message);
130
- const runPythonCode = noToolsModeEnabled
134
+ const runPythonCodes = noToolsModeEnabled
131
135
  ? rlmNoToolsExtract(responseText ?? "")
132
- : null;
136
+ : [];
137
+ const hasRunPythonTag = runPythonCodes.length > 0;
133
138
  lastResponseHadToolCalls = toolCalls.length > 0;
134
139
  const suppressUserOutput = messageNoMessageIs(responseText);
135
140
  if (suppressUserOutput) {
@@ -139,27 +144,26 @@ export async function agentLoopRun(options) {
139
144
  lastResponseNoMessage = suppressUserOutput;
140
145
  const sayEnabled = agentSystem.config.current.features.say && agentKind === "foreground";
141
146
  let effectiveResponseText = suppressUserOutput ? null : responseText;
142
- let deferredSayBlocks = [];
143
- let deferredSayFiles = [];
147
+ const runPythonSplit = hasRunPythonTag && effectiveResponseText
148
+ ? runPythonResponseSplit(effectiveResponseText)
149
+ : null;
150
+ if (noToolsModeEnabled && hasRunPythonTag && responseText) {
151
+ const stripped = agentMessageRunPythonSayAfterTrim(responseText);
152
+ if (stripped !== null) {
153
+ historyResponseText = stripped;
154
+ pendingHistoryRewrites.push({
155
+ text: stripped,
156
+ reason: "run_python_say_after_trim"
157
+ });
158
+ messageAssistantTextRewrite(response.message, stripped);
159
+ logger.debug("event: Rewrote assistant message in context history after <run_python>");
160
+ }
161
+ }
144
162
  // <say> tag mode: only send text inside <say> blocks, suppress the rest
145
163
  if (sayEnabled && effectiveResponseText) {
146
164
  let immediateSayText = effectiveResponseText;
147
- if (noToolsModeEnabled && runPythonCode !== null) {
148
- const runPythonSplit = runPythonResponseSplit(effectiveResponseText);
149
- if (runPythonSplit) {
150
- immediateSayText = runPythonSplit.beforeRunPython;
151
- deferredSayBlocks = tagExtractAll(runPythonSplit.afterRunPython, "say");
152
- const deferredFileRefs = sayFileExtract(runPythonSplit.afterRunPython);
153
- deferredSayFiles =
154
- deferredFileRefs.length > 0
155
- ? await sayFileResolve({
156
- files: deferredFileRefs,
157
- fileStore,
158
- permissions: agent.state.permissions,
159
- logger
160
- })
161
- : [];
162
- }
165
+ if (noToolsModeEnabled && hasRunPythonTag && runPythonSplit) {
166
+ immediateSayText = runPythonSplit.beforeRunPython;
163
167
  }
164
168
  const sayBlocks = tagExtractAll(immediateSayText, "say");
165
169
  const sayFiles = sayFileExtract(immediateSayText);
@@ -235,16 +239,10 @@ export async function agentLoopRun(options) {
235
239
  effectiveResponseText = null;
236
240
  finalResponseText = null;
237
241
  lastResponseTextSent = true; // prevent post-loop fallback send
238
- if (deferredSayBlocks.length > 0 || deferredSayFiles.length > 0) {
239
- logger.debug("event: deferred post-run_python <say>/<file> payload detected; waiting for execution success");
240
- }
241
- else {
242
- logger.debug("event: <say> feature enabled but no <say> tags found; suppressing output");
243
- }
242
+ logger.debug("event: <say> feature enabled but no <say> tags found; suppressing output");
244
243
  }
245
244
  }
246
245
  else {
247
- const hasRunPythonTag = runPythonCode !== null;
248
246
  const trimmedText = effectiveResponseText?.trim() ?? "";
249
247
  const hasResponseText = trimmedText.length > 0;
250
248
  if (hasRunPythonTag) {
@@ -277,14 +275,24 @@ export async function agentLoopRun(options) {
277
275
  }
278
276
  }
279
277
  logger.debug(`event: Extracted tool calls from response toolCallCount=${toolCalls.length}`);
278
+ const assistantRecordAt = Date.now();
280
279
  await historyRecordAppend(historyRecords, {
281
280
  type: "assistant_message",
282
- at: Date.now(),
281
+ at: assistantRecordAt,
283
282
  text: responseText ?? "",
284
283
  files: [],
285
284
  toolCalls,
286
285
  tokens: tokensEntry
287
286
  }, appendHistoryRecord);
287
+ for (const rewrite of pendingHistoryRewrites) {
288
+ await historyRecordAppend(historyRecords, {
289
+ type: "assistant_rewrite",
290
+ at: Date.now(),
291
+ assistantAt: assistantRecordAt,
292
+ text: rewrite.text,
293
+ reason: rewrite.reason
294
+ }, appendHistoryRecord);
295
+ }
288
296
  // Child-agent <response> tag: check on every iteration, deliver each one to parent
289
297
  if (isChildAgent) {
290
298
  const extracted = tagExtract(responseText ?? "", "response");
@@ -295,8 +303,7 @@ export async function agentLoopRun(options) {
295
303
  }
296
304
  }
297
305
  if (noToolsModeEnabled) {
298
- if (runPythonCode !== null) {
299
- const toolCallId = createId();
306
+ if (hasRunPythonTag) {
300
307
  const preamble = rlmPreambleBuild(toolResolver.listTools());
301
308
  const executionContext = {
302
309
  connectorRegistry,
@@ -316,75 +323,32 @@ export async function agentLoopRun(options) {
316
323
  appendHistoryRecord,
317
324
  rlmToolOnly: false
318
325
  };
319
- try {
320
- const result = await rlmExecute(runPythonCode, preamble, executionContext, toolResolver, toolCallId, appendHistoryRecord);
321
- context.messages.push(rlmNoToolsResultMessageBuild({ result }));
322
- if (deferredSayBlocks.length > 0) {
323
- finalResponseText = deferredSayBlocks[deferredSayBlocks.length - 1];
324
- lastResponseTextSent = true;
325
- if (connector && targetId) {
326
- try {
327
- for (let index = 0; index < deferredSayBlocks.length; index += 1) {
328
- const block = deferredSayBlocks[index];
329
- const filesForMessage = index === deferredSayBlocks.length - 1 && deferredSayFiles.length > 0
330
- ? deferredSayFiles
331
- : undefined;
332
- await connector.sendMessage(targetId, {
333
- text: block,
334
- files: filesForMessage,
335
- replyToMessageId: entry.context.messageId
336
- });
337
- eventBus.emit("agent.outgoing", {
338
- agentId: agent.id,
339
- source,
340
- message: {
341
- text: block,
342
- files: filesForMessage
343
- },
344
- context: entry.context
345
- });
346
- }
347
- }
348
- catch (error) {
349
- logger.warn({ connector: source, error }, "error: Failed to send deferred <say> response text");
350
- }
351
- }
326
+ for (let index = 0; index < runPythonCodes.length; index += 1) {
327
+ const runPythonCode = runPythonCodes[index];
328
+ const toolCallId = createId();
329
+ try {
330
+ const result = await rlmExecute(runPythonCode, preamble, executionContext, toolResolver, toolCallId, appendHistoryRecord);
331
+ context.messages.push(rlmNoToolsResultMessageBuild({ result }));
352
332
  }
353
- else if (deferredSayFiles.length > 0) {
354
- finalResponseText = null;
355
- lastResponseTextSent = true;
356
- if (connector && targetId) {
357
- try {
358
- await connector.sendMessage(targetId, {
359
- text: null,
360
- files: deferredSayFiles,
361
- replyToMessageId: entry.context.messageId
362
- });
363
- eventBus.emit("agent.outgoing", {
364
- agentId: agent.id,
365
- source,
366
- message: {
367
- text: null,
368
- files: deferredSayFiles
369
- },
370
- context: entry.context
371
- });
372
- }
373
- catch (error) {
374
- logger.warn({ connector: source, error }, "error: Failed to send deferred <file> response files");
375
- }
333
+ catch (error) {
334
+ const message = error instanceof Error ? error.message : String(error);
335
+ await appendHistoryRecord?.(rlmHistoryCompleteErrorRecordBuild(toolCallId, message));
336
+ const truncated = agentMessageRunPythonFailureTrim(historyResponseText, index);
337
+ if (truncated !== null) {
338
+ historyResponseText = truncated;
339
+ messageAssistantTextRewrite(response.message, truncated);
340
+ await historyRecordAppend(historyRecords, {
341
+ type: "assistant_rewrite",
342
+ at: Date.now(),
343
+ assistantAt: assistantRecordAt,
344
+ text: truncated,
345
+ reason: "run_python_failure_trim"
346
+ }, appendHistoryRecord);
347
+ logger.debug("event: Rewrote assistant message in context history after failed <run_python> block");
376
348
  }
349
+ break;
377
350
  }
378
351
  }
379
- catch (error) {
380
- const message = error instanceof Error ? error.message : String(error);
381
- await appendHistoryRecord?.(rlmHistoryCompleteErrorRecordBuild(toolCallId, message));
382
- const sayUndeliveredLine = sayUndeliveredNoticeBuild(deferredSayBlocks.length);
383
- context.messages.push(rlmNoToolsResultMessageBuild({
384
- error,
385
- prefixLines: sayUndeliveredLine ? [sayUndeliveredLine] : undefined
386
- }));
387
- }
388
352
  if (iteration === MAX_TOOL_ITERATIONS - 1) {
389
353
  logger.debug(`event: Tool loop limit reached iteration=${iteration}`);
390
354
  toolLoopExceeded = true;
@@ -635,28 +599,37 @@ function stripNoMessageTextBlocks(message) {
635
599
  }
636
600
  }
637
601
  function runPythonResponseSplit(text) {
638
- const closeTagPattern = /<\/run_python\s*>/gi;
639
- let splitIndex = -1;
640
- let match;
641
- while ((match = closeTagPattern.exec(text)) !== null) {
642
- splitIndex = match.index + match[0].length;
643
- }
644
- if (splitIndex === -1) {
602
+ const openTagPattern = /<run_python(\s[^>]*)?>/i;
603
+ const match = openTagPattern.exec(text);
604
+ if (!match || match.index === undefined) {
645
605
  return null;
646
606
  }
647
607
  return {
648
- beforeRunPython: text.slice(0, splitIndex),
649
- afterRunPython: text.slice(splitIndex)
608
+ beforeRunPython: text.slice(0, match.index),
609
+ afterRunPython: text.slice(match.index)
650
610
  };
651
611
  }
652
- function sayUndeliveredNoticeBuild(count) {
653
- if (count <= 0) {
654
- return null;
612
+ function messageAssistantTextRewrite(message, text) {
613
+ if (message.role !== "assistant") {
614
+ return;
655
615
  }
656
- if (count === 1) {
657
- return "Notice: 1 <say> block after </run_python> was not delivered because Python execution failed.";
616
+ const nextContent = [];
617
+ let textRewritten = false;
618
+ for (const part of message.content) {
619
+ if (part.type !== "text") {
620
+ nextContent.push(part);
621
+ continue;
622
+ }
623
+ if (textRewritten) {
624
+ continue;
625
+ }
626
+ nextContent.push({ ...part, text });
627
+ textRewritten = true;
628
+ }
629
+ if (!textRewritten) {
630
+ return;
658
631
  }
659
- return `Notice: ${count} <say> blocks after </run_python> were not delivered because Python execution failed.`;
632
+ message.content = nextContent;
660
633
  }
661
634
  function isContextOverflowError(error) {
662
635
  const candidates = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoopRun.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentLoopRun.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"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"}
@@ -272,6 +272,83 @@ describe("agentLoopRun", () => {
272
272
  expect(appendHistoryTypes).toContain("rlm_tool_result");
273
273
  expect(appendHistoryTypes).toContain("rlm_complete");
274
274
  });
275
+ it("executes multiple run_python tags sequentially and stops at the first failure", async () => {
276
+ const contexts = [];
277
+ const connector = connectorBuild(vi.fn(async () => undefined));
278
+ const entry = entryBuild();
279
+ const context = contextBuild();
280
+ const inferenceRouter = {
281
+ complete: vi.fn(async (incomingContext) => {
282
+ contexts.push(structuredClone(incomingContext));
283
+ if (contexts.length === 1) {
284
+ return {
285
+ message: assistantMessageBuild([
286
+ {
287
+ type: "text",
288
+ text: [
289
+ "<run_python>echo()</run_python>",
290
+ "<run_python>fail()</run_python>",
291
+ "<run_python>tail()</run_python>"
292
+ ].join("")
293
+ }
294
+ ]),
295
+ providerId: "provider-1",
296
+ modelId: "model-1"
297
+ };
298
+ }
299
+ return {
300
+ message: assistantMessageBuild([{ type: "text", text: "done" }]),
301
+ providerId: "provider-1",
302
+ modelId: "model-1"
303
+ };
304
+ })
305
+ };
306
+ const execute = vi.fn(async (toolCall) => {
307
+ if (toolCall.name === "echo") {
308
+ return toolResultTextBuild(toolCall.id, toolCall.name, "ok");
309
+ }
310
+ if (toolCall.name === "fail") {
311
+ throw new Error("boom");
312
+ }
313
+ throw new Error(`Unexpected tool: ${toolCall.name}`);
314
+ });
315
+ const toolResolver = {
316
+ listTools: vi.fn(() => [
317
+ { name: "run_python", description: "", parameters: {} },
318
+ { name: "echo", description: "", parameters: {} },
319
+ { name: "fail", description: "", parameters: {} },
320
+ { name: "tail", description: "", parameters: {} }
321
+ ]),
322
+ execute
323
+ };
324
+ await agentLoopRun(optionsBuild({
325
+ entry,
326
+ context,
327
+ connector,
328
+ inferenceRouter,
329
+ toolResolver,
330
+ noTools: true,
331
+ rlm: true,
332
+ say: true
333
+ }));
334
+ expect(inferenceRouter.complete).toHaveBeenCalledTimes(2);
335
+ expect(execute).toHaveBeenCalledTimes(2);
336
+ expect(execute).toHaveBeenNthCalledWith(1, expect.objectContaining({ name: "echo" }), expect.anything());
337
+ expect(execute).toHaveBeenNthCalledWith(2, expect.objectContaining({ name: "fail" }), expect.anything());
338
+ const assistantMessage = contexts[1]?.messages.find((message) => message.role === "assistant");
339
+ const assistantText = assistantMessage ? messageExtractText(assistantMessage) ?? "" : "";
340
+ expect(assistantText).toContain("<run_python>echo()</run_python>");
341
+ expect(assistantText).toContain("<run_python>fail()</run_python>");
342
+ expect(assistantText).not.toContain("<run_python>tail()</run_python>");
343
+ const secondIterationMessages = contexts[1]?.messages ?? [];
344
+ const pythonResultTexts = secondIterationMessages
345
+ .filter((message) => message.role === "user")
346
+ .flatMap((message) => (Array.isArray(message.content) ? message.content : []))
347
+ .filter((part) => part.type === "text" && typeof part.text === "string" && part.text.includes("<python_result>"))
348
+ .map((part) => part.text);
349
+ expect(pythonResultTexts).toHaveLength(1);
350
+ expect(pythonResultTexts[0]).toContain("Python execution completed.");
351
+ });
275
352
  it("suppresses raw run_python text delivery in noTools mode", async () => {
276
353
  const connectorSend = vi.fn(async () => undefined);
277
354
  const connector = connectorBuild(connectorSend);
@@ -306,6 +383,78 @@ describe("agentLoopRun", () => {
306
383
  expect(execute).toHaveBeenCalledTimes(1);
307
384
  expect(connectorSend).not.toHaveBeenCalled();
308
385
  });
386
+ it("appends assistant_rewrite history events for say-after and failed run_python rewrites", async () => {
387
+ const appendedRecords = [];
388
+ const connector = connectorBuild(vi.fn(async () => undefined));
389
+ const entry = entryBuild();
390
+ const context = contextBuild();
391
+ const inferenceRouter = inferenceRouterBuild([
392
+ assistantMessageBuild([
393
+ {
394
+ type: "text",
395
+ text: [
396
+ "<say>before</say>",
397
+ "<run_python>echo()</run_python>",
398
+ "<run_python>fail()</run_python>",
399
+ "<run_python>tail()</run_python>",
400
+ "<say>after</say>"
401
+ ].join("")
402
+ }
403
+ ]),
404
+ assistantMessageBuild([])
405
+ ]);
406
+ const execute = vi.fn(async (toolCall) => {
407
+ if (toolCall.name === "echo") {
408
+ return toolResultTextBuild(toolCall.id, toolCall.name, "ok");
409
+ }
410
+ if (toolCall.name === "fail") {
411
+ throw new Error("boom");
412
+ }
413
+ throw new Error(`Unexpected tool: ${toolCall.name}`);
414
+ });
415
+ const toolResolver = {
416
+ listTools: vi.fn(() => [
417
+ { name: "run_python", description: "", parameters: {} },
418
+ { name: "echo", description: "", parameters: {} },
419
+ { name: "fail", description: "", parameters: {} },
420
+ { name: "tail", description: "", parameters: {} }
421
+ ]),
422
+ execute
423
+ };
424
+ await agentLoopRun(optionsBuild({
425
+ entry,
426
+ context,
427
+ connector,
428
+ inferenceRouter,
429
+ toolResolver,
430
+ noTools: true,
431
+ rlm: true,
432
+ say: true,
433
+ appendHistoryRecord: async (record) => {
434
+ appendedRecords.push(record);
435
+ }
436
+ }));
437
+ const assistant = appendedRecords.find((record) => record.type === "assistant_message");
438
+ if (!assistant || assistant.type !== "assistant_message") {
439
+ throw new Error("Expected assistant history record.");
440
+ }
441
+ expect(assistant.text).toContain("<run_python>tail()</run_python>");
442
+ expect(assistant.text).toContain("<say>after</say>");
443
+ const rewrites = appendedRecords.filter((record) => record.type === "assistant_rewrite");
444
+ expect(rewrites).toHaveLength(2);
445
+ expect(rewrites[0]).toMatchObject({
446
+ type: "assistant_rewrite",
447
+ reason: "run_python_say_after_trim"
448
+ });
449
+ expect(rewrites[1]).toMatchObject({
450
+ type: "assistant_rewrite",
451
+ reason: "run_python_failure_trim"
452
+ });
453
+ expect(rewrites[0]?.assistantAt).toBe(assistant.at);
454
+ expect(rewrites[1]?.assistantAt).toBe(assistant.at);
455
+ expect(rewrites[0]?.text).not.toContain("<say>after</say>");
456
+ expect(rewrites[1]?.text).not.toContain("<run_python>tail()</run_python>");
457
+ });
309
458
  it("does not execute run_python tags unless noTools, rlm, and say are all enabled", async () => {
310
459
  const connectorSend = vi.fn(async () => undefined);
311
460
  const connector = connectorBuild(connectorSend);
@@ -506,7 +655,7 @@ describe("agentLoopRun say tag", () => {
506
655
  }
507
656
  expect(firstSendOrder).toBeLessThan(firstExecuteOrder);
508
657
  });
509
- it("defers post-run_python <say> tags until execution succeeds", async () => {
658
+ it("ignores post-run_python <say> tags even when execution succeeds", async () => {
510
659
  const connectorSend = vi.fn(async () => undefined);
511
660
  const connector = connectorBuild(connectorSend);
512
661
  const entry = entryBuild();
@@ -540,31 +689,23 @@ describe("agentLoopRun say tag", () => {
540
689
  noTools: true,
541
690
  rlm: true
542
691
  }));
543
- expect(connectorSend).toHaveBeenCalledTimes(2);
692
+ expect(connectorSend).toHaveBeenCalledTimes(1);
544
693
  expect(connectorSend).toHaveBeenNthCalledWith(1, "channel-1", {
545
694
  text: "before",
546
695
  files: undefined,
547
696
  replyToMessageId: undefined
548
697
  });
549
- expect(connectorSend).toHaveBeenNthCalledWith(2, "channel-1", {
550
- text: "after",
551
- files: undefined,
552
- replyToMessageId: undefined
553
- });
554
698
  expect(execute).toHaveBeenCalledTimes(1);
555
699
  const beforeOrder = connectorSend.mock.invocationCallOrder[0];
556
700
  const executeOrder = execute.mock.invocationCallOrder[0];
557
- const afterOrder = connectorSend.mock.invocationCallOrder[1];
558
701
  expect(beforeOrder).toBeDefined();
559
702
  expect(executeOrder).toBeDefined();
560
- expect(afterOrder).toBeDefined();
561
- if (beforeOrder === undefined || executeOrder === undefined || afterOrder === undefined) {
703
+ if (beforeOrder === undefined || executeOrder === undefined) {
562
704
  throw new Error("Expected ordered send/execute calls to be recorded.");
563
705
  }
564
706
  expect(beforeOrder).toBeLessThan(executeOrder);
565
- expect(executeOrder).toBeLessThan(afterOrder);
566
707
  });
567
- it("keeps post-run_python <say> in context and prepends undelivered notice on execution failure", async () => {
708
+ it("rewrites context history by removing post-run_python <say> without adding ignored notice", async () => {
568
709
  const connectorSend = vi.fn(async (_targetId, _message) => undefined);
569
710
  const connector = connectorBuild(connectorSend);
570
711
  const entry = entryBuild();
@@ -613,9 +754,10 @@ describe("agentLoopRun say tag", () => {
613
754
  expect(contexts).toHaveLength(2);
614
755
  const assistantMessage = contexts[1]?.messages.find((message) => message.role === "assistant");
615
756
  const assistantText = assistantMessage ? messageExtractText(assistantMessage) ?? "" : "";
757
+ expect(assistantText).toContain("<say>before</say>");
616
758
  expect(assistantText).toContain("</run_python>");
617
- expect(assistantText).toContain("<say>after</say>");
618
- const pythonResultMessage = contexts[1]?.messages.find((message) => {
759
+ expect(assistantText).not.toContain("<say>after</say>");
760
+ const hasPythonResultMessage = (contexts[1]?.messages ?? []).some((message) => {
619
761
  if (message.role !== "user" || !Array.isArray(message.content)) {
620
762
  return false;
621
763
  }
@@ -623,10 +765,7 @@ describe("agentLoopRun say tag", () => {
623
765
  typeof part.text === "string" &&
624
766
  part.text.includes("<python_result>"));
625
767
  });
626
- const pythonResultText = pythonResultMessage && Array.isArray(pythonResultMessage.content)
627
- ? pythonResultMessage.content.find((part) => part.type === "text" && typeof part.text === "string")?.text ?? ""
628
- : "";
629
- expect(pythonResultText).toContain("Notice: 1 <say> block after </run_python> was not delivered because Python execution failed.");
768
+ expect(hasPythonResultMessage).toBe(false);
630
769
  const sentTexts = connectorSend.mock.calls.map((call) => {
631
770
  const message = call[1];
632
771
  return message.text ?? null;