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.
- package/dist/engine/agents/ops/agentHistoryContext.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentHistoryContext.js +39 -0
- package/dist/engine/agents/ops/agentHistoryContext.js.map +1 -1
- package/dist/engine/agents/ops/agentHistoryContext.spec.js +77 -0
- package/dist/engine/agents/ops/agentHistoryContext.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentHistoryRecordsLoad.js +9 -0
- package/dist/engine/agents/ops/agentHistoryRecordsLoad.js.map +1 -1
- package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js +7 -0
- package/dist/engine/agents/ops/agentHistoryRecordsLoad.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentHistorySummary.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentHistorySummary.js +5 -0
- package/dist/engine/agents/ops/agentHistorySummary.js.map +1 -1
- package/dist/engine/agents/ops/agentHistorySummary.spec.js +11 -2
- package/dist/engine/agents/ops/agentHistorySummary.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.js +83 -110
- package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.spec.js +157 -18
- package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.d.ts +7 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.js +20 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.js.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.d.ts +2 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.js +39 -0
- package/dist/engine/agents/ops/agentMessageRunPythonFailureTrim.spec.js.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.d.ts +6 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.js +17 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.js.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.d.ts +2 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.js +31 -0
- package/dist/engine/agents/ops/agentMessageRunPythonSayAfterTrim.spec.js.map +1 -0
- package/dist/engine/agents/ops/agentTypes.d.ts +8 -1
- package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsExtract.d.ts +2 -2
- package/dist/engine/modules/rlm/rlmNoToolsExtract.d.ts.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsExtract.js +3 -3
- package/dist/engine/modules/rlm/rlmNoToolsExtract.js.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsExtract.spec.js +10 -6
- package/dist/engine/modules/rlm/rlmNoToolsExtract.spec.js.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js +6 -3
- package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.d.ts +0 -2
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.d.ts.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.js +1 -3
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.js.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.spec.js +0 -11
- package/dist/engine/modules/rlm/rlmNoToolsResultMessageBuild.spec.js.map +1 -1
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js +3 -0
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/sessionHistoryToolBuild.js +4 -0
- package/dist/engine/modules/tools/sessionHistoryToolBuild.js.map +1 -1
- package/dist/prompts/SYSTEM_TOOLS_RLM.md +13 -0
- package/dist/prompts/SYSTEM_TOOLS_RLM_INLINE.md +19 -5
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- 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
|
|
134
|
+
const runPythonCodes = noToolsModeEnabled
|
|
131
135
|
? rlmNoToolsExtract(responseText ?? "")
|
|
132
|
-
:
|
|
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
|
-
|
|
143
|
-
|
|
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 &&
|
|
148
|
-
|
|
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
|
-
|
|
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:
|
|
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 (
|
|
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
|
-
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
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
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
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
|
|
639
|
-
|
|
640
|
-
|
|
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,
|
|
649
|
-
afterRunPython: text.slice(
|
|
608
|
+
beforeRunPython: text.slice(0, match.index),
|
|
609
|
+
afterRunPython: text.slice(match.index)
|
|
650
610
|
};
|
|
651
611
|
}
|
|
652
|
-
function
|
|
653
|
-
if (
|
|
654
|
-
return
|
|
612
|
+
function messageAssistantTextRewrite(message, text) {
|
|
613
|
+
if (message.role !== "assistant") {
|
|
614
|
+
return;
|
|
655
615
|
}
|
|
656
|
-
|
|
657
|
-
|
|
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
|
-
|
|
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("
|
|
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(
|
|
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
|
-
|
|
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("
|
|
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
|
|
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
|
-
|
|
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;
|