Jev directory
CommunityJev Integrations & Adapters
OpenInference Instrumentation for TypeSafe AI SDK
OpenInference instrumentation package for the TypeSafe AI Node.js SDK. Each client.systemOne call emits one OpenTelemetry DECISION span carrying JSON input and output, decision model metadata, and token usage.
- Reading time
- 2 min
- Published by
- Community
- Added
- Oct 2026
Highlights
- Each TypeSafeClient.systemOne call produces one OpenInference DECISION span with JSON input.value and output.value.
- Model and usage are recorded under decision.* attributes rather than llm.*, following decision span conventions.
- Trace config supports hideInputs and hideOutputs for masking or redaction of decision payloads.
- Requires Node.js 20+ and is compatible with @typesafe-ai/sdk >=0.6.0 paired with instrumentation ^0.1.0.
- client.models.list() is not instrumented, and the wrapped return value stays an SDK APIPromise.
Questions about this entry
Short answers drawn from the linked project or page.
Run npm install --save @arizeai/openinference-instrumentation-typesafe @typesafe-ai/sdk. The package requires Node.js 20 or newer and is used alongside an OpenTelemetry Node trace provider such as @opentelemetry/sdk-trace-node.
Each TypeSafeClient.systemOne call emits a single OpenInference DECISION span containing JSON input.value and output.value, the model identity via decision.system, decision.provider, and decision.model_name, plus decision.token_count.input and decision.token_count.output.
The instrumentation follows OpenInference decision span conventions. System One is a decision model that scores or selects among candidate options in Noul, Choice, and Score questions rather than generating free-form text, so decision model usage is not counted as LLM usage.
The TypeSafeInstrumentation constructor accepts a traceConfig option with OpenInference masking settings such as hideInputs and hideOutputs, along with a standard instrumentationConfig and an optional tracerProvider that defaults to the global provider.
The package is compatible with @typesafe-ai/sdk versions >=0.6.0 when using instrumentation version ^0.1.0. It is published by Arize under the Apache-2.0 license.
Register the instrumentation before loading the SDK in CommonJS. For ESM, bundlers, or cases where the SDK is imported first, create a TypeSafeInstrumentation instance and call manuallyInstrument(TypeSafe) on the imported module instead.
Traces follow OpenInference semantic conventions and can be sent to any OpenTelemetry-compatible backend, including Arize Phoenix and Arize AX. A custom tracer provider can be passed to the constructor or set later via setTracerProvider.
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.