Files
tg-chat-bot/test/tool-loop-summary.test.mjs
T
2026-05-18 19:05:13 +03:00

48 lines
1.5 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
const {summarizeToolLoop} = await import("../dist/ai/tool-loop-summary.js");
test("tool loop summary skips empty tool execution batches", () => {
const summary = summarizeToolLoop({
text: "answer",
executions: [],
outputAttachments: [],
});
assert.equal(summary.status, "skipped");
assert.equal(summary.fallbackAction, "continue_without_stage");
assert.equal(summary.details.count, 0);
assert.deepEqual(summary.details.tools, []);
assert.deepEqual(summary.details.modelOutput, {
text: "answer",
toolExecutions: [],
outputAttachments: [],
});
assert.equal(summary.artifacts, undefined);
});
test("tool loop summary reports executions and summary artifact", () => {
const summary = summarizeToolLoop({
text: "answer",
executions: [{
toolName: "read_file",
callId: "call-1",
argumentsText: "{}",
resultChars: 12,
}],
outputAttachments: [],
});
assert.equal(summary.status, "succeeded");
assert.equal(summary.fallbackAction, undefined);
assert.equal(summary.details.count, 1);
assert.deepEqual(summary.details.tools, [{
toolName: "read_file",
callId: "call-1",
resultChars: 12,
}]);
assert.equal(summary.artifacts?.[0]?.kind, "tool_result");
assert.equal(summary.artifacts?.[0]?.stage, "tool_loop");
});