open-index/open-npm huggingface dataset:
npm package: @jytesh/keyv-mongo
Description: MongoDB storage adapter for Keyv
Author: Luke Childs
Latest version: 2.0.0

# @keyv/mongo [<img width="100" align="right" src="https://rawgit.com/lukechilds/keyv/master/media/logo.svg" alt="keyv">](https://github.com/lukechilds/keyv)

> MongoDB storage adapter for Keyv

[![Build Status](https://travis-ci.org/lukechilds/keyv-mongo.svg?branch=master)](https://travis-ci.org/lukechilds/keyv-mongo)
[![Coverage Status](https://coveralls.io/repos/github/lukechilds/keyv-mongo/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/keyv-mongo?branch=master)
[![npm](https://img.shields.io/npm/v/@keyv/mongo.svg)](https://www.npmjs.com/package/@keyv/mongo)

MongoDB storage adapter for [Keyv](https://github.com/lukechilds/keyv).

Uses TTL indexes to automatically remove expired documents. However [MongoDB doesn't guarantee data will be deleted immediately upon expiration](https://docs.mongodb.com/manual/core/index-ttl/#timing-of-the-delete-operation), so expiry dates are revalidated in Keyv.

## Install

```shell
npm install --save keyv @keyv/mongo
```

## Usage

```js
const Keyv = require('keyv');

const keyv = new Keyv('mongodb://user:pass@localhost:27017/dbname');
keyv.on('error', handleConnectionError);
```

You can specify the collection name, by default `'keyv'` is used.

e.g:

```js
const keyv = new Keyv('mongodb://user:pass@localhost:27017/dbname', { collection: 'cache' });
```

## License

MIT © Luke Childs
npm package: @jytesh/keyv-sql
Description: Parent class for SQL based Keyv storage adapters
Author: Luke Childs
Latest version: 2.0.0

# @keyv/sql [<img width="100" align="right" src="https://rawgit.com/lukechilds/keyv/master/media/logo.svg" alt="keyv">](https://github.com/lukechilds/keyv)

> Parent class for SQL based Keyv storage adapters

[![Build Status](https://travis-ci.org/lukechilds/keyv-sql.svg?branch=master)](https://travis-ci.org/lukechilds/keyv-sql)
[![Coverage Status](https://coveralls.io/repos/github/lukechilds/keyv-sql/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/keyv-sql?branch=master)
[![npm](https://img.shields.io/npm/v/@keyv/sql.svg)](https://www.npmjs.com/package/@keyv/sql)

Parent class containing the common logic for SQL based Keyv storage adapters:

- [`keyv-sqlite`](https://github.com/lukechilds/keyv-sqlite)
- [`keyv-postgres`](https://github.com/lukechilds/keyv-postgres)
- [`keyv-mysql`](https://github.com/lukechilds/keyv-mysql)

## License

MIT © Luke Childs
npm package: @jytesh/keyv-sqlite
Description: SQLite storage adapter for Keyv
Author: Luke Childs
Latest version: 3.0.2

# @keyv/sqlite [<img width="100" align="right" src="https://rawgit.com/lukechilds/keyv/master/media/logo.svg" alt="keyv">](https://github.com/lukechilds/keyv)

> SQLite storage adapter for Keyv

[![Build Status](https://travis-ci.org/lukechilds/keyv-sqlite.svg?branch=master)](https://travis-ci.org/lukechilds/keyv-sqlite)
[![Coverage Status](https://coveralls.io/repos/github/lukechilds/keyv-sqlite/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/keyv-sqlite?branch=master)
[![npm](https://img.shields.io/npm/v/@keyv/sqlite.svg)](https://www.npmjs.com/package/@keyv/sqlite)

SQLite storage adapter for [Keyv](https://github.com/lukechilds/keyv).

## Install

```shell
npm install --save keyv @keyv/sqlite
```

## Usage

```js
const Keyv = require('keyv');

const keyv = new Keyv('sqlite://path/to/database.sqlite');
keyv.on('error', handleConnectionError);
```

You can specify the `table` and [`busyTimeout`](https://sqlite.org/c3ref/busy_timeout.html) option.

e.g:

```js
const keyv = new Keyv('sqlite://path/to/database.sqlite', {
  table: 'cache',
  busyTimeout: 10000
});
```

## License

MIT © Luke Childs
npm package: @jytesh/keyv-test-suite
Description: Test suite for Keyv API compliancy
Author: Luke Childs
Latest version: 2.0.1

# @keyv/test-suite [<img width="100" align="right" src="https://rawgit.com/lukechilds/keyv/master/media/logo.svg" alt="keyv">](https://github.com/lukechilds/keyv)

> Test suite for Keyv API compliance

[![Build Status](https://travis-ci.org/lukechilds/keyv-test-suite.svg?branch=master)](https://travis-ci.org/lukechilds/keyv-test-suite)
[![Coverage Status](https://coveralls.io/repos/github/lukechilds/keyv-test-suite/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/keyv-test-suite?branch=master)
[![npm](https://img.shields.io/npm/v/@keyv/test-suite.svg)](https://www.npmjs.com/package/@keyv/test-suite)

Complete [AVA](https://github.com/avajs/ava) test suite to test a [Keyv](https://github.com/lukechilds/keyv) storage adapter for API compliance.

## Usage

### Install

Install AVA, Keyv and `@keyv/test-suite` as development dependencies.

```shell
npm install --save-dev ava keyv @keyv/test-suite
```

Then update `keyv` and `@keyv/test-suite` versions to `*` in `package.json` to ensure you're always testing against the latest version.

### Create Test File

`test.js`

```js
import test from 'ava';
import keyvTestSuite from '@keyv/test-suite';
import Keyv from 'keyv';
import KeyvStore from './';

const store = () => new KeyvStore();
keyvTestSuite(test, Keyv, store);
```

Where `KeyvStore` is your storage adapter.

Set your test script in `package.json` to `ava`.
```json
"scripts": {
  "test": "ava"
}
```

### Test on Active Node.js LTS and Higher

An example configuration for Travis CI would look like this:

`.travis.yml`

```yaml
language: node_js
node_js:
  - '8'
  - '6'
  - '4'
script: npm test
```

## Example

Take a look at [keyv-redis](https://github.com/lukechilds/keyv-redis) for an example of an existing storage adapter using `@keyv/test-suite`.

## License

MIT © Luke Childs
npm package: @jytesh/nodewikiaapi
Description: Node.js wrapper for Wikia API V1.
Author: Jytesh
Latest version: 2.0.6

# nodewikiaapi
Node.js wrapper for [Wikia API V1](http://dev.wikia.com/api/v1).

Documentation available at [Github Pages](https://tchojnacki.github.io/nodewikiaapi/).

See also:
* [Documentation](https://tchojnacki.github.io/nodewikiaapi)
* [Getting started tutorial](https://tchojnacki.github.io/nodewikiaapi/tutorial-Getting%20started.html)
* [List of available endpoints](https://tchojnacki.github.io/nodewikiaapi/tutorial-Endpoints.html)
* [Package in the npm registry](https://www.npmjs.com/package/nodewikiaapi)

Text content from accessed through the API is made available under the [Creative Commons Attribution-Share Alike License](http://www.wikia.com/Licensing). Wikia is a registered trademark of [Wikia, Inc.](http://www.wikia.com/Terms_of_Use). This library isn't endorsed by Wikia, Inc. and doesn't reflect the views or opinions of the company.
npm package: @jywei/passport-openidconnect
Description: OpenID Connect authentication strategy for Passport.
Author: Jared Hanson
Latest version: 0.1.6

# Passport-OpenID Connect

Fork of [Jared Hanson's](http://github.com/jaredhanson) [Passport](https://github.com/jaredhanson/passport) strategy for authenticating
with [OpenID Connect](http://openid.net/connect/).

This module lets you authenticate using OpenID Connect in your Node.js
applications.  By plugging into Passport, OpenID Connect authentication can be
easily and unobtrusively integrated into any application or framework that
supports [Connect](http://www.senchalabs.org/connect/)-style middleware,
including [Express](http://expressjs.com/).

## Installation

```bash
npm install @jywei/passport-openidconnect
```

## Usage

### Setup

```javascript
const passport = require("passport");
const OidcStrategy = require("@jywei/passport-openidconnect").Strategy;

passport.use(
  "oidc",
  new OidcStrategy(
    {
      issuer: "https://my-oidc-issuer.com",
      authorizationURL: "https://my-oidc-issuer.com/oauth2/authorize",
      tokenURL: "https://my-oidc-issuer.com/oauth2/token",
      userInfoURL: "https://my-oidc-issuer.com/userinfo",
      clientID: "my-oidc-client-id",
      clientSecret: "my-oidc-client-secret",
      callbackURL: "https://my-client-endpoint.com/auth/callback",
      scope: "openid" // Optional values from OIDC spec: profile, email, address, phone
    },
    async (
      issuer,
      sub,
      profile,
      jwtClaims,
      accessToken,
      refreshToken,
      idToken,
      params,
      done
    ) => {
      User.findOrCreate(
        { exampleId: profile.id },
        function (err, user) {
          return done(err, user);
        }
      );
    }
  )
);
```

### Options

If authorizationURL and tokenURL are undefined, dynamic OIDC metadata discovery will be attempted using the `.well-known/openid-configuration` endpoint.

### Express

```javascript
app.get('/auth/login', passport.authenticate('oidc'));

app.get("/auth/callback", (req, res, next) => {
  passport.authenticate("oidc", (err, user) => {
    if (err || !user) { 
      return res.redirect("/error-callback"); // Or other error handling
    }
    // Create the express session, calls serializeUser
    req.logIn(user, function(err) {
      if (err) {
        return next(err);
      }
      res.redirect("/success-callback");
    });
  })(req, res, next);
}
  ```

## Credits

  - [Jared Hanson](http://github.com/jaredhanson)

## License

[The MIT License](http://opensource.org/licenses/MIT)

Copyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>

<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/vK9dyjRnnWsMzzJTQ57fRJpH/jaredhanson/passport-openidconnect'>  <img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/vK9dyjRnnWsMzzJTQ57fRJpH/jaredhanson/passport-openidconnect.svg' /></a>
npm package: @jywei/to-tree-string
Description: Convert indented string representations to tree-like output similar to the `tree` command
Author: Wei Junyu
Latest version: 2.0.1

# to-tree-string

A TypeScript library that converts indented string representations of file system hierarchies to tree-like string outputs similar to the `tree` command.

## Installation

```bash
npm install @jywei/to-tree-string
```

## Usage

```typescript
import { toTreeString } from "@jywei/to-tree-string";

// Basic example
const input = `src
  app
    index.js
  public
    image-01.jpg
    image-02.jpg
index.html
package.json`;

console.log(toTreeString(input));
```

Output:

```
.
├── src
│   ├── app
│   │   └── index.js
│   └── public
│       ├── image-01.jpg
│       └── image-02.jpg
├── index.html
└── package.json
```

## Configuration Options

You can customize the behavior using options:

```typescript
// Using custom indentation size
const input = `root
    level1
        level2
            file1.txt
`;

// Specify 4 spaces per indentation level
console.log(toTreeString(input, { spacesPerIndent: 4 }));
```
npm package: @jzaefferer/metal-name
Description: Heavy metal band name generator
Author: Rich Trott
Latest version: 1.2.0

# metal-name [![Build Status](https://travis-ci.org/Trott/metal-name.svg?branch=master)](https://travis-ci.org/Trott/metal-name)

> Heavy metal band name generator

## Install

```
$ npm install --save metal-name
```


## Usage

```js
var metal = require('metal-name');

metal();
//=> 'Twisted Vengeance'
```


## API

### metal()

Type: `string`

Random heavy metal band name.


## CLI

```
$ npm install --global metal-name
```

```
$ metal-name --help

  Examples
    $ metal-name
    Desecrated Glory
```

## License

MIT © [Rich Trott](https://trott.github.io)

## Acknowledgments

* The code for [superb](https://github.com/sindresorhus/superb) served as a starting point

### Word Fragments Contributed By

* [Rich Trott](https://github.com/Trott)
npm package: @jzaefferer/react-markdown-loader
Description: Webpack loader to render React Components from markdown
Author: Javier Cubides
Latest version: 1.2.0

React Markdown
==================

[![npm version](https://img.shields.io/npm/v/react-markdown-loader.svg)](https://www.npmjs.com/package/react-markdown-loader)
[![build status](https://travis-ci.org/javiercf/react-markdown-loader.svg?branch=master)](https://travis-ci.org/javiercf/react-markdown-loader)
[![dependencies Status](https://david-dm.org/javiercf/react-markdown-loader/status.svg)](https://david-dm.org/javiercf/react-markdown-loader)
[![devDependencies Status](https://david-dm.org/javiercf/react-markdown-loader/dev-status.svg)](https://david-dm.org/javiercf/react-markdown-loader?type=dev)

Webpack loader that parses markdown files and converts them to a React Stateless Component.
It will also parse FrontMatter to import dependencies and render components
along with it’s source code.

We developed this loader to make the process of creating styleguides for
React components easier.

## Usage

In the FrontMatter you should import the components you want to render
with the component name as a key and it's path as the value

```markdown
---
imports:
  HelloWorld: './hello-world.js',
  '{ Component1, Component2 }': './components.js'
---
```

*webpack.config.js*
```js
module: {
  loaders: [
    {
      test: /\.md$/,
      loader: 'babel!react-markdown'
    }
  ]
}
```

*hello-world.js*
```js
import React, { PropTypes } from 'react';

/**
 * HelloWorld
 * @param {Object} props React props
 * @returns {JSX} template
 */
export default function HelloWorld(props) {
  return (
    <div className="hello-world">
      Hello { props.who }
    </div>
  );
}

HelloWorld.propTypes = {
  who: PropTypes.string
};

HelloWorld.defaultProps = {
  who: 'World'
};

```
In the markdown File add the *render* tag to code fenceblocks you want the
loader to compile as Components this will output the usual highlighted code
and the rendered component.

*hello-world.md*

<pre>

---
imports:
  HelloWorld: './hello-world.js'
---
# Hello World

This is an example component

```render html
&lt;HelloWorld /&gt;
```

You can send who to say Hello

```render html
&lt;HelloWorld who="World!!!" /&gt;
```

</pre>

## Contributing

Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).

## Team

[![Javier Cubides](https://avatars.githubusercontent.com/u/3386811?s=130)](https://github.com/javiercf) | [![Fernando Pasik](https://avatars.githubusercontent.com/u/1301335?s=130)](https://fernandopasik.com)
---|---
[Javier Cubides](https://github.com/javiercf) | [Fernando Pasik](https://fernandopasik.com)

## License

MIT (c) 2017
npm package: @jzakirov/baserow
Description: Baserow plugin for OpenClaw. Adds skills for managing tables, rows, and fields via the baserow CLI.
Latest version: 0.1.2

# openclaw-baserow

[OpenClaw](https://openclaw.ai) plugin for [Baserow](https://baserow.io) — the open-source Airtable alternative.

Adds agent skills for managing tables, rows, and fields via the [`baserow-cli`](https://github.com/jzakirov/baserow-cli).

## Install

```bash
openclaw plugins install @jzakirov/baserow
```

### Prerequisites

The plugin requires the `baserow` CLI:

```bash
uv tool install baserow-cli   # recommended
# or
pip install baserow-cli
```

Then configure it:

```bash
baserow config init
```

Or set environment variables:

| Variable | Description |
|----------|-------------|
| `BASEROW_TOKEN` | Database token (Settings > Database tokens) |
| `BASEROW_URL` | Your Baserow instance URL |
| `BASEROW_TABLE` | Default table ID (optional) |

## What's Included

| Component | Description |
|-----------|-------------|
| `skills/baserow` | Agent skill teaching the `baserow` CLI commands, workflows, and conventions |

## License

MIT
npm package: @jzakirov/internet-search
Description: SearXNG-backed internet search plugin for OpenClaw
Latest version: 0.3.9

# internet-search

Web search for [OpenClaw](https://openclaw.dev) agents, backed by a self-hosted [SearXNG](https://searxng.github.io/searxng/) instance.

Registers a single `internet_search` tool with category routing for general, news, academic, and social results.

## Installation

```bash
openclaw plugins install @jzakirov/internet-search
```

Or from a local path (development):

```bash
openclaw plugins install ./internet-search
```

## Configuration

Add to `openclaw.json` under `plugins.entries.internet-search.config`:

```json
{
  "searxngUrl": "https://search.example.com/",
  "searxngToken": "optional-bearer-token"
}
```

| Field          | Required | Description                                   |
|----------------|----------|-----------------------------------------------|
| `searxngUrl`   | Yes      | Base URL of your SearXNG instance             |
| `searxngToken` | No       | Token for SearXNG instances that require auth |

## Replacing the built-in web search

To use this plugin as the sole web search (disabling the default Brave/Perplexity `web_search` tool), set `tools.web.search.enabled` to `false`:

```json5
// openclaw.json
{
  "tools": {
    "web": {
      "search": {
        "enabled": false   // disable built-in web_search tool
      }
    }
  },
  "plugins": {
    "allow": ["internet-search"],
    "entries": {
      "internet-search": {
        "enabled": true,
        "config": {
          "searxngUrl": "https://search.example.com/",
          "searxngToken": "your-token"
        }
      }
    }
  }
}
```

If you only want to add `internet_search` alongside the built-in tool (rather than replace it), omit the `tools.web.search.enabled` change.

## Tool: `internet_search`

```
internet_search(query, count?, category?)
```

| Parameter  | Type   | Default   | Description                                      |
|------------|--------|-----------|--------------------------------------------------|
| `query`    | string | —         | Search query                                     |
| `count`    | number | 5         | Number of results to return (1–20, capped at 10) |
| `category` | string | `general` | Routing category (see below)                     |

### Categories

| Value      | Routes to                      |
|------------|--------------------------------|
| `general`  | All configured SearXNG engines |
| `news`     | SearXNG news category          |
| `academic` | arXiv, Google Scholar, PubMed  |
| `social`   | Reddit                         |

### Response

```json
{
  "results": [
    {
      "title": "Example result",
      "url": "https://example.com/article",
      "snippet": "A short excerpt from the page..."
    }
  ]
}
```

HTML tags are stripped from snippets automatically.

## Requirements

- OpenClaw ≥ 2025.0.0
- A running SearXNG instance with JSON format enabled (`search.formats: [json]` in SearXNG config)

## License

MIT
npm package: @jzakirov/plane
Description: Plane.so plugin for OpenClaw. Adds skills for managing issues, projects, states, labels, and pages via the plane CLI.
Latest version: 0.1.2

# openclaw-plane

[OpenClaw](https://openclaw.ai) plugin for [Plane.so](https://plane.so) project management.

Adds agent skills for managing issues, projects, states, labels, and pages via the [`plane-cli`](https://github.com/jzakirov/plane-cli).

## Install

```bash
openclaw plugins install @jzakirov/plane
```

### Prerequisites

The plugin requires the `plane` CLI:

```bash
uv tool install plane-cli   # recommended
# or
pip install plane-cli
```

Then configure it:

```bash
plane config init
```

Or set environment variables:

| Variable | Description |
|----------|-------------|
| `PLANE_API_KEY` | Plane API token (Settings → API Tokens) |
| `PLANE_WORKSPACE_SLUG` | Your workspace slug |
| `PLANE_BASE_URL` | API base URL (default: `https://api.plane.so`) |
| `PLANE_PROJECT` | Default project UUID (optional) |

## What's Included

| Component | Description |
|-----------|-------------|
| `skills/plane` | Agent skill teaching the `plane` CLI commands, workflows, and conventions |

## License

MIT
npm package: @jzakirov/spawn-agent
Description: Declarative subagent presets with tool enforcement for OpenClaw
Latest version: 0.1.1

# spawn-agent

Declarative subagent presets for [OpenClaw](https://openclaw.dev).

This plugin loads preset definitions from Markdown files with YAML frontmatter and exposes:

- `spawn_agent`: spawn a subagent using a preset + enforce tool policy
- `agent_presets_list`: list discovered presets

## Installation

```bash
openclaw plugins install @jzakirov/spawn-agent
```

Or from a local path (development):

```bash
openclaw plugins install ./openclaw-spawn-agent
```

## Preset discovery

Presets are discovered from multiple tiers (higher priority overrides lower priority):

1. `<workspace>/.openclaw/subagents/*.md`
2. `<stateDir>/subagents/*.md`
3. Plugin defaults: `subagents/*.md`

## Preset format

Each preset is a `.md` file with YAML frontmatter + a Markdown body used as the subagent system prompt.

Example:

```md
---
name: reviewer
description: Read-only code reviewer focusing on bugs, security, and maintainability
model: anthropic/claude-sonnet-4-20250514
thinking: high
timeoutSeconds: 120
mode: run
cleanup: delete
sandbox: inherit
tools:
  allow: [read, diffs, grep, glob]
  deny: [exec, write, edit, apply_patch]
---

You are a code reviewer. Be concise. Focus on bugs, security, and maintainability.
```

Supported frontmatter fields:

| Field            | Type                    | Default    | Notes |
|-----------------|-------------------------|------------|------|
| `name`          | string                  | —          | Required. Unique key used by `spawn_agent`. |
| `description`   | string                  | `""`       | Shown in tool descriptions/listing. |
| `model`         | string                  | —          | Passed through to OpenClaw subagent spawn. |
| `thinking`      | string                  | —          | Passed through to OpenClaw subagent spawn. |
| `timeoutSeconds`| number                  | —          | Passed through as `runTimeoutSeconds`. |
| `mode`          | `run` \| `session`      | `run`      | `session` keeps a persistent session. |
| `cleanup`       | `delete` \| `keep`      | `delete`   | Cleanup behavior for `run` mode. |
| `sandbox`       | `inherit` \| `require`  | `inherit`  | Whether to require sandboxing. |
| `tools.allow`   | string[]                | —          | If set, only these tools are allowed. |
| `tools.deny`    | string[]                | —          | Tools to deny (even if allowed). |

## Tool: `spawn_agent`

Parameters:

- `agent` (string, required): preset name
- `task` (string, required): instruction for the subagent
- `label` (string, optional): human-readable label
- `thread` (boolean, optional): bind to a thread
- `mode` (`run` \| `session`, optional): override preset mode

Response includes `childSessionKey`, `runId`, and where the preset was resolved from.

## Tool: `agent_presets_list`

Returns all discovered presets and their metadata, including `source`.

## License

MIT