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

@robota-sdk/agent-capability-pack

v3.0.0-beta.96

Published

Additive capability-bundle contract (ICapabilityPack) and the pure mergeCapabilityPacks merger for the Robota SDK

Readme

@robota-sdk/agent-capability-pack

The additive capability-bundle contract for the Robota SDK: the ICapabilityPack type and the pure mergeCapabilityPacks merger.

An ICapabilityPack is the additive composition unit of an agent runtime product: a plain data record of named capability buckets — command modules, tools, and subagents — that a consumer brings on top of a product's base command modules. It is the additive analog of @robota-sdk/agent-preset: where a preset dials behavior (persona, permission posture, subtractive tool/command selection), a pack contributes capability (new tools, command modules, subagents).

Installation

npm install @robota-sdk/agent-capability-pack

Usage

import { mergeCapabilityPacks } from '@robota-sdk/agent-capability-pack';
import type { ICapabilityPack } from '@robota-sdk/agent-capability-pack';
import type { ICommandModule } from '@robota-sdk/agent-framework';

declare const baseCommandModules: readonly ICommandModule[];

const jiraPack: ICapabilityPack = {
  id: 'acme-jira',
  tools: [], // their Jira FunctionTool[]
  commandModules: [], // their /jira command module
};

const { merged, acceptedPacks, rejected, rejectedPacks } = mergeCapabilityPacks(
  baseCommandModules,
  [jiraPack],
);
void merged;
void acceptedPacks;
void rejected;
void rejectedPacks;

A pack has an id, optional title and description for discovery, and any of the commandModules, tools, and subagents buckets.

mergeCapabilityPacks is a pure, deterministic, IO-free fold. It produces the base ⊕ pack superset plus accepted pack metadata and distinct capability/pack rejection channels. A later duplicate pack id is rejected atomically in rejectedPacks; a capability whose id collides with an already-claimed id is reported with its contributor packId in rejected — never silently overridden. See docs/SPEC.md for the full contract.

A pack carries executable code objects (command handlers, tool execute functions), not serialized JSON. Packs are opt-in (present only when a product profile lists them), the merge is pure, and any contributed command/tool runs only through the permission-gated runtime at call time.

Most consumers do not call mergeCapabilityPacks directly: they list packs in an @robota-sdk/agent-product profile, and assembleProduct merges them. @robota-sdk/pack-coding is a complete, working pack.

License

AGPL-3.0-only OR LicenseRef-Commercial