nsmcp::CodexQuestionRun method observeItem (protected)

 <instance of nsmcp::CodexQuestionRun[i]> observeItem phase item

Defined in /usr/local/ns/tcl/nsmcp/question-backend.tcl

Retain bounded protocol metadata; item bodies and arguments stay out.

Parameters:
phase (required)
item (required)

Testcases:
No testcase defined.
Source code:
set type unknown
if {[dict exists $item type]
    && [regexp {^[A-Za-z][A-Za-z0-9_-]{0,63}$} [dict get $item type]]} {
    set type [dict get $item type]
}
set :lastItemType $type
if {$phase eq "completed"} {
    set :lastCompletedItemType $type
}
if {$type eq "mcpToolCall" && [dict exists $item id] && [dict exists $item tool]} {
    set id [dict get $item id]
    set name [dict get $item tool]
    # Names must come from the pinned authorized inventory. Never retain
    # arbitrary model-supplied strings as tool metadata.
    if {$id ne {} && [string length $id]<=512 && [dict exists ${:pins} $name]} {
        if {$phase eq "started" && ![dict exists ${:activeTools} $id]
            && [dict size ${:activeTools}]<32} {
            dict set :activeTools $id [dict create name $name at [clock milliseconds]]
        } elseif {$phase eq "completed" && [dict exists ${:activeTools} $id]
                  && [dict get ${:activeTools} $id name] eq $name} {
            dict unset :activeTools $id
        }
    }
}
:emit [dict create type backendDiagnostic diagnostic [:diagnostic]]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: