Files
openwork/evals/packages/behaviors/test/read-session-tool-calls.test.ts

38 lines
1.3 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { parseSessionToolCalls } from "../src/desktop.ts";
test("parses namespaced and catalog tool calls from a session transcript", () => {
// Mirrors session.read_transcript's messages shape and messageToReadableText's
// dynamic-tool rendering in apps/app/src/.../session-surface.tsx:1853-1878,355-376.
const calls = parseSessionToolCalls({
sessionId: "ses_1",
messageCount: 1,
returned: 1,
messages: [{
index: 0,
role: "assistant",
text: [
"OpenWork",
"[tool:mcp:emc_labs:send_email] sent",
"[tool:native:emc_robotics:postCapabilitiesGoogleWorkspaceGmailDrafts] drafted",
"[tool:openwork-cloud_execute_capability] searched",
].join("\n\n"),
}],
});
assert.deepEqual(calls, [
{ capability: "mcp:emc_labs:send_email", connectionId: "emc_labs", at: "" },
{
capability: "native:emc_robotics:postCapabilitiesGoogleWorkspaceGmailDrafts",
connectionId: "emc_robotics",
at: "",
},
{ capability: "openwork-cloud_execute_capability", connectionId: null, at: "" },
]);
});
test("returns no tool calls for an empty transcript", () => {
assert.deepEqual(parseSessionToolCalls({ sessionId: "ses_1", messageCount: 0, returned: 0, messages: [] }), []);
});