open-index/open-npm huggingface dataset:
npm package: @signalwire/realtime-api
Description: SignalWire RealTime SDK for Node.js
Author: SignalWire Team
Latest version: 4.2.1

# @signalwire/realtime-api

# RELAY RealTime SDK

[![The build status of the package @signalwire/realtime-api.](https://ci.signalwire.com/api/badges/signalwire/signalwire-js/status.svg)](https://ci.signalwire.com/signalwire/signalwire-js) ![The NPM shield for the package @signalwire/realtime-api.](https://img.shields.io/npm/v/@signalwire/realtime-api.svg?color=brightgreen)

The RealTime SDK enables Node.js developers to connect and use SignalWire's RealTime APIs within their own Node.js code. Our RealTime SDK allows developers to build or add robust and innovative communication services to their applications.

## Getting Started

Read the implementation documentation, guides and API Reference at the official [RELAY RealTime SDK Documentation](https://developer.signalwire.com/sdks/reference/realtime-sdk) site.

---

## Contributing

SignalWire RealTime SDK is open source and maintained by the SignalWire team, but we are very grateful for [everyone](https://github.com/signalwire/signalwire-js/contributors) who has contributed and assisted so far.

If you'd like to contribute, feel free to visit our [Slack channel](https://signalwire.community/) and read our developer section to get the code running in your local environment.

## Developers

The RealTime SDK is a package inside the [signalwire-js](https://github.com/signalwire/signalwire-js) _monorepo_. To setup the dev environment follow these steps:

1. [Download the installer](https://nodejs.org/) for the LTS version of RealTime. This is the best way to also [install npm](https://blog.npmjs.org/post/85484771375/how-to-install-npm#_=_).
2. Fork the [signalwire-js](https://github.com/signalwire/signalwire-js) repository and clone it.
3. Create a new branch from `main` for your change.
4. Run `npm install` to install global dependencies.
5. Navigate into the `realtime-api` directory with `cd packages/realtime-api`.
6. Make changes!

## Versioning

SignalWire RealTime SDK follows Semantic Versioning 2.0 as defined at [http://semver.org](http://semver.org).

## License

`@signalwire/realtime-api` is copyright © 2018-2023 [SignalWire](http://signalwire.com). It is free software, and may be redistributed under the terms specified in the [MIT-LICENSE](https://github.com/signalwire/signalwire-js/blob/master/LICENSE) file.
npm package: @signalwire/swaig
Description: SignalWire SWAIG SDK
Author: SignalWire Team
Latest version: 0.0.1

# @signalwire/swaig

# SWAIG SDK

[![Build Status](https://ci.signalwire.com/api/badges/signalwire/signalwire-js/status.svg)](https://ci.signalwire.com/signalwire/signalwire-js) ![NPM](https://img.shields.io/npm/v/@signalwire/swaig.svg?color=brightgreen)

The SWAIG SDK enables Node.js developers to ..

## Getting Started

Read the implementation documentation, guides and API Reference at the official [RELAY SWAIG SDK Documentation](#1) site.

---

## Contributing

SignalWire SWAIG SDK is open source and maintained by the SignalWire team, but we are very grateful for [everyone](https://github.com/signalwire/signalwire-js/contributors) who has contributed and assisted so far.

If you'd like to contribute, feel free to visit our [Slack channel](https://signalwire.community/) and read our developer section to get the code running in your local environment.

## Developers

The SWAIG SDK is a package inside the [signalwire-js](https://github.com/signalwire/signalwire-js) _monorepo_. To setup the dev environment follow these steps:

1. [Download the installer](https://nodejs.org/) for the LTS version of Node.js. This is the best way to also [install npm](https://blog.npmjs.org/post/85484771375/how-to-install-npm#_=_).
2. Fork the [signalwire-js](https://github.com/signalwire/signalwire-js) repository and clone it.
3. Create a new branch from `main` for your change.
4. Run `npm install` to install global dependencies.
5. Navigate into the `swaig` directory with `cd packages/swaig`.
6. Make changes!

## Versioning

SignalWire SWAIG SDK follows Semantic Versioning 2.0 as defined at <http://semver.org>.

## License

`@signalwire/swaig` is copyright © 2018-2023 [SignalWire](http://signalwire.com). It is free software, and may be redistributed under the terms specified in the [MIT-LICENSE](https://github.com/signalwire/signalwire-js/blob/master/LICENSE) file.
npm package: @signalwire/typedoc-readme-api-theme
Description: An extension of typedoc-plugin-markdown to create a compatible file structure for Readme API pages.
Author: SignalWire
Latest version: 0.7.1

# typedoc-plugin-markdown

A plugin for [TypeDoc](https://github.com/TypeStrong/typedoc) that renders TypeScript API documentation as Markdown.

[![npm](https://img.shields.io/npm/v/typedoc-plugin-markdown.svg)](https://www.npmjs.com/package/typedoc-plugin-markdown)
[![Build Status](https://github.com/tgreyuk/typedoc-plugin-markdown/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/tgreyuk/typedoc-plugin-markdown/actions/workflows/ci.yml)


## What it does?

The plugin replaces the default HTML theme with a built-in Markdown theme and exposes some additional options.

Useful if documentation is required to be included in project README files, Wikis and static site generators.

## Installation

```bash
npm install --save-dev typedoc typedoc-plugin-markdown
```

## Usage

Usage is the same as documented at [TypeDoc](https://typedoc.org/guides/installation/#command-line-interface).

```bash
typedoc --out docs src/index.ts
```

**Note:**

- If using with the default HTML theme or other themes, use `--plugin none` to switch the plugin off.
- The plugin should be executed in the same location as TypeDoc. Use `npx` if running command directly in shell.

## Options

The following options can be used in addition to relevant [TypeDoc options](https://typedoc.org/guides/options/).

- `--entryDocument<string>`<br>
  The file name of the entry document. Defaults to `README.md`.
- `--hideBreadcrumbs<boolean>`<br>
  Do not render breadcrumbs in template header. Defaults to `false`.
- `--hideInPageTOC<boolean>`<br>
  Do not render in-page table of contents items.  Defaults to `false`.
- `--publicPath<string>`<br>
  Specify the base path for all urls. If undefined urls will be relative. Defaults to `.`.
- `--namedAnchors<boolean>`<br>
  Use HTML named anchors tags for implementations that do not assign header ids. Defaults to `false`.




## License

[MIT](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/master/LICENSE)
npm package: @signalwire/web-api
Description: SignalWire Web-API SDK for Node.js
Author: SignalWire Team
Latest version: 3.1.7

# @signalwire/web-api

# SignalWire Web-API SDK

[![Build Status](https://ci.signalwire.com/api/badges/signalwire/signalwire-js/status.svg)](https://ci.signalwire.com/signalwire/signalwire-js) ![NPM](https://img.shields.io/npm/v/@signalwire/web-api.svg?color=brightgreen)

The `@signalwire/web-api` SDK enables Node.js developers to connect and use SignalWire's Web APIs within their own Node.js code. Our WebAPI SDK allows developers to build or add robust and innovative communication services to their applications.

## Getting Started

Read the implementation documentation, guides and API Reference at the official [WebAPI SDK Documentation](https://developer.signalwire.com/sdks/reference/web-api-sdk) site.

---

## Contributing

SignalWire WebAPI SDK is open source and maintained by the SignalWire team, but we are very grateful for [everyone](https://github.com/signalwire/signalwire-js/contributors) who has contributed and assisted so far.

If you'd like to contribute, feel free to visit our [Slack channel](https://signalwire.community/) and read our developer section to get the code running in your local environment.

## Developers

The WebAPI SDK is a package inside the [signalwire-js](https://github.com/signalwire/signalwire-js) _monorepo_. To setup the dev environment follow these steps:

1. [Download the installer](https://nodejs.org/) for the LTS version of RealTime. This is the best way to also [install npm](https://blog.npmjs.org/post/85484771375/how-to-install-npm#_=_).
2. Fork the [signalwire-js](https://github.com/signalwire/signalwire-js) repository and clone it.
3. Create a new branch from `main` for your change.
4. Run `npm install` to install global dependencies.
5. Navigate into the `web-api` directory with `cd packages/web-api`.
6. Make changes!

## Versioning

SignalWire WebAPI SDK follows Semantic Versioning 2.0 as defined at <http://semver.org>.

## License

`@signalwire/web-api` is copyright © 2018-2023 [SignalWire](http://signalwire.com). It is free software, and may be redistributed under the terms specified in the [MIT-LICENSE](https://github.com/signalwire/signalwire-js/blob/master/LICENSE) file.
npm package: @signalwire/webrtc
Description: SignalWire WebRTC library
Author: SignalWire Team
Latest version: 3.15.0

# @signalwire/webrtc

The SignalWire WebRTC package contains the various WebRTC object used by other SignalWire packages.

## Related

- [Get Started](https://developer.signalwire.com/)
- [`@signalwire/js`](https://www.npmjs.com/package/@signalwire/js)

## License

`@signalwire/webrtc` is copyright © 2018-2023 [SignalWire](http://signalwire.com). It is free software, and may be redistributed under the terms specified in the [MIT-LICENSE](https://github.com/signalwire/signalwire-js/blob/master/LICENSE) file.
npm package: @signaro/smaller-crypto-object
Description: Encode and decode objects with AES-256 using key maps
Author: @nicolaszimmer
Latest version: 1.0.2

# smaller-crypto-object

Securely en- and decrypt object data with AES-256[1]. Uses key maps for restoring objects after decrypting to keep the encrypted string size small.

### References

[1] AES-256 in CBR mode is a recommended method of encryption, if the initialisation vectors are unpredictable (e.g. random) [BSI TR-02102-1](https://www.bsi.bund.de/EN/Service-Navi/Publications/TechnicalGuidelines/tr02102/tr02102_node.html)
npm package: @signature-it/directive-filter-menu
Description: ## Installation
Author: Stas Sorokin
Latest version: 0.1.1

# directive-filter-menu

## Installation

To install this library, run:

```bash
$ npm install directive-filter-menu --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install directive-filter-menu
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'directive-filter-menu';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    LibraryModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
  {{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Stas Sorokin](mailto:stas4000@gmail.com)
npm package: @signature-it/modular-sidebar
Description: ## Installation
Author: Stas Sorokin
Latest version: 0.1.54

# modular-sidebar

## Installation

To install this library, run:

```bash
$ npm install modular-sidebar --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install modular-sidebar
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'modular-sidebar';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    LibraryModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
  {{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Stas Sorokin](mailto:stas4000@gmail.com)
npm package: @signature-it/npm-package-shani-test
Description: ## Installation
Author: shani-sig
Latest version: 0.1.0

# npm-package

## Installation

To install this library, run:

```bash
$ npm install npm-package --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install npm-package
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'npm-package';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    LibraryModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
  {{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [shani-sig](mailto:shani@signature-it.com)
npm package: @signature-it/service-shared-data
Description: ## Installation
Author: Stas Sorokin
Latest version: 0.1.1

# service-shared-data

## Installation

To install this library, run:

```bash
$ npm install service-shared-data --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install service-shared-data
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'service-shared-data';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    LibraryModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
  {{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Stas Sorokin](mailto:stas4000@gmail.com)
npm package: @signature-it/shared-module
Description: ## Installation
Author: Stas Sorokin
Latest version: 0.1.0

# shared-module

## Installation

To install this library, run:

```bash
$ npm install shared-module --save
```

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install shared-module
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { SampleModule } from 'shared-module';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    LibraryModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<h1>
  {{title}}
</h1>
<sampleComponent></sampleComponent>
```

## Development

To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:

```bash
$ npm run build
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Stas Sorokin](mailto:stas4000@gmail.com)
npm package: @signature.digital/portablecontract
Description: a package that defines standard tools for working with contracts.
Author: Task Venture Capital GmbH
Latest version: 1.0.4
Deprecated: This package has been deprecated and replaced by @signature.digital/tools

# @signature.digital/portablecontract
a package that defines standard tools for working with contracts.

## Availabililty and Links
* [npmjs.org (npm package)](https://www.npmjs.com/package/@signature.digital/portablecontract)
* [gitlab.com (source)](https://gitlab.com/signature.digital/portablecontract)
* [github.com (source mirror)](https://github.com/signature.digital/portablecontract)
* [docs (typedoc)](https://signature.digital.gitlab.io/portablecontract/)

## Status for master

Status Category | Status Badge
-- | --
GitLab Pipelines | [![pipeline status](https://gitlab.com/signature.digital/portablecontract/badges/master/pipeline.svg)](https://lossless.cloud)
GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/signature.digital/portablecontract/badges/master/coverage.svg)](https://lossless.cloud)
npm | [![npm downloads per month](https://badgen.net/npm/dy/@signature.digital/portablecontract)](https://lossless.cloud)
Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/signature.digital/portablecontract)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@signature.digital/portablecontract)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@signature.digital/portablecontract)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@signature.digital/portablecontract)](https://lossless.cloud)

## Usage
Use TypeScript for best in class intellisense
For further information read the linked docs at the top of this readme.

## Legal
> MIT licensed | **&copy;** [Task Venture Capital GmbH](https://task.vc)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
npm package: @signatureui/core
Description: Core components & styles
Author: Ledger Investing Inc.
Latest version: 0.2.0

# Signature UI Core Components

Signature UI is a collection of React components for Ledger apps.

This package contains the core set of UI components.

## Installation

Signature UI is available as an [npm package](https://www.npmjs.com/package/@signatureui/core).

```bash
// with yarn
yarn add @signatureui/core

// with npm
npm install @signatureui/core
```
npm package: @signauth/crypto
Description: The SignAuth crypto library.
Author: Francesco Sullo
Latest version: 0.0.4

# @signauth/crypto

SignAuth is a protocol for web authentication using challenges signed with a private key derivated from a password.

The signature is performed via `ed25519`. For more info loot at [TweetNaCl.js](https://github.com/dchest/tweetnacl-js/blob/master/README.md#signatures) 

It exposes 
* Crypto

## Usage

Install it using
```
npm install @signauth/crypto
```
or `yarn` or `pnpm` or whatever.

Use it with
```
const Crypto = require('@signauth/crypto')
```

## API

### Static methods

#### Crypto.toBase32(data)
Converts the data in base32 format. See [human-oriented base-32 encoding](https://philzimmermann.com/docs/human-oriented-base-32-encoding.txt)

#### Crypto.fromBase32(base32String)
Converts from base32 to a buffer

#### Crypto.getRandomBase32String(size)
Generates a random base32 string 

#### Crypto.getRandomString(length = 12, encode = 'hex')
Generates a random string encoded, by default, as hexadecimal string 

#### Crypto.SHA3(data)
Hashes the data in format Keccak256

#### Crypto.b32Hash(data, size)
Returns a sha3 hash in base32 format.
`size` can limit the size of the final string

#### Crypto.isValidB32Hash(base32Hash)
Checks if `base32Hash` is a valid base32 hash  

#### Crypto.hexToUint8Array(hexStr)
Converts an hexadecimal string to `uint8Array`

#### Crypto.uint8ArrayToHex(uint8)
Convert a `uint8Array` to a hexadecimal string

#### Crypto.isBase32String(str)
Checks if the string looks like a base32 string

#### Crypto.isUint8Array(data)
Checks is `data` is a uint8Array

#### Crypto.seedFromPassphrase(password)
Derives a password to generate a seed as an `uint8Array`

#### Crypto.generateSignatureKeyPair(seed) {
Uses a seed to generate a pair of `ed25519` keys

#### Crypto.isValidPublicKey(key)
Verifies if `key` is a valid publicKey

#### Crypto.isValidSecretKey(key)
Verifies if `key` is a valid secretKey

#### Crypto.getSignature(message, secretKey)
Signes `message` using `secretKey` 

#### Crypto.verifySignature(message, signature, publicKey)
Verifies the message

## History

__0.0.3__
* Improving README

__0.0.2__
* completing methods and testing  

__0.0.1__
* first version of the Crypto class is a simplified version of @secrez/core:Crypto  


## Test coverage

```
  12 passing (64ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |       85 |     100 |     100 |                   
 index.js |     100 |       85 |     100 |     100 | 22,49-60          
----------|---------|----------|---------|---------|-------------------
```


## Copyright

(c) 2020-present [Francesco Sullo](https://francesco.sullo.co) (<francesco@sullo.co>)

## Licence

MIT
npm package: @signed/prettier-config
Description: Personal Prettier config
Latest version: 0.2.0

# `@signed/prettier-config`

> My personal [Prettier](https://prettier.io) config.

## Usage

**Install**:

```shell
pnpm add -D @signed/prettier-config
```

## Use as-is

**Edit `package.json`**:

```
{
  // ...
  "prettier": "@signed/prettier-config"
}
```

## Use as base configuration

To add e.g. the prettier tailwind plugin create `prettier.config.mjs`
as [local prettier configuration](https://prettier.io/docs/en/configuration.html) with

```javascript
import signed from '@signed/prettier-config'

const config = {
    ...signed,
    plugins: ['prettier-plugin-tailwindcss'],
}

export default config
```
npm package: @signed/testcafe-reporter-raw
Description: reporter that writes all interactions to the console
Latest version: 0.2.1

# custom [testcafe reporter][testcafe-reporter]

Intended for exploring the reporter api protocol in testcafe.
Each interaction with the customer reporter is serialized and written to the console.

# How to use
Testcafe does not support [scoped reports](https://github.com/DevExpress/testcafe/issues/4692#issuecomment-578790454).
The proposed workaround is to rename the package during install like this

````shell
yarn add -D testcafe-reporter-raw@npm:@signed/testcafe-reporter-raw@0.1.1
````

[testcafe-reporter]: https://testcafe.io/documentation/402810/guides/extend-testcafe/reporter-plugin
npm package: @signedapproval/mcp-server
Description: MCP server for SignedApproval — human-in-the-loop approval for AI agents
Author: Floyd Media LLC
Latest version: 1.0.5

# @signedapproval/mcp-server

MCP server for [SignedApproval](https://signedapproval.net) — cryptographic human-in-the-loop approval for AI agents.

Any AI agent can pause before a dangerous action, ask a human to approve it on their phone, and receive back an Ed25519-signed proof that a real human said yes. Unforgeably. Offline-verifiable.

## One-command setup

```bash
npm install -g @signedapproval/mcp-server
signedapproval-mcp install --email you@example.com
```

Restart Claude Code or Cursor, then tell your AI: **"Set up SignedApproval for me."**

The AI calls `signedapproval_login`, a browser link opens, you sign in with Google — done. All 19 tools available instantly. No JSON editing, no dashboard required.

## What the AI can do

**Core approval flow:**
- `request_approval` — create a request and block until the human decides
- `check_approval` — poll a specific request
- `verify_approval` — verify an Ed25519 signature offline

**Account setup:**
- `list_api_keys`, `create_api_key`, `revoke_api_key`
- `get_preferences`, `update_preferences` — quiet hours, default TTL
- `get_usage`, `list_devices`

**Policies** (reusable approval rules):
- `list_policies`, `create_policy`, `update_policy`, `delete_policy`

**GitHub CI/CD:**
- `list_github_repos`, `configure_github_repo` — auto-merge, quorum, branch protection

**Audit & logging:**
- `get_audit_log`
- `list_log_sinks`, `create_log_sink`, `delete_log_sink` — stream to Datadog/Splunk/SIEM

An AI with this MCP can fully onboard a new user, configure GitHub repos, create policies, and set up audit streaming — all from a single conversation.

## Manual config

Add to `~/.claude/settings.json` (Claude Code) or your Cursor MCP config:

```json
{
  "mcpServers": {
    "signedapproval": {
      "command": "signedapproval-mcp",
      "env": { "SIGNEDAPPROVAL_EMAIL": "you@example.com" }
    }
  }
}
```

Or with an existing API key (skips the login flow):

```json
{
  "mcpServers": {
    "signedapproval": {
      "command": "signedapproval-mcp",
      "env": { "SIGNEDAPPROVAL_API_KEY": "sa_live_..." }
    }
  }
}
```

## Links

- **Website**: https://signedapproval.net
- **API docs**: https://signedapproval.net/llms-full.txt
- **Sign up**: https://signedapproval.net (Google OAuth)
- **Issues**: https://github.com/AlexFloyd13/signedapproval/issues

## License

MIT — Floyd Media LLC
npm package: @signet-base/cli
Description: CLI for Signet onchain advertising — list and post spotlight ads
Latest version: 0.3.3

# Signet CLI

Command-line tool for [Signet](https://signet.sebayaki.com) — onchain advertising on Base (Hunt Town Co-op).

AI agents and humans can pay USDC to place URLs on the Signet spotlight via the [x402 payment protocol](https://www.x402.org).

## Install

```bash
npm install -g @signet-base/cli
# or use directly with npx
npx @signet-base/cli
```

## Usage

```bash
# List recent spotlight signatures
npx @signet-base/cli list
npx @signet-base/cli list -n 10

# Estimate spotlight cost
npx @signet-base/cli estimate
npx @signet-base/cli estimate --hours 6

# Post a URL to spotlight (simulate first)
npx @signet-base/cli post --url https://example.com --hours 0 --simulate

# Post for real (requires funded wallet with USDC + ETH on Base)
PRIVATE_KEY=0x... npx @signet-base/cli post --url https://example.com --hours 0
```

## Environment Variables

| Variable | Description |
|----------|-------------|
| `PRIVATE_KEY` | Wallet private key for posting (alternative to `--private-key`) |
| `SIGNET_API_URL` | Custom API URL (default: `https://signet.sebayaki.com`) |

## How It Works

1. **`list`** — Reads recent signatures directly from the Signet contract on Base
2. **`estimate`** — Queries the ZapV2 contract for estimated USDC cost (includes 5% buffer)
3. **`post`** — Uses x402 to pay USDC and place a URL on the spotlight:
   - Fetches price estimate from chain
   - Sends POST to get 402 Payment Required response
   - Signs EIP-3009 `transferWithAuthorization` for USDC
   - Submits with payment header → server settles + executes Zap on-chain

## Example Transaction

First x402-powered spotlight placement on Base mainnet:

- **TX**: [`0x7d5cb81b...`](https://basescan.org/tx/0x7d5cb81b3f9de246bfbc1e689b74ae244d689380227110dc430d984969e14485)
- **Cost**: $12.29 USDC
- **Block**: 41917202

## Links

- [Signet](https://signet.sebayaki.com)
- [Hunt Town Docs](https://docs.hunt.town)
- [x402 Protocol](https://www.x402.org)
npm package: @signet-base/mcp
Description: MCP server for Signet onchain advertising — estimate and buy spotlight ads with USDC via x402
Author: h1-hunt
Latest version: 0.1.1

# Signet MCP Server

[MCP](https://modelcontextprotocol.io) server for [Signet](https://signet.sebayaki.com) — buy onchain spotlight ads with USDC via [x402](https://x402.org) payments on Base.

## Tools

| Tool | Description | Wallet Required |
|------|-------------|:---:|
| `signet_estimate` | Estimate spotlight ad pricing and availability | No |
| `signet_post` | Pay USDC to place a URL on the spotlight | Yes |
| `signet_list` | List recent spotlight ads with view/click stats | No |

## Quick Start

```bash
# Run directly
npx @signet-base/mcp

# Or install globally
npm install -g @signet-base/mcp
signet-mcp
```

## Configuration

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "signet": {
      "command": "npx",
      "args": ["-y", "@signet-base/mcp"],
      "env": {
        "SIGNET_PRIVATE_KEY": "0x..."
      }
    }
  }
}
```

### Smithery

```bash
smithery install @signet-base/mcp
```

### Environment Variables

| Variable | Required | Description |
|----------|:---:|-------------|
| `SIGNET_PRIVATE_KEY` | For posting | EVM private key with USDC on Base |
| `SIGNET_BASE_URL` | No | API URL (default: `https://signet.sebayaki.com`) |
| `SIGNET_RPC_URL` | No | Base RPC (default: `https://mainnet.base.org`) |

Also accepts `BASE_PRIVATE_KEY` or `EVM_PRIVATE_KEY`.

## Example Usage

**Estimate cost:**
> "How much does a Signet spotlight cost?"

**Post an ad:**
> "Post https://myapp.xyz on Signet spotlight with 6 hour guarantee"

**View recent ads:**
> "Show me the latest Signet spotlight ads"

## How It Works

1. Agent calls `signet_estimate` to check pricing
2. Agent calls `signet_post` with a URL
3. Server sends POST to Signet → receives 402 with USDC payment requirements
4. Server signs EIP-3009 `transferWithAuthorization` with agent's wallet
5. Server resends with payment → Signet settles onchain
6. URL appears in spotlight ✅

~$12 USDC per placement, average 400+ clicks.

## Links

- [Signet](https://signet.sebayaki.com)
- [x402 Protocol](https://x402.org)
- [Hunt Town](https://hunt.town)
- [CLI](https://www.npmjs.com/package/@signet-base/cli)
npm package: @signet-inc/utils
Description: Typescript Reusable Tools: utils
Author: Danyil Moroz
Latest version: 1.4.2-ft3.4

# Utils

This package is a composed fork of:
 - [@tsrt/types](https://www.npmjs.com/package/@tsrt/types)
 - [@tsrt/utils](https://www.npmjs.com/package/@tsrt/utils)
 - [@tsrt/ordering](https://www.npmjs.com/package/@tsrt/ordering)

### Docs for @tsrt/ordering part

##### [Usage](https://github.com/tsReusableTools/tsrt/tree/master/packages/ordering#usage)

##### [API reference](https://github.com/tsReusableTools/tsrt/tree/master/packages/ordering#api-reference)

##### [Options](https://github.com/tsReusableTools/tsrt/tree/master/packages/ordering#options)
npm package: @signet-labs/signet-ts-sdk
Description: Signet API SDK for TypeScript/JavaScript - Bearer token (v1) and DPoP (v2) authentication
Author: Rafal Zacher
Latest version: 0.1.2

# Signet API SDK

TypeScript/JavaScript SDK for the Signet API with Bearer token (v1) and DPoP (v2) authentication support.

## Installation

```bash
npm install @signet-labs/signet-ts-sdk
# or
yarn add @signet-labs/signet-ts-sdk
# or
pnpm add @signet-labs/signet-ts-sdk
```

## Usage

### Bearer Token (v1)

Pass basePath, apiKey, and apiSecret once. The SDK handles token fetch and refresh automatically.

```typescript
import { Partner } from '@signet-labs/signet-ts-sdk';
import { createBearerConfiguration } from '@signet-labs/signet-ts-sdk/utils/bearer';

const config = createBearerConfiguration({
  basePath: 'https://api.getsignet.xyz',
  apiKey: 'pk_live_abc123',
  apiSecret: 'sk_live_xyz789',
});

const partner = new Partner(config);
const clients = await partner.clients.allClients();
```

### API structure: [service].[category].[endpoint]

```typescript
import { Partner, Credentials } from '@signet-labs/signet-ts-sdk';

const partner = new Partner(config);
await partner.clients.allClients();
await partner.clients.getClient({ clientId: '...' });
await partner.clients.registerClient({ registerClientBodyDto: { name: 'Jane', email: 'jane@example.com' } });

const credentials = new Credentials(config);
await credentials.enrollment.enrollUser({ enrollmentBodyDto: { ... } });
await credentials.mandate.createCartMandate({ ... });
```

### DPoP (v2) - Token Binding

For enhanced security with DPoP (token bound to cryptographic key), use the DPoP utilities.
See [DPoP documentation](https://github.com/signet-labs/signet-sdks/blob/main/docs/DPOP.md) for the full flow.

```typescript
import { DPoPManager } from '@signet-labs/signet-ts-sdk/utils/dpop';
```

## API Reference

- **Partner**: `partner.clients.allClients`, `partner.clients.getClient`, `partner.clients.registerClient`, etc.
- **Credentials**: `credentials.enrollment.enrollUser`, `credentials.mandate.createCartMandate`, etc.

## License

MIT

## Author

Rafal Zacher (CTO @ Signet Tech, inc.)