mirror of
https://github.com/moltbot/moltbot.git
synced 2026-03-30 01:06:11 +00:00
refactor(test): share status transcript log writer
This commit is contained in:
@@ -345,40 +345,59 @@ describe("buildStatusMessage", () => {
|
||||
expect(text).not.toContain("💵 Cost:");
|
||||
});
|
||||
|
||||
function writeTranscriptUsageLog(params: {
|
||||
dir: string;
|
||||
agentId: string;
|
||||
sessionId: string;
|
||||
usage: {
|
||||
input: number;
|
||||
output: number;
|
||||
cacheRead: number;
|
||||
cacheWrite: number;
|
||||
totalTokens: number;
|
||||
};
|
||||
}) {
|
||||
const logPath = path.join(
|
||||
params.dir,
|
||||
".openclaw",
|
||||
"agents",
|
||||
params.agentId,
|
||||
"sessions",
|
||||
`${params.sessionId}.jsonl`,
|
||||
);
|
||||
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
||||
fs.writeFileSync(
|
||||
logPath,
|
||||
[
|
||||
JSON.stringify({
|
||||
type: "message",
|
||||
message: {
|
||||
role: "assistant",
|
||||
model: "claude-opus-4-5",
|
||||
usage: params.usage,
|
||||
},
|
||||
}),
|
||||
].join("\n"),
|
||||
"utf-8",
|
||||
);
|
||||
}
|
||||
|
||||
it("prefers cached prompt tokens from the session log", async () => {
|
||||
await withTempHome(
|
||||
async (dir) => {
|
||||
const sessionId = "sess-1";
|
||||
const logPath = path.join(
|
||||
writeTranscriptUsageLog({
|
||||
dir,
|
||||
".openclaw",
|
||||
"agents",
|
||||
"main",
|
||||
"sessions",
|
||||
`${sessionId}.jsonl`,
|
||||
);
|
||||
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
||||
|
||||
fs.writeFileSync(
|
||||
logPath,
|
||||
[
|
||||
JSON.stringify({
|
||||
type: "message",
|
||||
message: {
|
||||
role: "assistant",
|
||||
model: "claude-opus-4-5",
|
||||
usage: {
|
||||
input: 1,
|
||||
output: 2,
|
||||
cacheRead: 1000,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1003,
|
||||
},
|
||||
},
|
||||
}),
|
||||
].join("\n"),
|
||||
"utf-8",
|
||||
);
|
||||
agentId: "main",
|
||||
sessionId,
|
||||
usage: {
|
||||
input: 1,
|
||||
output: 2,
|
||||
cacheRead: 1000,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1003,
|
||||
},
|
||||
});
|
||||
|
||||
const text = buildStatusMessage({
|
||||
agent: {
|
||||
@@ -408,36 +427,18 @@ describe("buildStatusMessage", () => {
|
||||
await withTempHome(
|
||||
async (dir) => {
|
||||
const sessionId = "sess-worker1";
|
||||
const logPath = path.join(
|
||||
writeTranscriptUsageLog({
|
||||
dir,
|
||||
".openclaw",
|
||||
"agents",
|
||||
"worker1",
|
||||
"sessions",
|
||||
`${sessionId}.jsonl`,
|
||||
);
|
||||
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
||||
|
||||
fs.writeFileSync(
|
||||
logPath,
|
||||
[
|
||||
JSON.stringify({
|
||||
type: "message",
|
||||
message: {
|
||||
role: "assistant",
|
||||
model: "claude-opus-4-5",
|
||||
usage: {
|
||||
input: 1,
|
||||
output: 2,
|
||||
cacheRead: 1000,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1003,
|
||||
},
|
||||
},
|
||||
}),
|
||||
].join("\n"),
|
||||
"utf-8",
|
||||
);
|
||||
agentId: "worker1",
|
||||
sessionId,
|
||||
usage: {
|
||||
input: 1,
|
||||
output: 2,
|
||||
cacheRead: 1000,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1003,
|
||||
},
|
||||
});
|
||||
|
||||
const text = buildStatusMessage({
|
||||
agent: {
|
||||
@@ -467,36 +468,18 @@ describe("buildStatusMessage", () => {
|
||||
await withTempHome(
|
||||
async (dir) => {
|
||||
const sessionId = "sess-worker2";
|
||||
const logPath = path.join(
|
||||
writeTranscriptUsageLog({
|
||||
dir,
|
||||
".openclaw",
|
||||
"agents",
|
||||
"worker2",
|
||||
"sessions",
|
||||
`${sessionId}.jsonl`,
|
||||
);
|
||||
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
||||
|
||||
fs.writeFileSync(
|
||||
logPath,
|
||||
[
|
||||
JSON.stringify({
|
||||
type: "message",
|
||||
message: {
|
||||
role: "assistant",
|
||||
model: "claude-opus-4-5",
|
||||
usage: {
|
||||
input: 2,
|
||||
output: 3,
|
||||
cacheRead: 1200,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1205,
|
||||
},
|
||||
},
|
||||
}),
|
||||
].join("\n"),
|
||||
"utf-8",
|
||||
);
|
||||
agentId: "worker2",
|
||||
sessionId,
|
||||
usage: {
|
||||
input: 2,
|
||||
output: 3,
|
||||
cacheRead: 1200,
|
||||
cacheWrite: 0,
|
||||
totalTokens: 1205,
|
||||
},
|
||||
});
|
||||
|
||||
const text = buildStatusMessage({
|
||||
agent: {
|
||||
|
||||
Reference in New Issue
Block a user