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

@signalsafe/tree-spec-assessment

v0.4.2

Published

Deterministic TreeSpec assessment and UI-kit agnostic React learner presentation

Downloads

48

Readme

@signalsafe/tree-spec-assessment

Current source, ownership and release preparation: current-state summary.

npm source 0.4.2 supports Node >=22.12 and @signalsafe/tree-spec ^0.4.4. The 0.4.1 baseline is published; the new source is an approval candidate. Core exports provide pure score addition with explicit host dimensions and no React or infrastructure. React learner/results presentation is available through optional explicit subpaths.

import {
    assessmentDefinition,
    assessBinary64Scores,
    assessIntegerScores,
    resultToWire,
} from '@signalsafe/tree-spec-assessment';

const definition = assessmentDefinition(['total', 'awareness']);
const exact = assessIntegerScores(definition, { total: 9007199254740993n }, { total: 2n });
console.log(resultToWire(exact)); // exact decimal string 9007199254740995
const preview = assessBinary64Scores(definition, { total: 0.1 }, { total: 0.2 });
console.log(preview.score['total']); // 0.30000000000000004

Missing dimensions mean zero; present null, booleans, strings, unknown dimensions and nonfinite values are rejected. Integer inputs are bigint; binary64 inputs are number. No weights, thresholds, rounding, clamping or outcome inference is introduced. Use assessTransitionDelta with an already parsed TreeSpec transition; whole-delta null or omission is a legacy no-op, while null dimension values are rejected. Backend results stay authoritative. No new browser scoring feature is needed.

AssessmentError carries stable code and path. The npm candidate shares assessment schema v1 and TreeSpec wire v1 with Python. Install the candidate tarball for a pilot; registry adoption requires an independently reviewed, authorized release.

Ordered score replay is available in Python tree_spec_assessment.replay and TS @signalsafe/tree-spec-assessment/replay. It consumes host-selected deltas lazily. Authored-outcome summaries use OutcomeObservation, immutable OutcomeSummary and summarize_outcomes (TS summarizeOutcomes from ./outcomes). Weights are exact signed integers; empty/null outcomes are absent from buckets but included in overall count. Inputs receive stable diagnostics; hosts retain completion and success policy.

React score content is exported from @signalsafe/tree-spec-assessment/react/results; learner presentation is exported from @signalsafe/tree-spec-assessment/react/learner. Hosts supply labels, formatted values and existing theme classes. The core has no React dependency. See the repository's docs/consolidation.md for real consumers, verified artifacts and remaining local/release limitations.