This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.
The procedure is defined as:
proc ::nsmcp::usageRecord {record turn timestamp} {
set tokens {}; set usable false; set complete false
if {[dict exists $turn questionUsage]} {
set usage [dict get $turn questionUsage]
set usable [expr {[dict exists $usage scope] && [dict get $usage scope] eq "turn"
&& [dict exists $usage available] && [dict get $usage available]}]
set complete $usable
} elseif {[dict exists $turn usage scope] && [dict get $turn usage scope] eq "turn"} {
set usage [dict get $turn usage]
set usable true
set complete [expr {[dict exists $usage complete] && [dict get $usage complete]}]
}
if {$usable} {
set tokens [::nsmcp::questionUsageCounters $usage {
inputTokens inputTokens outputTokens outputTokens totalTokens totalTokens
cachedInputTokens cachedInputTokens reasoningOutputTokens reasoningOutputTokens
}]
}
set state unavailable
if {[dict size $tokens] > 0} {
set state partial
if {$complete && [dict get $turn status] eq "complete"
&& [dict exists $tokens inputTokens] && [dict exists $tokens outputTokens]
&& [dict exists $tokens totalTokens]} {set state complete}
}
set model [expr {[dict exists $turn model] && [dict get $turn model] ne "" ? [dict get $turn model] : "unknown"}]
set result [dict create version 1 timestamp $timestamp state $state model $model tokens $tokens]
foreach key {server backend principal} {dict set result $key [dict get $record $key]}
foreach key {conversation id} {dict set result $key [dict get $turn $key]}
return $result
}