open-index/open-npm huggingface dataset:
npm package: @karmaniverous/jeeves-server-openclaw
Description: OpenClaw plugin for jeeves-server — file browsing, sharing, export, and event gateway tools
Author: Jason Williscroft
Latest version: 0.7.5

# @karmaniverous/jeeves-server-openclaw

OpenClaw plugin for Jeeves Server. Integrates with `@karmaniverous/jeeves` core for managed TOOLS.md writing, service lifecycle commands, and platform content maintenance.

Provides agents with tools for:

- Server status and capabilities
- File/directory metadata browsing
- Share link generation
- Export (PDF/DOCX/SVG/PNG/ZIP)
- Event gateway visibility

## Install

```bash
npx @karmaniverous/jeeves-server-openclaw install
# Restart OpenClaw gateway after installing
```

## Configuration

### Server

Add an unscoped `_plugin` key to your Jeeves Server config:

```json
{ "keys": { "_plugin": "<seed>" } }
```

### OpenClaw

```json
{
  "plugins": {
    "entries": {
      "jeeves-server-openclaw": {
        "enabled": true,
        "config": {
          "apiUrl": "http://127.0.0.1:1934",
          "pluginKey": "<same-seed-as-server-_plugin>",
          "configRoot": "j:/config"
        }
      }
    }
  }
}
```

| Config | Default | Description |
|--------|---------|-------------|
| `apiUrl` | `http://127.0.0.1:1934` | Server API base URL |
| `pluginKey` | — | Server `_plugin` key seed |
| `configRoot` | `j:/config` | Platform config root (core derives component config dirs) |

## Docs

- [OpenClaw Integration](./guides/openclaw-integration.md) — Full configuration, tool reference, architecture
npm package: @karmaniverous/jeeves-watcher
Description: Filesystem watcher that keeps a Qdrant vector store in sync with document changes
Author: Jason Williscroft
Latest version: 0.17.5

# @karmaniverous/jeeves-watcher

Filesystem watcher that keeps a [Qdrant](https://qdrant.tech/) vector store in sync with document changes. Extract text from files, chunk it, generate embeddings, and query your documents with semantic search.

## Requirements

- **Node.js** ≥ 22

## Features

- **Filesystem watching** — monitors directories for file changes via [chokidar](https://github.com/paulmillr/chokidar)
- **Multi-format extraction** — PDF, HTML, DOCX, Markdown, plain text, and more
- **Configurable chunking** — token-based text splitting with overlap control
- **Embedding providers** — Gemini (default) or mock (for testing); extensible via provider registry
- **Qdrant sync** — automatic upsert/delete keeps the vector store current
- **Rules engine** — glob-based inference rules for metadata enrichment
- **REST API** — Fastify server for search, status, config, and management
- **CLI** — `jeeves-watcher init`, `validate`, `start`, and more

## JsonMap Built-in Helpers

The following helpers are available in every JsonMap `lib` context:

| Helper | Description |
|--------|-------------|
| `split(str, sep)` | Split a string into an array |
| `slice(arr, start, end?)` | Slice an array |
| `join(arr, sep)` | Join an array into a string |
| `toLowerCase(str)` | Lowercase a string |
| `replace(str, search, replacement)` | String replacement |
| `get(obj, path)` | Dot-path property access |
| `lookupJson(filePath, key, field?)` | Load a JSON file and look up a value by key |
| `mapLookup(filePath, keys, field)` | Map keys through a JSON lookup, collecting a field from each |
| `fetchSiblings(filePath, options?)` | Extract text from neighboring files for contextual embedding |

### `fetchSiblings`

Retrieves extracted text from sibling files in the same directory, useful for contextual embedding (e.g., injecting surrounding email thread messages).

**Options:** `{ before?: number (default 3), after?: number (default 1), sort?: "name" | "mtime" (default "name") }`

Returns `string[]` of extracted text. Files that fail extraction are silently skipped.

## Install

```bash
npm install @karmaniverous/jeeves-watcher
```

## Quick Start

```bash
# Generate a config file
npx jeeves-watcher init --output ./jeeves-watcher.config.json

# Validate it
npx jeeves-watcher validate --config ./jeeves-watcher.config.json

# Start the watcher
npx jeeves-watcher start --config ./jeeves-watcher.config.json
```

## Documentation

Full docs, guides, and API reference:

**[docs.karmanivero.us/jeeves-watcher](https://docs.karmanivero.us/jeeves-watcher)**

## License

BSD-3-Clause
npm package: @karmaniverous/json2tf
Description: Convert complex JSON objects to Terraform notation.
Author: Jason Williscroft
Latest version: 0.1.2

# JSON to Terraform

This package exports a single function, `json2tf`, which takes a JSON object and returns a Terraform configuration string.

It is NOT designed to output modules, resources, or other top-level objects. Instead, it enables the generation of the data values INSIDE those objects.

Installation:

```bash
npm install @karmaniverous/json2tf
```

Usage:

```ts
import { json2tf } from '@karmaniverous/json2tf';

const json = {
  a: 1,
  b: 'two',
  c: {
    x: null,
    y: 'eight',
    z: [42, 69, 'one million dollars'],
  },
};

console.log(json2tf(json));

/*
{
    a = 1
    b = "two"
    c = {
        x = null
        y = "eight"
        z = [
            42,
            69,
            "one million dollars"
        ]
    }
}
*/
```

`json2tf` takes an optional second argument that looks like this:

```ts
/**
 * json2tf options
 *
 * @param offset - The number of spaces to indent the entire block.
 * @param tabWidth - The number of spaces to use for each tab.
 */
interface Json2tfOptions {
  offset?: number;
  tabWidth?: number;
}
```

---

See more great templates and other tools on
[my GitHub Profile](https://github.com/karmaniverous)!
npm package: @karmaniverous/merge-delimited-lists
Description: Merges and deduplicates delimited lists.
Author: Jason G. Williscroft
Latest version: 0.1.4

# merge-delimited-lists

To install:

```bash
npm install @karmaniverous/merge-delimited-lists
```

To import:

```js
import { mergeDelimitedLists } from '@karmaniverous/merge-delimited-lists`;
```

See
[tests](https://github.com/karmaniverous/merge-delimited-lists/blob/main/lib/mergeDelimitedLists/mergeDelimitedLists.test.js)
for examples of usage!

# API Documentation

<a name="mergeDelimitedLists"></a>

## mergeDelimitedLists(delimiter, ...lists) ⇒ <code>string</code>
Merges and deduplicates delimited lists.

**Kind**: global function  
**Returns**: <code>string</code> - The deduplicated merge of all input lists.  

| Param | Type | Description |
| --- | --- | --- |
| delimiter | <code>string</code> \| <code>Object</code> | A string or RegExp used as a delimiter. |
| ...lists | <code>string</code> | Any number of delimited lists. |


---

See more great templates and other tools on
[my GitHub Profile](https://github.com/karmaniverous)!
npm package: @karmaniverous/string-utilities
Description: Handy tagged templates & other string utilities.
Author: Jason Williscroft
Latest version: 0.2.2

<!-- TYPEDOC_EXCLUDE -->

> [API Documentation](https://karmaniverous.github.io/string-utilities) • [CHANGELOG](https://github.com/karmaniverous/string-utilities/tree/main/CHANGELOG.md)

<!-- /TYPEDOC_EXCLUDE -->

# string-utilities

Handy tagged templates & other string utilities.

To install:

```bash
npm i @karmaniverous/string-utilities
```

Contents:

- Types
  - [`Stringifiable`](https://docs.karmanivero.us/string-utilities/types/index.Stringifiable.html) - Represents any value with a `toString` method.

  - [`isStringifiable`](https://docs.karmanivero.us/string-utilities/functions/index.isStringifiable.html) - Returns `true` when value has `toString` method.

- Transformations
  - [`normstr`](https://docs.karmanivero.us/string-utilities/functions/index.normstr.html) - Normalize a string by converting diacriticals to base characters, removing non-word characters, and converting to lower case. Non-strings return undefined.

- Tagged Template Functions
  - Non-stringifiable to Empty String ([`n2e`](https://docs.karmanivero.us/string-utilities/functions/index.n2e.html)) - Replaces expressions without `toString` property with empty strings.

  - Some Non-stringifiable to Empty String ([`sn2e`](https://docs.karmanivero.us/string-utilities/functions/index.sn2e.html)) - Returns empty string when any expression has no `toString` property.

  - Some Non-stringifiable to Null ([`sn2n`](https://docs.karmanivero.us/string-utilities/functions/index.sn2n.html)) - Returns `null` when any expression has no `toString` property.

  - Some Non-stringifiable to Undefined ([`sn2u`](https://docs.karmanivero.us/string-utilities/functions/index.sn2u.html)) - Returns `undefined` when any expression has no `toString` property.

- Higher-Order Functions
  - Non-stringifiable to Default ([`n2d`](https://docs.karmanivero.us/string-utilities/functions/index.n2d.html)) - Returns tagged template function that replaces any expression that has no `toString` property with a default value.

  - Some Non-stringifiable to Default ([`sn2d`](https://docs.karmanivero.us/string-utilities/functions/index.sn2d.html)) - Returns tagged template function that returns a default value when any expression has no `toString` property.

---

Built for you with ❤️ on Bali! Find more great tools & templates on [my GitHub Profile](https://github.com/karmaniverous).
npm package: @karmaniverous/typedoc-plugin-sitemap
Description: A TypeDoc plugin that generates a sitemap for your documentation site.
Author: Jason Williscroft
Latest version: 0.1.2

> **PARTIALLY DEPRECATED!** Typedoc's [`hostedBaseUrl`](https://typedoc.org/options/output/#hostedbaseurl) option now generates a sitemap natively. Only use this plugin if you need more control over the sitemap generation process.

<!-- TYPEDOC_EXCLUDE -->

> [API Documentation](https://karmaniverous.github.io/typedoc-plugin-sitemap) • [CHANGELOG](https://github.com/karmaniverous/typedoc-plugin-sitemap/tree/main/CHANGELOG.md)

<!-- /TYPEDOC_EXCLUDE -->

# TypeDoc Sitemap Plugin

Automagically generate a sitemap for your [TypeDoc](https://typedoc.org/) documentation site!

To install:

```bash
npm install -D @karmaniverous/typedoc-plugin-sitemap
```

In your `typedoc.json` configuration file, add the following:

```json
{
  "plugins": ["@karmaniverous/typedoc-plugin-sitemap"],
  "sitemap": {
    "baseUrl": "https://docs.karmanivero.us/typedoc-plugin-sitemap",
    "filename": "sitemap.xml",
    "changeFreq": "weekly",
    "priority": 0.5
  }
}
```

Now run [TypeDoc](https://typedoc.org/) however you usually run it, and your site map will be generated in the root of your output directory!

## Options

| Option       | Type                                                                        | Default         | Description                                                   |
| ------------ | --------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------- |
| `baseUrl`    | `string`                                                                    | _required_      | The base URL of your documentation site.                      |
| `filename`   | `string`                                                                    | `'sitemap.xml'` | The name of the sitemap file.                                 |
| `changeFreq` | `'always' ⏐ 'hourly' ⏐ 'daily' ⏐ 'weekly' ⏐ 'monthly' ⏐ 'yearly' ⏐ 'never'` | `'weekly'`      | How frequently the page is likely to change.                  |
| `priority`   | `number`                                                                    | `0.5`           | The priority of this URL relative to other URLs on your site. |

---

Built for you with ❤️ on Bali! Find more great tools & templates on [my GitHub Profile](https://github.com/karmaniverous).