feat: agent-mock emits fixed $usage stats
CI / check (pull_request) Successful in 1m41s

- Mock agent returns {turns:1, inputTokens:0, outputTokens:0, duration:0}
- E2E test 1 (linear workflow) asserts usage in CAS step nodes
- 747 tests pass

Fixes #75
Refs #68
This commit is contained in:
2026-06-04 22:19:29 +00:00
parent 172c232e61
commit 248ac710fd
2 changed files with 5 additions and 1 deletions
+1 -1
View File
@@ -103,7 +103,7 @@ export function createMockAgent(mockDataPath: string): () => Promise<void> {
detailHash, detailHash,
sessionId, sessionId,
assembledPrompt: "", assembledPrompt: "",
usage: null, usage: { turns: 1, inputTokens: 0, outputTokens: 0, duration: 0 },
}; };
lastResult = result; lastResult = result;
return result; return result;
@@ -229,6 +229,10 @@ describe("E2E mock-agent: full uwf pipeline", () => {
expect(getStatus(store, s1.output)).toBe("ready"); expect(getStatus(store, s1.output)).toBe("ready");
expect(getStatus(store, s2.output)).toBe("done"); expect(getStatus(store, s2.output)).toBe("done");
// Mock agent reports usage stats in step nodes.
expect(s1.usage).toEqual({ turns: 1, inputTokens: 0, outputTokens: 0, duration: 0 });
expect(s2.usage).toEqual({ turns: 1, inputTokens: 0, outputTokens: 0, duration: 0 });
// The start node points at the registered workflow. // The start node points at the registered workflow.
const startNode = store.cas.get(startHash as CasRef); const startNode = store.cas.get(startHash as CasRef);
expect((startNode!.payload as StartNodePayload).workflow).toBe(workflowHash); expect((startNode!.payload as StartNodePayload).workflow).toBe(workflowHash);