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

atar-runtime

v0.3.8

Published

Atar.Bot artifact-rendering runtime (Knowledge Graph / dashboards / map) for the InSites CBSA bots. Loaded by Claude/GPT/Gemini artifacts via cdn.jsdelivr.net.

Readme

atar-runtime

The rendering runtime behind everything InSites draws: the knowledge graph, the single-assessment dashboard, and the collection dashboard.

Current release: 0.3.8. The Claude v11.5, Gemini v11.4 and GPT v11.4 specifications pin it. See CHANGELOG.md for the evidence-status, missing-data, validation and rendering-status changes. In 0.3.8, await the returned ready promise to distinguish completed interactive rendering from successful dispatch.

The division of labour is the point. The specification emits a short shell and a DATA object; this runtime does the drawing. Nothing about layout, colour, right-to-left handling or map behaviour lives in the specification files, which is why the same DATA renders identically whether it came from Claude, Gemini or ChatGPT.

AtarRuntime.mount(container, data, host)
//   container : the DOM node to render into
//   data      : a kg / assessment / collection object — see data-contract.md
//   host      : { complete?: (prompt) => Promise<string> }

host is a capability check, never a platform check. Where the host supplies a complete function the AI-query panel runs live; where it does not, the same panel falls back to copy-to-chat. The runtime never asks which platform it is on.

What is here

| | | |---|---| | src/ | The source. mount.js dispatches on type; renderers/ holds the three renderers; shared/ holds normalisation, right-to-left detection, the colour table, the map, and the AI-query panel; styles/ holds the CSS | | build.mjs | The esbuild driver: concatenates the CSS, inlines it into the bundle so a shell needs one <script>, and refuses to finish if AbortController reaches the output — it cannot cross the artifact sandbox boundary, so timeouts use Promise.race | | shells/claude-shell.jsx | The React shell a Claude artifact emits, with the runtime URL pinned to a version | | data-contract.md | The DATA shape for each of the three types, and the aliases that let the ChatGPT and Claude key sets both work | | package.json | Published to npm as atar-runtime, MIT |

dist/ is a build product and is not tracked. npm run build regenerates it.

Running it

npm install     # esbuild, the only dependency
npm run build   # → dist/atar-runtime.umd.js + dist/atar-runtime.css
npm run qa:gpt-hebrew # build and exercise Hebrew KG/assessment/collection fixtures in jsdom
npm run qa:ayelet     # run the full Ayelet reference fixture and generate local-only HTML artifacts
npm run check   # syntax-check the built UMD bundle

Artifacts do not load this directory. They load the published package from a CDN at a pinned version — never @latest, because the CDN caches aggressively and an artifact that silently changes renderer is worse than one that fails. To release: bump version in package.json, publish, then update the pinned URL in shells/claude-shell.jsx and in the shells inside the specification files.

The source package version can temporarily lead the pinned public version while a release candidate is under QA. Do not update specification pins until the corresponding npm version is actually published and verified on the CDN.

Licence

MIT, as published on npm — not the Apache-2.0 that covers the rest of system/. See ../../LICENSING.md.