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

@constal/imessage

v0.1.1

Published

`@constal/imessage` connects one tenant-owned Inkbox identity to an Agent through ordinary Channel, AuthProvider, Credential, and Service Resources. A dedicated iMessage line is required to start conversations proactively; the shared router permits replie

Readme

Inkbox iMessage Channel for Constal

@constal/imessage connects one tenant-owned Inkbox identity to an Agent through ordinary Channel, AuthProvider, Credential, and Service Resources. A dedicated iMessage line is required to start conversations proactively; the shared router permits replies after the human connects first.

Use the packaged inkbox-identity-api-key Credential Provider to import and verify an identity-scoped key and its attached dedicated iMessage line; admin keys and identities without a dedicated line are rejected. Bind its output as the Service's authorization Credential. The Service uses the generic HTTP Driver with IMESSAGE_SERVICE_CONFIG and IMESSAGE_SERVICE_EGRESS. Import the identity's one-time webhook signing key through the packaged inkbox-webhook-signing-key Credential Provider; it removes Inkbox's whsec_ display prefix before storing the HMAC material. Bind its output to the AuthProvider's signing-key slot. Set the same identity UUID in both manifests. Subscribe the identity to imessage.received and imessage.reaction_received at the deployed Channel URL. The AuthProvider declares Inkbox's raw-body signature; Constal verifies it before Channel code runs.

The Channel keys Sessions by the provider's conversation UUID. Its pinned replies use conversation:<uuid>. Explicit Channel messages may use number:+E164 for a new conversation, or conversation:<uuid> for an existing one. Both call the same message.send Service operation. Inkbox does not document an idempotency key for message sends, so the operation is non-idempotent and an ambiguous result surfaces as outcome unknown.

The package manifests are templates: set tenant namespace and identity ID, create the scoped Credentials and Service, then install the Channel through the ordinary deployment API. Agent deployments opt in with the channels.constal.ai/imessage=enabled label.