nvidia/nemo-relay-instrument-typed-wrappers
Use this skill when adding NeMo Relay typed wrappers, domain types, or provider codecs while preserving JSON middleware semantics and caller-visible behavior.
npx skills add https://github.com/NVIDIA/skills --skill nemo-relay-instrument-typed-wrappers
Use this skill when an application wants stronger domain types than raw JSON for
tool or LLM integration.
Keep typed boundaries explicit so middleware still sees predictable JSON.
application-facing values to JSON before NeMo Relay emits events or runs
middleware, then converts JSON back into the framework callback or caller type.
JsonPassthrough, DataclassCodec, PydanticCodec, andBestEffortAnyCodec. Node.js exposes JsonPassthrough plus custom
Codec<T> implementations.
BestEffortAnyCodec only at boundaries where strict schemas are notavailable. Prefer dataclass, Pydantic, or explicit Node.js codecs when the
framework owns a stable schema.
provider-specific LLM requests and responses so middleware and subscribers can
inspect messages, tools, model names, generation parameters, and response
annotations.
OpenAIChatCodec, OpenAIResponsesCodec,and AnthropicMessagesCodec in Python, Node.js, and Rust. Choose the
codec that matches the actual provider payload shape.
id, model,message, tool_calls, finish_reason, usage, provider-specific data, and
extra unmodeled fields. They do not rewrite the caller-visible response.
raw LLMRequest and optional annotated request; encode merges annotated
edits back before execution intercepts and the provider callback run.
annotation. They compare edits with a decoded baseline and patch only changed
fields, preserving native representation details and unknown fields.
instructions, portable messages and components, and the taggedapi_specific request surface for normalized edits. Provider-only union
members use explicit { provider, kind, value } native components. Reserve
top-level extra for unknown future fields.
nemo-relay gateway always supplies matching request codecs on AnthropicMessages, OpenAI Chat Completions, and OpenAI Responses generation routes.
On those routes, treat raw request.content as read-only and return body
edits through the annotated request. Header edits still use the raw request.
uses codec traits directly
JsonPassthrough for JSON-native valuesDataclassCodec or PydanticCodec in Python when the models already existBestEffortAnyCodec only when broad flexibility is worth the looser contractconversion
toJson/fromJson or decode/encodeencode preserves original provider fields unless anintercept intentionally changes them
request.contentnemo-relay-instrument-callsnemo-relay-plugin-observabilitynemo-relay-debug-runtime-integrationTake nvidia/nemo-relay-instrument-typed-wrappers from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.