npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lokomotif/otel-schema

v0.1.0

Published

OpenTelemetry semantic conventions for Lokomotif Kit modules, flows, and evals.

Readme

@lokomotif/otel-schema

OpenTelemetry semantic conventions for Lokomotif Kit modules, flows, and evals.

This package is the observability spine. It declares the attribute names, expected types, and value spaces that Kit-aware runtimes (and downstream observability tooling) use when emitting telemetry. The Kit itself does not currently emit OTel spans — that is downstream work — but every emitter should follow this spec so dashboards stay coherent as the ecosystem grows.

What is shipped

  • semconv/lokomotif.yaml — the canonical specification, in OpenTelemetry semantic-convention YAML format. Suitable for consumption by weaver or other tooling.
  • src/attributes.tsas const TypeScript constants for every attribute name. Use these in code rather than string literals.
  • Span name constants for canonical operations.

Usage

import {
  ATTR_MODULE_ID,
  ATTR_MODULE_KIND,
  ATTR_FLOW_COMPOSITION_HASH,
  ATTR_EVAL_SCORE,
  SPAN_FLOW_COMPOSE,
} from '@lokomotif/otel-schema';

span.setAttribute(ATTR_MODULE_ID, 'roles/finance/aml-analyst');
span.setAttribute(ATTR_FLOW_COMPOSITION_HASH, composed.compositionHash);

Attribute groups

  • lokomotif.module.* — module identity and metadata (id, kind, version, industry, languages).
  • lokomotif.flow.* — flow identity and composition (name, hash, module count).
  • lokomotif.compose.* — render-time attributes (language, fallback language, byte length).
  • lokomotif.eval.* — eval execution (judge, score, passed, duration).

See semconv/lokomotif.yaml for the authoritative list, including descriptions, types, and brief notes.

Span names

  • lokomotif.module.load
  • lokomotif.flow.compose
  • lokomotif.flow.deploy
  • lokomotif.eval.run

Versioning

The semantic conventions follow the package's semver. Adding a new attribute is a minor bump. Renaming or removing an attribute is a major bump (and requires an RFC — see GOVERNANCE.md).