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::questionLogJson {event record last} {
set fields [list event string $event timestamp number [clock seconds]]
foreach key {server principal backend} {
lappend fields $key string [dict get $record $key]
}
foreach key {conversation id question peerAddress peerSource status requestedModel model} {
if {[dict exists $last $key]} {
lappend fields $key string [dict get $last $key]
}
}
if {[dict exists $last submittedAt]} {
lappend fields submittedAt number [dict get $last submittedAt]
}
if {$event eq "finished"} {
if {[dict exists $last submittedMs]} {
lappend fields elapsedMs number [expr {[dict exists $last elapsedMs] ? [dict get $last elapsedMs] : max(0,[clock milliseconds]-[dict get $last submittedMs])}]
}
lappend fields toolCalls number [llength [dict get $last tools]] monetaryCost null {} usageAvailable boolean [expr {[dict exists $last usage inputTokens] || [dict exists $last usage outputTokens] || [dict exists $last usage totalTokens]}]
if {[dict exists $last backendDiagnostic]} {
set diagnostic {}
dict for {key value} [dict get $last backendDiagnostic] {
set type string
if {$key eq "activeTools"} {
set names {}
set index 0
foreach name $value {
lappend names $index string $name
incr index
}
set type array
set value $names
} elseif {$key eq "rpcMilliseconds"} {
set timings {}
dict for {method duration} $value {
lappend timings $method number $duration
}
set type object
set value $timings
} elseif {$key in {elapsedMs stderrBytes activeToolCount oldestActiveToolMs}} {
set type number
} elseif {$key eq "turnSubmitted"} {
set type boolean
}
lappend diagnostic $key $type $value
}
lappend fields backendDiagnostic object $diagnostic
}
if {[dict exists $last questionUsage]} {
set usage {}
dict for {key value} [dict get $last questionUsage] {
if {$key in {scope source reason}} {
lappend usage $key string $value
} elseif {$key eq "available"} {
lappend usage $key boolean $value
} else {
lappend usage $key number $value
}
}
lappend usage complete boolean [expr {[dict get $last status] eq "complete"
&& [dict get $last questionUsage available]
&& [dict exists $last questionUsage inputTokens]
&& [dict exists $last questionUsage outputTokens]
&& [dict exists $last questionUsage totalTokens]}]
lappend fields questionUsage object $usage
}
if {[dict exists $last usage]} {
set usage {}
dict for {key value} [dict get $last usage] {
if {$key in {scope source}} {
lappend usage $key string $value
} elseif {$key eq "complete"} {
lappend usage $key boolean $value
} else {
lappend usage $key number $value
}
}
lappend fields usage object $usage
}
}
return [ns_json value -- [list {} object $fields]]
}