feat: agent-claude-code reports real $usage from stream-json output
CI / check (pull_request) Successful in 1m40s

- Map parsed numTurns, inputTokens, outputTokens, durationMs to Usage type
- Add @united-workforce/protocol dependency + tsconfig reference
- 747 tests pass

Fixes #77
Refs #68
This commit is contained in:
2026-06-04 22:36:44 +00:00
parent 7681e8b8e2
commit be92cb2dd2
4 changed files with 14 additions and 2 deletions
+1
View File
@@ -23,6 +23,7 @@
},
"dependencies": {
"@ocas/core": "^0.3.0",
"@united-workforce/protocol": "workspace:^",
"@united-workforce/util": "workspace:^",
"@united-workforce/util-agent": "workspace:^"
},
@@ -1,5 +1,6 @@
import { spawn } from "node:child_process";
import type { Store } from "@ocas/core";
import type { Usage } from "@united-workforce/protocol";
import { createLogger } from "@united-workforce/util";
import {
type AgentContext,
@@ -145,7 +146,14 @@ async function processClaudeOutput(
);
}
return { output, detailHash, sessionId, assembledPrompt, usage: null };
const usage: Usage = {
turns: parsed.numTurns,
inputTokens: parsed.usage.inputTokens,
outputTokens: parsed.usage.outputTokens,
duration: Math.round(parsed.durationMs / 1000),
};
return { output, detailHash, sessionId, assembledPrompt, usage };
}
// Truly unparseable output - provide enhanced error message
+1 -1
View File
@@ -2,5 +2,5 @@
"extends": "../../tsconfig.json",
"compilerOptions": { "rootDir": "src", "outDir": "dist" },
"include": ["src"],
"references": [{ "path": "../util-agent" }]
"references": [{ "path": "../protocol" }, { "path": "../util-agent" }]
}
+3
View File
@@ -63,6 +63,9 @@ importers:
'@ocas/core':
specifier: ^0.3.0
version: 0.3.0
'@united-workforce/protocol':
specifier: workspace:^
version: link:../protocol
'@united-workforce/util':
specifier: workspace:^
version: link:../util