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

@acentric-cloud/kit

v0.2.0

Published

Pure snapshot helpers and scripted simulation for framework agents

Readme

@acentric-cloud/kit

Pure snapshot helpers for framework agents: queues, source-order fanout, deterministic backoff, compaction continuations, recovery, log windows, keys and phases. Install with npm install @acentric-cloud/kit.

Every function is synchronous and deterministic in its arguments. Helpers return new values and do not mutate their inputs. Supply now from the agent's call. Invalid arguments throw KitError; reading below the loaded log window throws KitError('below_window').

queues.push and queues.drain manage an agent-owned snapshot queue. Supply a monotonic position from your snapshot when ordering inputs. Accepting an input is the step's answer; queued work in the snapshot is already accepted.

batch.start, batch.apply, batch.settle, batch.declarations and batch.results manage parallel calls. Store the whole batch in the snapshot: early outcomes live in done, and completed results are returned in source order. apply returns null for an unrelated or already settled key. A new batch needs a new tag because effect keys are single-use.

backoff uses attempt zero for the first retry. retry.next advances the attempt, returns a fresh @timer request with { at } args and its due time, and returns null when the policy is exhausted. retry.fired matches its successful timer outcome. retry.classify considers threw and timeout retryable; provider-specific retry decisions belong to the author.

compaction.begin stores a continuation, returned by finish on success, failure or interruption. Successful summaries append a compaction log entry. Use compaction.window from the agent's window(snapshot) function; store the compaction state directly or under snapshot.compaction. compaction.cut can keep call/result pairs together.

log.view, log.latest and log.since operate on the framework's { start, next, entries } log window. Entries carry numeric seq and at. keys and phases help express deterministic snapshot transitions. A user stop is an agent-defined input: drop pending requests to cancel them, or retain them with abort: true to receive their outcomes.

@acentric-cloud/kit/testing exports simulate, sweep, PureAgent and AgentFactory. A scenario supplies { config?, now, tick?, messages? } or an events script. Events deliver a message, crash, suspend, resume or upgrade to another pure agent. kinds supplies handler defaults for modes and crash budgets. Simulation never calls handlers: script their outcomes. Unknown kinds fail as ordinary effect messages, and due @timer requests produce { ok: null } automatically.

Traces contain steps and their accepted/rejected/failed answers, effect diffs, the full log, finalState, running effects and pending messages. Arguments are frozen copies. Rejected config messages keep the old config; accepted ones apply it to effects and view. Failed steps save nothing and remain pending until resume or upgrade. An upgrade delivers migrated before any queued message. Effects retain their original args, disappear without a result on cancellation, and never reuse finished or cancelled keys. A crash reruns reissue work with a higher attempt or interrupts once work. Voluntary stops do not spend the crash budget.

sweep(factory, scenario, { crashEvery }) rebuilds closure bindings at each sampled delivery boundary without rerunning init. It compares whole traces, reporting identical or differs; differences can be legitimate once interruptions and need an author-specific oracle. The simulator tests pure code and a scripted recovery model, not database leases, resource limits, real handlers or process scheduling.