@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
41 lines (40 loc) • 1.94 kB
JavaScript
import { trace } from "@opentelemetry/api";
/**
* Pre-resolved tracers cached at module load.
*
* Module-load timing is intentional and safe: `trace.getTracer(name)` from
* `@opentelemetry/api` always returns a proxy that defers to whatever
* `TracerProvider` is registered globally at the moment a span is created.
* If the OTel SDK initializes *after* this module is imported (the common
* case — telemetry setup typically runs once at app boot, after lazy
* imports have already pulled this file), the tracer reference is still
* valid; spans created via it correctly route to the SDK once registered.
*
* Pre-SDK calls produce a noop span — `span.end()` etc. are valid; nothing
* is exported. This is OTel's documented contract:
* https://opentelemetry.io/docs/specs/otel/trace/api/#tracerprovider
*
* If a future refactor moves to a non-proxy TracerProvider API (e.g. a
* custom provider where `getTracer` returns the live instance), revisit
* this file and switch to lazy accessors.
*/
export const tracers = {
sdk: trace.getTracer("neurolink"),
provider: trace.getTracer("neurolink.provider"),
generation: trace.getTracer("neurolink.generation"),
decision: trace.getTracer("neurolink.decision"),
stream: trace.getTracer("neurolink.stream"),
http: trace.getTracer("neurolink.http"),
mcp: trace.getTracer("neurolink.mcp"),
memory: trace.getTracer("neurolink.memory"),
redis: trace.getTracer("neurolink.redis"),
factory: trace.getTracer("neurolink.factory"),
rag: trace.getTracer("neurolink.rag"),
context: trace.getTracer("neurolink.context"),
middleware: trace.getTracer("neurolink.middleware"),
processor: trace.getTracer("neurolink.processor"),
file: trace.getTracer("neurolink.file"),
autoresearch: trace.getTracer("neurolink.autoresearch"),
auth: trace.getTracer("neurolink.auth"),
workflow: trace.getTracer("neurolink.workflow"),
};