open-index/open-npm huggingface dataset:
npm package: @soncodi/ee
Description: Tiny, typed event emitter utility for Node.js and browsers.
Author: Alex Soncodi
Latest version: 3.0.3

# EE (Event Emitter)

[![Build Status](https://travis-ci.org/soncodi/ee.svg?branch=master)](https://travis-ci.org/soncodi/ee)
[![Coverage Status](https://coveralls.io/repos/github/soncodi/ee/badge.svg?branch=coverage)](https://coveralls.io/github/soncodi/ee?branch=coverage)
[![Dependency Status](https://david-dm.org/soncodi/ee/status.svg)](https://david-dm.org/soncodi/ee)
[![npm version](https://badge.fury.io/js/%40soncodi%2Fee.svg)](https://badge.fury.io/js/%40soncodi%2Fee)

**Tiny, typed event emitter utility for Node.js and browsers. No dependencies.**

_Need a single event and type, only? Check out [Signal](https://github.com/soncodi/signal) instead_

### Installation

```sh
npm install @soncodi/ee --save
```

### Usage (TypeScript)

```typescript
import { EE } from '@soncodi/ee';

// map event names to their callback param types
interface Events {
  a: number;
  b: string;
  c: undefined;
}

const ee = new EE<Events>();

const cb = (num: number) => console.log('A', num);

ee.on('a', cb);
ee.on('b', str => console.log('B', str));
ee.once('c', () => console.log('C'));

ee.emit('a', 123);
ee.emit('b', 'hello');
ee.emit('c');

ee.off('a', cb);

ee.event('b', 123); // error
ee.event('d', 123); // error
```

### Methods

#### `on(event, fn)`
Attaches an event handler to be called whenever the event fires.

#### `once(event, fn)`
Attaches a one-time handler which is unbound after it fires the first time.

#### `off(event, fn?)`
Detaches one instance of a given handler from the event emitter. If no handler is provided, detaches all handlers.

#### `emit(event, arg)`
Fires the event synchronously, triggering any attached handlers with the given `arg`.

#### `event(event, arg)`
Fires the event asynchronously, triggering any attached handlers with the given `arg`. Useful when attaching handlers later in the same event loop turn.
npm package: @soncodi/reqqueue
Description: Sequential request queue for Node.js and browsers.
Author: Alex Soncodi
Latest version: 1.0.5

# ReqQueue

[![Build Status](https://travis-ci.org/soncodi/reqqueue.svg?branch=master)](https://travis-ci.org/soncodi/reqqueue)
[![Coverage Status](https://coveralls.io/repos/github/soncodi/reqqueue/badge.svg?branch=coverage)](https://coveralls.io/github/soncodi/reqqueue?branch=coverage)
[![Dependency Status](https://david-dm.org/soncodi/reqqueue/status.svg)](https://david-dm.org/soncodi/reqqueue)
[![npm version](https://badge.fury.io/js/%40soncodi%2Freqqueue.svg)](https://badge.fury.io/js/%40soncodi%2Freqqueue)

**Sequential request queue for Node.js and browsers. No dependencies.**

- Requests are executed in the order in which they were queued
- Execution of requests is sequential (not interleaved)
- Supports requests with both sync and async results

### Installation

```sh
npm install @soncodi/reqqueue --save
```

### Usage (TypeScript)

```typescript
import { ReqQueue } from '@soncodi/reqqueue';

const q = new ReqQueue(false);

const request = async () => {
  await new Promise(resolve => setTimeout(resolve, Math.random() * 1000));

  return Math.random();
};

const [a, b, c] = await Promise.all([
  q.add(request);
  q.add(request);
  q.add(request);
]);
```

### Methods

#### `add<T>(fn: (...args: any[]) => T|Promise<T>): Promise<T>`
Adds a request to the request queue to be executed.
npm package: @soncodi/signal
Description: Tiny, typed signal utility for Node.js and browsers.
Author: Alex Soncodi
Latest version: 2.0.7

# Signal

[![Build Status](https://travis-ci.org/soncodi/signal.svg?branch=master)](https://travis-ci.org/soncodi/signal)
[![Coverage Status](https://coveralls.io/repos/github/soncodi/signal/badge.svg?branch=coverage)](https://coveralls.io/github/soncodi/signal?branch=coverage)
[![Dependency Status](https://david-dm.org/soncodi/signal/status.svg)](https://david-dm.org/soncodi/signal)
[![npm version](https://badge.fury.io/js/%40soncodi%2Fsignal.svg)](https://badge.fury.io/js/%40soncodi%2Fsignal)

**Tiny, typed signal utility for Node.js and browsers. No dependencies.**

_Need multiple dynamic events and types? Check out [EE (Event Emitter)](https://github.com/soncodi/ee) instead_

### Installation

```sh
npm install @soncodi/signal --save
```

### Usage (TypeScript)

```typescript
import { Signal } from '@soncodi/signal';

// specify callback param type
const signal = new Signal<number>();

const cb = (num: number) => console.log('signal', num);

signal.on(cb);

signal.emit(123);

signal.off(cb);
```

### Methods

#### `on(fn)`
Attaches a signal handler to be called whenever the signal fires.

#### `once(fn)`
Attaches a one-time handler which is unbound after it fires the first time.

#### `off(fn?)`
Detaches one instance of a given handler from the signal. If no handler is provided, detaches all handlers.

#### `emit(arg)`
Fires the signal synchronously, triggering any attached handlers with the given `arg`.

#### `event(arg)`
Fires the signal asynchronously, triggering any attached handlers with the given `arg`. Useful when attaching handlers later in the same event loop turn.
npm package: @sonde-sh/sonde
Description: Reference CLI for generating, validating, and scoring Sonde manifest workflows.
Latest version: 0.2.1

# @sonde-sh/sonde

Sonde CLI for evaluating and improving AI-native/AI-friendly CLI behavior through manifest generation, deterministic runtime checks, and scoring.

Primary goals:

1. Generate a manifest contract for target CLIs from help output.
2. Evaluate target CLIs and produce report payloads.
3. Expose Sonde's own manifest contract as a self-compliant reference.

## Canonical docs

Use `apps/web/content/docs` as the source of truth:

- [CLI reference](../../apps/web/content/docs/reference-implementation/cli-reference.mdx)
- [Quickstart](../../apps/web/content/docs/reference-implementation/quickstart.mdx)
- [Serve protocol](../../apps/web/content/docs/integration/cli-serve-protocol.mdx)
- [Troubleshooting](../../apps/web/content/docs/help/troubleshooting.mdx)

## Install

```sh
npm install -g @sonde-sh/sonde
```

## Usage

```sh
sonde --help
sonde --version
```

Commands:

```sh
sonde generate <cli> [--json]
sonde score <cli> [--json]
sonde manifest [--json]
sonde run <cli> [--json]
sonde publish <cli> [--json]
sonde serve [--json]
```

## Output modes

- Default: human-readable logs
- `--json`: machine-readable JSON payloads for automation and CI

Notes:

- `publish` is an optional submit step for evaluation reports.
- `serve` is an optional JSON-line integration protocol.

## Manifest file

Commands that depend on a manifest (`run`, `score`, `serve`) read:

- `sondage.manifest.json` in the current working directory

`sonde manifest` prints Sonde's own Sondage manifest contract and does not require a local manifest file.