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

@fnndsc/calypso

v0.3.6

Published

The CALYPSO wire contract: typed protocol schemas and boundary validation for the ChRIS session daemon

Readme

@fnndsc/calypso

CALYPSO Accepts Language, Yielding Permitted Shell Operations — the intent layer and session daemon of the mise stack.

The name is a harbor reference. In the Odyssey, Calypso keeps the island where the voyager finds haven; the name is the Greek word for "to conceal," which the project keeps but turns around. HARBOR is that haven for the ChRIS operator, and CALYPSO is the keeper at its edge — the layer between you and the open water: the Collection+JSON sprawl, the complexity of a federated backend. What CALYPSO conceals is the friction, never the outcome. A harbor shelters without holding: the work is left as materialized, verifiable state, yours to leave and return to — CALYPSO the harbor you pass through, never the ground you stand on.

What this package is

CALYPSO hosts the chell engine behind a session daemon and serves it to surfaces over a WebSocket: the CLI today, a web console next, each rendering the same session. Because the engine is separable from its display (see stage one), it can run where the data must stay — inside a spoke's trust boundary — while an operator drives it over a thin client.

This first slice is the wire contract: the typed protocol schemas and boundary validation every message crosses. The daemon, the session bus, and the remote client build on it.

The wire contract

The contract is defined as zod schemas — the single source of truth, from which the message types are inferred and against which every message is validated at the boundary.

  • Messages (two direction-keyed unions):
    • surface → daemon: attach {protocolVersion, token, session?}, execute {id, line}, complete {id, prefix}
    • daemon → surface: attached, result {id, envelopes}, complete {id, prefix, candidates}, output {id, channel, chunk}, session {surface, envelope}, error
  • Envelope — the commandEnvelopeSchema validates cumin's CommandEnvelope on the wire; a compile-time guard keeps the schema in step with cumin's type so the published contract can never silently drift from what the code produces.
  • Boundary validation — structural violations are rejected; unknown additive fields are tolerated, so a daemon accepts extensions from a newer minor without understanding them. Parsing never throws.
  • Versioning — the contract version (CONTRACT_VERSION) is carried in the attach handshake and refused on mismatch; within a major, changes are additive only.
import { clientMessage_fromJson, attach_parse, type ClientMessage } from '@fnndsc/calypso';

const parsed = clientMessage_fromJson(rawSocketText);
if (!parsed.ok) socket.send({ type: 'error', reason: parsed.error });

Status

Design-in-progress, not shipped. The full design — daemon, session bus, remote client, and the eventual natural-language intent layer that only ever proposes commands the deterministic shell validates and runs — is in docs/calypso.adoc (the staged plan) and docs/surfaces.adoc.