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

@edycutjong/croo-core

v0.5.1

Published

Shared CROO SDK wrapper for the Constellation agent suite

Downloads

606

Readme

Built for CROO Hackathon

TypeScript Node.js CI


💡 The Problem & Solution

Developing autonomous agents that securely communicate and transact on-chain requires massive boilerplate. Croo Core provides a unified SDK wrapper for the entire Constellation agent suite. It abstracts away the complexity of A2A (Agent-to-Agent) communication, cryptographic signing, and wallet integration, allowing agent developers to focus on specialized logic rather than infrastructure.

Key Features:

  • 🔌 Unified Interface: A single, consistent API for interacting with the entire Croo ecosystem.
  • 🔐 Secure Execution: Built-in support for wallet connections and cryptographic verification.
  • A2A Networking: Seamless peer-to-peer communication between distinct AI agents.
  • 🔄 Active State Recovery: Automatically scans and resumes in-flight paid orders on boot, ensuring no lost actions.
  • Active Rejections: Instantly rejects unmatched negotiations instead of letting them silently time out.
  • 💼 Dynamic Payout Wallets: Supports redirecting incoming fee revenue directly to custom wallet destinations.
  • 🚀 Fast Failover Race: Requester-side races order completion against rejection/expiration events for immediate error cascading.

🌌 The Constellation Ecosystem

This core SDK powers a suite of 6 specialized reference agents that form a secure, autonomous ecosystem. For a deep-dive into how these agents compose to form orchestrated, quality-gated workflows, read the CROO Constellation Portfolio.

  • Worker: Research provider (top of the pipeline)
  • Summon: Human-in-the-loop sign-off agent
  • Maestro: Callable multi-agent orchestrator
  • Litmus: Output-grading quality gate
  • Gauntlet: Paid adversarial certification agent
  • Goldilocks: Data-backed pricing oracle

Every arrow below is a real CAP order settled in USDC on Base — croo-core provides the hire() (requester) and runProvider() (provider) primitives, plus escrow-safe SLA refunds and a deterministic mock mode shared by all six agents.

graph LR
    User([Any Agent / User]) -->|hires| M[Maestro 🎼]
    M -->|research| W[Worker 🛠️]
    M -->|grade ×2| L[Litmus 🧪]
    M -->|human sign-off| S[Summon 👤]
    G[Gauntlet 🧤] -.->|certifies| M
    G -.->|certifies| W
    G -.->|certifies| L
    G -.->|certifies| S
    GL[Goldilocks 🧈] -->|prices| Store[(Agent Store)]
    W -.->|uses| C{{croo-core ⚙️}}
    M -.->|uses| C
    L -.->|uses| C
    S -.->|uses| C
    G -.->|uses| C
    GL -.->|uses| C
    classDef hot fill:#F59E0B,stroke:#111,color:#111,font-weight:bold;
    class C hot;

🔗 Live Run Log — Constellation Totals (Base Mainnet)

Aggregate of real CAP orders across every agent built on this SDK during the hackathon. Each agent's own README has its per-order table with BaseScan tx links.

Total real CAP orders: 0 · last updated: 2026-06-_

| Agent | Real CAP orders | A2A counterparties | |-------|-----------------|--------------------| | Worker 🛠️ | 0 | Maestro | | Maestro 🎼 | 0 | Worker, Litmus, Summon | | Gauntlet 🧤 | 0 | targets, Maestro, Litmus, Summon | | Summon 👤 | 0 | Maestro, external bots | | Litmus 🧪 | 0 | Maestro, external | | Goldilocks 🧈 | 0 | external | | Total | 0 | |

Delete this note once populated.

🏗️ Architecture & Tech Stack

| Layer | Technology | |---|---| | Runtime | Node.js (TypeScript) | | Ecosystem | Constellation A2A | | Testing | Vitest |

🚀 Getting Started

Prerequisites

  • Node.js ≥ 20
  • npm

Installation

  1. Clone: git clone https://github.com/edycutjong/croo-core.git
  2. Enter the directory: cd croo-core
  3. Install: npm install
  4. Build: npm run build

Usage (consumed by every agent)

import { makeClient, runProvider, hire, isMockMode } from '@edycutjong/croo-core';

// Provider side (Summon, Litmus, Gauntlet, Goldilocks, Maestro):
const client = makeClient(process.env.CROO_SDK_KEY!);
await runProvider(client, { serviceMatch, work, slaGuardMs: 60_000 });

// Requester side (Maestro, Gauntlet):
const { delivery } = await hire(client, { serviceId, requirement, maxPrice: 1.0 });

Set CROO_MOCK=true and every consumer runs fully offline — no wallet, no USDC, no WebSocket — which is how all five agents reproduce their flows in CI and local demos.

🧩 Exported SDK Surface

croo-core is a thin, shared wrapper over @croo-network/sdk so every agent in the Constellation uses one config and one code path.

| Export | Kind | Purpose | |---|---|---| | makeClient(sdkKey, overrides?) | function | Instantiates the shared CROO AgentClient with Base Mainnet defaults (DEFAULT_CONFIG); only the SDK key differs per agent. Returns the underlying SDK client augmented with getSharedStream() / disconnect(). | | runProvider(client, opts) | function | Provider loop — subscribes to order/negotiation events, matches services, performs the work, and delivers. Used by all five agents. | | hire(client, opts) | function | Requester side — places an order against another agent and awaits delivery (A2A). Used by Maestro & Gauntlet. | | isMockMode() | function | Reports whether CROO_MOCK=true — lets consumers branch to offline execution. | | resetMockState() | function | Test helper — clears in-memory mock ledger between runs. | | EventType | enum | Order/negotiation event kinds for routing SDK stream events. | | DeliverableType | enum | Deliverable typing (deliverableType / deliverableText). | | DEFAULT_CONFIG | const | Base Mainnet baseURL / wsURL / rpcURL shared by every agent. |

Underlying @croo-network/sdk client methods used across the Constellation: getNegotiation, getDownloadURL, uploadFile, rejectOrder, plus the croo-core stream wrapper getSharedStream / disconnect.

🧪 Testing & CI

4-stage pipeline: Quality → Security → Build → Deploy Gate

# ── Code Quality ────────────────────────────
make lint          # ESLint
make typecheck     # TypeScript check
make test          # Run tests
make test-coverage # Coverage report
make ci            # Full quality gate

# ── Security ────────────────────────────────
make security-scan # npm audit + license check

| Layer | Tool | Status | |---|---|---| | Code Quality | ESLint + TypeScript | ✅ | | Unit Testing | Vitest (73 tests) | ✅ | | Security (SAST) | CodeQL | ✅ | | Security (SCA) | Dependabot + npm audit | ✅ | | Secret Scanning | TruffleHog | ✅ |

📦 Releasing

Publishing is tag-driven — CI publishes to npm only when a v* tag is pushed (.github/workflows/publish.yml). Versioning is deliberate; there is no auto-increment on every commit.

npm version patch        # or minor / major — bumps package.json + creates tag v0.1.1
git push --follow-tags   # pushes the commit AND the tag → triggers the publish workflow

The workflow re-runs lint + typecheck + the 100% coverage gate + build, verifies the tag matches package.json, then runs npm publish --provenance --access public.

One-time setup: add an npm automation token as the NPM_TOKEN repository secret (Settings → Secrets and variables → Actions). Provenance requires a public repo.

📁 Project Structure

croo-core/
├── docs/              # README assets (hero, screenshots)
├── src/               # Application source code
├── __tests__/         # Vitest test suites
├── .github/           # CI workflows
└── README.md          # You are here

📄 License

MIT © 2026 Edy Cu

🙏 Acknowledgments

Built for the DoraHacks CROO Hackathon 2026.