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

@ethisyscore/protocol

v0.12.0

Published

Canonical protocol types for the EthisysCore plugin ecosystem (manifest, SDUI, bridge, capability, theme).

Readme

@ethisyscore/protocol

Canonical TypeScript protocol types for the EthisysCore plugin ecosystem.

This package is the TypeScript companion to the .NET EthisysCore.Protocol NuGet package. It exposes the same wire-level contracts so that the host app, App Bridge, and any future TypeScript clients consume identical types.

Scope (1.0.0)

This release lands the foundation layer for the capability-first plugin runtime:

  • Plugin manifestPluginManifest, RenderMode, and the optional PluginUi sub-shape (src/manifest.ts).
  • SDUI primitive vocabulary v1KNOWN_PRIMITIVES, recursive SduiNode schema (src/sdui/primitives.ts).
  • JsonLogic operator subset + reactive rule kindsKNOWN_OPERATORS, KNOWN_RULE_KINDS, ReactiveRule (src/sdui/operators.ts).
  • Portal contributions + host slot taxonomyPortalContribution, KNOWN_SLOTS, HostSlot (src/sdui/portal.ts).
  • Theme tokens — design-token shape consumed by the host renderer (src/theme/tokens.ts).
  • Capability claims — permission and capability-token types (src/capability/permissions.ts, src/capability/token.ts).
  • Bridge version constantBRIDGE_VERSION (src/bridge/version.ts).

Future contracts (reference-data, DataStore, MCP, events, logging, notifications, transport, packaging, host-callback) are not yet in this package — they will be added additively as the consuming clients land.

Install

npm install @ethisyscore/protocol

Scripts

npm run build       # bundle ESM + CJS + d.ts via tsup
npm test            # run vitest in CI mode
npm run test:watch  # vitest in watch mode
npm run lint        # tsc --noEmit type check

Layout

  • src/index.ts — public barrel
  • src/manifest.ts — plugin manifest + render mode
  • src/sdui/ — SDUI primitives, operators, portal contributions
  • src/theme/ — design tokens
  • src/capability/ — permissions and capability-token claims
  • src/bridge/ — bridge version constant
  • src/__tests__/ — vitest tests
  • dist/ — build output (gitignored)

Compatibility

Treat this package as a public compatibility boundary. Prefer additive changes; do not repurpose enum values; do not make breaking JSON shape changes without a coordinated release.

The vocabulary surfaces (SDUI primitives, JsonLogic operators, reactive rule kinds, host slot taxonomy) are gated by the RFC process documented in docs/rfcs/README.md. CI auto-rejects PRs that expand the vocabulary without an accepted RFC.