Class ::nsmcp::CodeUpstreamTool
::nsmcp::CodeUpstreamTool
create ... \
[ -adminExample (default "") ] \
[ -adminSummary (default "") ] \
[ -description (default "Compare an installed Tcl/NX/XOTcl procedure or method with literal source declarations in administrator-mapped public GitHub repositories. Returns immutable commit/file links, body and argument comparisons, bounded source excerpts and recent file commits. Optional configured baseline distinguishes differences from a declared installation baseline; differences alone do not prove a bug or an upstream fix. Never evaluates remote code or sends local source to GitHub. Requires enableCodeTools and enableCodeUpstream. Unsupported/dynamic/ambiguous source is unavailable, never equal.") ] \
[ -inputSchema (default "{"type":"object","properties":{"name":{"type":"string"},"ref":{"type":"string","description":"Optional branch, tag or commit within the configured repository; defaults to the mapping ref."}},"required":["name"],"additionalProperties":false}") ] \
[ -name (default "code_upstream_compare") ] \
[ -outputSchema (default "") ] \
[ -permission (default "diagnostics.code.read") ]
Defined in /usr/local/ns/tcl/nsmcp/code-upstream.tclClass Relations
- class: ::nx::Class
![[i]](/resources/acs-subsite/ZoomIn16.gif)
- superclass: ::nsmcp::Tool
![[i]](/resources/acs-subsite/ZoomIn16.gif)
::nx::Class create ::nsmcp::CodeUpstreamTool \
-superclass ::nsmcp::Tool
Methods (to be applied on instances)
describe (scripted, public)
<instance of nsmcp::CodeUpstreamTool
> describe
- Testcases:
-
No testcase defined.
set description [next]; set fields {}
foreach {key type value} [lindex $description 2] {
if {$key eq "annotations"} {
set value {readOnlyHint boolean true destructiveHint boolean false openWorldHint boolean true}
}
lappend fields $key $type $value
}
return [list {} object $fields]execute (scripted, public)
<instance of nsmcp::CodeUpstreamTool
> execute context arguments
- Parameters:
- context (required)
- arguments (required)
- Testcases:
-
No testcase defined.
set opts [:options $arguments]
try {
return [:compare $context $opts]
} on error {message options} {
set reason upstream-comparison-unavailable
if {[regexp {^(upstream-[a-z-]+|github-(?:http-[0-9]{3}|transport-failed|response-too-large)|invalid-(?:upstream-[a-z-]+|github-[a-z-]+)|local-(?:source-file-metadata-unavailable|definition-not-scripted))$} $message]} {set reason $message}
return [list {} object [list available boolean false name string [dict get $opts name] server string [$context server] observedAt number [clock seconds] reason string $reason upstreamFixVerified boolean false comparisonPerformed boolean false]]
}validate (scripted, public)
<instance of nsmcp::CodeUpstreamTool
> validate arguments
- Parameters:
- arguments (required)
- Testcases:
-
No testcase defined.
if {[catch {:options $arguments} message]} {return -code error -errorcode {NSMCP RPC -32602} $message}