Ok so this is still pretty rough, and notably there's no reporting for streaming. But for non-streaming requests I've verified that this does in fact report requests locally.
* Rename prompt and completion tokens to input and output tokens
* Add getUsage function
* Record model and cost when reporting log
* Remove unused imports
* Move UsageGraph to its own component
* Standardize model response fields
* Fix types