open-index/open-npm huggingface dataset:
npm package: @jaxydog/dibbs
Description: Discord Bot Backend System
Author: Jaxydog
Latest version: 1.2.1

# DIBBS

> _Discord Bot Backend System!_

DIBBS is a wrapper for [discord.js](https://github.com/discordjs/discord.js) that helps make simple things like creating slash commands a whole lot easier.

### Creating a client

```js
const { Client, EmbedBuilder } = require("@jaxydog/dibbs")

const client = new Client({
	commandGuildId: /* Guild ID */,
	intents: ["GUILDS", "GUILD_MEMBERS", "GUILD_MESSAGES", "GUILD_MESSAGE_REACTIONS"],
	token: /* Bot token */,
})

client.connect()
```

### Adding commands

Commands added must be defined prior to creation using `.define`; this ensures that all created commands are sent to the API and can be used. Defined data can be retrieved using `.struct(name)`

On top of the `.commands` property, there is also `.buttons` and `.modals` for creating button and modal templates and callbacks.

```js
// *snip*

client.commands
	.define("ping", {
		name: "ping",
		description: "Checks the bot's connection",
	})
	.create("ping", async ({ interact }) => {
		const embed = new EmbedBuilder().color("BLURPLE")

		await interact.reply({
			embeds: [embed.title("Pong! (...)").color("BLURPLE").build()],
			ephemeral: true,
		})

		const reply = await interact.fetchReply()
		const delay = reply.createdTimestamp - interact.createdTimestamp

		await interact.editReply({
			embeds: [embed.title(`Pong! (${delay}ms)`).build()],
			ephemeral: true,
		})
	})

// *snip*
```

### Storing data

All stored data is saved both locally in `data/` and in memory in `client.storage`. Data stored in the local filesystem is automatically converted to-and-from JSON with UTF-8 encoding.

```js
// *snip*

await client.storage.set("path/to/file", {
	message: "Hello file system!",
})
await client.storage.get("path/to/file")
// => { message: "Hello file system!" }

// *snip*
```
npm package: @jay-ai/agent
Description: [![npm](https://img.shields.io/npm/v/@jay-ai/agent)](https://www.npmjs.com/package/@jay-ai/agent)
Latest version: 0.1.0

# @jay-ai/agent

[![npm](https://img.shields.io/npm/v/@jay-ai/agent)](https://www.npmjs.com/package/@jay-ai/agent)

Agent loop with tool execution and streaming, built on `@jay-ai/core`.

## Installation

```bash
npm install @jay-ai/agent @jay-ai/core
```

## Usage

```ts
import { Agent, AgentEventStream } from "@jay-ai/agent";
import type { AgentConfig, AgentTool } from "@jay-ai/agent";

const agent = new Agent({
  // ...config
});

const stream = agent.run("Your prompt here");
for await (const event of stream) {
  // handle events
}
```

## Requirements

Node.js >= 20
npm package: @jay-ai/coding-agent
Description: [![npm](https://img.shields.io/npm/v/@jay-ai/coding-agent)](https://www.npmjs.com/package/@jay-ai/coding-agent)
Latest version: 0.1.0

# @jay-ai/coding-agent

[![npm](https://img.shields.io/npm/v/@jay-ai/coding-agent)](https://www.npmjs.com/package/@jay-ai/coding-agent)

A minimalistic CLI coding agent powered by jay-ai.

## Installation

```bash
npm install -g @jay-ai/coding-agent
```

## Usage

```bash
jayai
```

## Requirements

Node.js >= 20
npm package: @jay-ai/core
Description: [![npm](https://img.shields.io/npm/v/@jay-ai/core)](https://www.npmjs.com/package/@jay-ai/core)
Latest version: 0.1.0

# @jay-ai/core

[![npm](https://img.shields.io/npm/v/@jay-ai/core)](https://www.npmjs.com/package/@jay-ai/core)

Core primitives for the jay-ai framework: LLM providers, event streaming, and shared types.

## Installation

```bash
npm install @jay-ai/core
```

## What's included

- **Providers** — Anthropic and OpenAI provider adapters
- **Event stream** — Unified streaming interface across providers
- **Types** — Shared message, model, and OAuth types

## Usage

```ts
import { AnthropicProvider, OpenAIProvider } from "@jay-ai/core";
```

## Requirements

Node.js >= 20
npm package: @jay-ai/tui
Description: [![npm](https://img.shields.io/npm/v/@jay-ai/tui)](https://www.npmjs.com/package/@jay-ai/tui)
Latest version: 0.1.0

# @jay-ai/tui

[![npm](https://img.shields.io/npm/v/@jay-ai/tui)](https://www.npmjs.com/package/@jay-ai/tui)

Terminal UI components for rendering agent output — messages, tool executions, prompts, and more.

## Installation

```bash
npm install @jay-ai/tui
```

## What's included

- `Terminal` — manages terminal rendering and component lifecycle
- `Component` / `Container` — base primitives for building terminal UIs
- `AssistantMessageComponent` — renders streamed assistant messages with markdown
- `ToolExecutionComponent` — renders tool call input/output
- `UserMessageComponent` — renders user messages
- `PromptComponent` — interactive input prompt
- `WelcomeComponent` — welcome screen

## Usage

```ts
import { Terminal, AssistantMessageComponent } from "@jay-ai/tui";
```

## Requirements

Node.js >= 20
npm package: @jay-es/eslint-config-nextjs-no-default-export
Description: Enforce default exports in Next.js App Router's special files, and prohibit it in other files
Author: jay-es
Latest version: 0.2.1

# eslint-config-nextjs-no-default-export

ESLint configuration for Next.js.  
Enforce default exports in App Router's special files (e.g. page.js), and prohibit it in other files.

## Usage

Install packages.

```shell
npm install -D @jay-es/eslint-config-nextjs-no-default-export eslint-plugin-import
```

And then add to `eslint.config.js`.

```js
import noDefaultExport from "@jay-es/eslint-config-nextjs-no-default-export";

export default [
  // ...
  ...noDefaultExport,
];
```
npm package: @jay-es/eslint-plugin-vue-sort-components
Description: A plugin for ESLint to keep order of component names
Author: jay-es
Latest version: 0.4.1

# `eslint-plugin-vue-sort-components`

![CI](https://github.com/jay-es/eslint-plugin-vue-sort-components/actions/workflows/ci.yml/badge.svg?event=push)
![NPM](https://img.shields.io/npm/l/@jay-es/eslint-plugin-vue-sort-components)
![npm (scoped with tag)](https://img.shields.io/npm/v/@jay-es/eslint-plugin-vue-sort-components/latest)
![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)
![types: TypeScript](https://shields.io/badge/types-TypeScript-3178C6)

A plugin for ESLint to keep order of component names.  
The rule is auto-fixable.

## Installation

```shell
$ npm install --save-dev eslint @jay-es/eslint-plugin-vue-sort-components
```

or

```shell
$ yarn add -dev @jay-es/eslint-plugin-vue-sort-components
```

## Usage

Add `plugin:@jay-es/vue-sort-components/recommended` to the extends section of your `.eslintrc` configuration file.

```js
{
  "extends": [
    // ...
    "plugin:@jay-es/vue-sort-components/recommended"
  ]
}
```

### Custom Configuration

Add `@jay-es/vue-sort-components` to the plugins section of your `.eslintrc` configuration file.

```js
{
  "plugins": ["@jay-es/vue-sort-components"]
}
```

Then configure the rule under the rules section.

```js
{
  "rules": {
    "@jay-es/vue-sort-components/vue-sort-components": "error"
  }
}
```

## Rule Details

This rule checks property definitions of object expressions named `components` and verifies that all keys are sorted alphabetically.

:thumbsdown: Examples of **incorrect** code for this rule:

```js
export default defineComponent({
  components: { Foo, Bar, Baz },
});

// spreads must be grouped at the top
export default defineComponent({
  components: { Bar, Baz, Foo, ...others },
});

// not only in Vue-specific context
const myObject = {
  components: { Foo, Bar, Baz },
};
```

:thumbsup: Examples of **correct** code for this rule:

```js
export default defineComponent({
  components: { Bar, Baz, Foo },
});

// spreads must be grouped at the top
export default defineComponent({
  components: { ...others, Bar, Baz, Foo },
});

// not only in Vue-specific context
const myObject = {
  components: { Bar, Baz, Foo },
};
```

### Options

This rule accepts a configuration object:

```js
{
  "@jay-es/vue-sort-components/vue-sort-components": ["error", { sortSpreads: false }]
}
```

- `sortSpreads` - if `true`, enforce spread properties to be sorted. Default is `false`.

#### sortSpreads

:thumbsdown: Examples of **incorrect** code for the `{ sortSpreads: true }` option:

```js
export default defineComponent({
  components: { ...others2, ...others1, Bar, Baz },
});
```

:thumbsup: Examples of **correct** code for the `{ sortSpreads: true }` option:

```js
export default defineComponent({
  components: { ...others1, ...others2, Bar, Baz },
});
```
npm package: @jay-es/jsonplaceholder-client
Description: Fully typed client for JSONPlaceholder
Author: jay-es
Latest version: 0.3.0

# JSONPlaceholder client

![CI](https://github.com/jay-es/jsonplaceholder-client/actions/workflows/ci.yml/badge.svg?event=push)
![NPM](https://img.shields.io/npm/l/@jay-es/jsonplaceholder-client)
![npm (scoped with tag)](https://img.shields.io/npm/v/@jay-es/jsonplaceholder-client/latest)
![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)
![types: TypeScript](https://shields.io/badge/types-TypeScript-3178C6)

Fully typed client of [the JSONPlaceholder API](https://jsonplaceholder.typicode.com/) for TypeScript/JavaScript.

## Install

```sh
$ npm install @jay-es/jsonplaceholder-client
```

## Features

```ts
// Getting a resource
const post = await getPost(1);

// Listing all resources
const allPosts = await getPosts();

// Filtering resources
const user1Posts = await getPosts({ userId: 1 });

// Creating a resource
await createPost({ userId: 7, title: "Foo", body: "Lorem ipsum" });

// Updating a resource
await updatePost(1, { id: 1, userId: 7, title: "Foo", body: "Lorem ipsum" });

// Patching a resource
await patchPost(1, { title: "Foo" });

// Deleting a resource
await deletePost(1);
```

### Resources

|     post     |     comment     |     album     |     photo     |     todo     |     user     |
| :----------: | :-------------: | :-----------: | :-----------: | :----------: | :----------: |
|  `getPosts`  |  `getComments`  |  `getAlbums`  |  `getPhotos`  |  `getTodos`  |  `getUsers`  |
|  `getPost`   |  `getComment`   |  `getAlbum`   |  `getPhoto`   |  `getTodo`   |  `getUser`   |
| `createPost` | `createComment` | `createAlbum` | `createPhoto` | `createTodo` | `createUser` |
| `updatePost` | `updateComment` | `updateAlbum` | `updatePhoto` | `updateTodo` | `updateUser` |
| `patchPost`  | `patchComment`  | `patchAlbum`  | `patchPhoto`  | `patchTodo`  | `patchUser`  |
| `deletePost` | `deleteComment` | `deleteAlbum` | `deletePhoto` | `deleteTodo` | `deleteUser` |

### Listing nested resources

e.g. https://jsonplaceholder.typicode.com/posts/1/comments

```ts
const comments = await getPostComments(1);
const photos = await getAlbumPhotos(1);
const albums = await getUserAlbums(1);
const todos = await getUserTodos(1);
const posts = await getUserPosts(1);
```
npm package: @jay-es/nano-match
Description: `nano-match` is a tiny utility simplifying key-based matching in TypeScript, bringing elegance to your code.
Author: jay-es
Latest version: 0.1.0

# nano-match 🎯

`nano-match` is a tiny utility simplifying key-based matching in TypeScript, bringing elegance to your code.

## Installation 🚀

```bash
npm install @jay-es/nano-match
```

## Usage 🛠

### match ✨

```typescript
import { match } from '@jay-es/nano-match';

type Language = 'en' | 'es' | 'fr';

const lang: Language = 'en';

// Strict matching, only allows valid keys of type 'Language'.
const greeting = match(lang, {
  en: "Hello.",
  es: "Hola.",
  fr: "Bonjour.",
});

console.log(greeting); // Output: Hello. (Type: "Hello." | "Hola." | "Bonjour.")
```

## Type Safety 🛡

- `match` enforces type safety by allowing only valid keys. It ensures that the provided key is of the specified type.

```typescript
// Compilation error: 'de' is not a valid key of type 'Language'.
const strictGreeting = match('de', {
  en: "Hello.",
  es: "Hola.",
  fr: "Bonjour.",
});
```

### Additional Example 🚀

```typescript
// Using `match` with numeric keys
const message = match(200, {
  200: "OK",
  404: "Not Found",
  500: "Internal Server Error",
});

console.log(message); // Output: OK (Type: "OK" | "Not Found" | "Internal Server Error")
```

## Additional Feature 🌟

`nano-match` also provides the following function:

### looseMatch 🎈

As an additional feature, `looseMatch` allows for more flexible matching that accepts keys outside the specified type, returning `undefined` for keys that do not match.

```typescript
import { looseMatch } from '@jay-es/nano-match';

// Loose matching, allows keys outside the specified type, returning undefined for non-matching keys.
const nonMatchingKey: string = 'de';
const looseGreeting = looseMatch(nonMatchingKey, {
  en: "Hello.",
  es: "Hola.",
  fr: "Bonjour.",
});

console.log(looseGreeting); // Output: undefined (Type: "Hello." | "Hola." | "Bonjour." | undefined)
```

## License 📄

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
npm package: @jay-es/pagination
Description: A simple pagination utility, with humble operation ability.
Author: jay-es
Latest version: 0.1.0

# @jay-es/pagination

A simple pagination utility, with humble operation ability.

## Installation

```bash
npm install @jay-es/pagination
```

## Usage

```javascript
import { paginate } from '@jay-es/pagination';

// Creates a pagination array, showing pages near current and omitting others.
const pagination = paginate(5, 20);
console.log(pagination);
// Output: [1, null, 4, 5, 6, null, 20]

// When the total number of pages is small, no ellipsis is used.
const pagination2 = paginate(3, 7);
console.log(pagination2);
// Output: [1, 2, 3, 4, 5, 6, 7]
```

## License

[MIT](LICENSE)
npm package: @jay-zod/speak
Description: Convert text to speech using Chatterbox TTS on Apple Silicon
Author: jay-zod
Latest version: 1.1.0

<p align="center">
  <img src="assets/banner.jpeg" alt="speak - High performance CLI tool your agent can use to generate life like speech, real time on Apple Silicon" width="100%">
</p>

A fast CLI tool for AI agents to convert their text output to speech using Chatterbox TTS on Apple Silicon.

## Quick Start

```bash
git clone https://github.com/EmZod/speak.git
cd speak
bun install

# First run auto-installs Python dependencies
bun run src/index.ts "Hello, world!" --play
```

Create an alias for easier access:
```bash
alias speak="bun run $(pwd)/src/index.ts"
```

## Requirements

- macOS with Apple Silicon (M Series)
- [Bun](https://bun.sh)
- Python 3.10+
- sox (for long documents): `brew install sox`

## Basic Usage

```bash
speak "Hello, world!" --play        # Generate and play
speak article.md --stream           # Stream long content
speak --clipboard --play            # Read from clipboard
speak document.md --output out.wav  # Save to file
```

## Key Features

```bash
# Long documents - auto-chunk for reliability
speak book.md --auto-chunk --output book.wav

# Resume interrupted generation
speak --resume manifest.json

# Batch processing
speak *.md --output-dir ~/Audio/

# Estimate duration before generating
speak --estimate document.md

# Concatenate audio files
speak concat part1.wav part2.wav --out combined.wav
```

## Commands

| Command | Description |
|---------|-------------|
| `speak <text\|file>` | Generate speech |
| `speak health` | Check system status |
| `speak models` | List available models |
| `speak concat <files>` | Combine audio files |
| `speak daemon kill` | Stop TTS server |

## Common Options

| Option | Description |
|--------|-------------|
| `--play` | Play after generation |
| `--stream` | Stream as it generates |
| `--output <path>` | Output file or directory |
| `--auto-chunk` | Chunk long documents |
| `--estimate` | Show duration estimate |
| `--dry-run` | Preview without generating |

## Documentation

- **[docs/usage.md](docs/usage.md)** - Complete usage guide
- **[docs/configuration.md](docs/configuration.md)** - Config file, environment variables, shell setup
- **[docs/troubleshooting.md](docs/troubleshooting.md)** - Common issues and fixes
- **[SKILL.md](SKILL.md)** - Agent-optimized reference
- **[CHANGELOG.md](CHANGELOG.md)** - Version history
- **[.agentic/](.agentic/)** - Agentic engineering artifacts (optimization reports, focus group tests)

## Development

```bash
bun install          # Install dependencies
bun test             # Run tests
bun run typecheck    # Type check
```

## For AI Agents

Copy [SKILL.md](SKILL.md) to your agent's skills directory:
```bash
cp SKILL.md ~/.claude/skills/speak-tts/SKILL.md
```

See [AGENTS.md](AGENTS.md) for setup details.

## License

MIT
npm package: @jay.kou/mdast-util-to-hast
Description: mdast utility to transform to hast
Author: Titus Wormer
Latest version: 0.2.0

# mdast-util-to-hast-wrap-removed

folked from [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast)

## 起因

正常情况下 mdast 转成 hast 时, 该库会在某些节点间加入空白换行节点.

比如下面这段 markdown 文字:

`Hi there! \n\n This is weapp-markdown`

它的 mdast 是:

```js
{
  type: 'root',
  children: [
    {
      type:"paragraph",
      children: [
        {
          type: 'text',
          value: 'Hi there!'
        }
      ]
    },
    {
      type:"paragraph",
      children: [
        {
          type: 'text',
          value: 'This is weapp-markdown'
        }
      ]
    }
  ]
}
```

原库转译成 hast 是:

```js
{
  type: 'root',
  children: [
    {
      type: 'element',
      tagName: 'p',
      children: [
        {
          type: 'text',
          value: 'Hi there!'
        }
      ]
    },
    {
      type: 'text',
      value: '\n'
    },
    {
      type: 'element',
      tagName: 'p',
      children: [
        {
          type: 'text',
          value: 'This is weapp-markdown'
        }
      ]
    }
  ]
}
```

在转换过程中, 它会在两个段落间加入 `{ type: 'text', value: '\n'}` 换行节点.

这些换行节点在 html 中是不会有影响的, 因为默认情况下 html 的 white-space 值是 normal, 代表它会忽略这个换行符.

但是我在使用 hast 树在小程序页面中渲染会时, 换行符就会产生影响.

所以本库对原库进行了修改, 目的是想去掉这些换行节点.

## 测试

测试用例单独写在 my-test 文件夹中.

运行脚本 `npm run my-test`
npm package: @jay.kou/slate
Description: A completely customizable framework for building rich text editors.
Latest version: 0.78.1

This package contains the core logic of Slate. Feel free to poke around to learn more!

Note: A number of source files contain extracted types for `Interfaces` or `Transforms`. This is done currently to enable custom type extensions as found in `packages/src/interfaces/custom-types.ts`.
npm package: @jay.kou/slate-markdown
Description: a markdown editor with slatejs
Latest version: 0.0.1

# slate-markdown

[![NPM version](https://img.shields.io/npm/v/slate-markdown.svg?style=flat)](https://npmjs.org/package/slate-markdown)
[![NPM downloads](http://img.shields.io/npm/dm/slate-markdown.svg?style=flat)](https://npmjs.org/package/slate-markdown)

a markdown editor with slatejs

## Usage

TODO

## Options

TODO

## Development

```bash
# install dependencies
$ yarn install

# develop library by docs demo
$ yarn start

# build library source code
$ yarn run build

# build library source code in watch mode
$ yarn run build:watch

# build docs
$ yarn run docs:build

# check your project for potential problems
$ yarn run doctor
```

## LICENSE

MIT
npm package: @jay.kou/slate-react
Description: Tools for building completely customizable richtext editors with React.
Latest version: 0.79.1

This package contains the React-specific logic for Slate. It's separated further into a series of directories:

- [**Components**](./src/components) — containing the React components for rendering Slate editors.
- [**Hooks**](./src/hooks) — containing a few React hooks for Slate editors.
- [**Plugins**](./src/plugin) — containing the React-specific plugins for Slate editors.
- [**Utils**](./src/utils) — containing a few private convenience modules.

Feel free to poke around in each of them to learn more!
npm package: @jay2503/ezssh
Description: ezssh is a CLI tool for managing SSH connections and tunnels with an interactive menu.
Author: Jay Mehta
Latest version: 2.0.0

# ezssh - Easy SSH Connection Manager

`ezssh` is a simple Node.js CLI tool that allows you to manage and quickly connect to SSH servers using an interactive menu.

## ✨ Features

- 📁 Uses a JSON file (`~/.ezssh.json`) to store SSH connection details.
- 🔍 Lists available SSH connections in an interactive menu.
- ⬆️⬇️ Allows selecting a connection using arrow keys.
- 🔑 Supports private key authentication (`.pem` files).
- 🖥️ Automatically launches SSH upon selection.
- 🔄 **Supports SSH tunnels** for secure database and service connections.
- 📡 **Interactive menu for tunnels** to quickly establish port forwarding.

---

## 📥 Installation

```sh
npm install -g @jay2503/ezssh
```

---

## 🛠️ Setup

### 1️⃣ **Create Configuration File**

Create a file named `~/.ezssh.json` in your home directory and add your SSH connections and tunnels:

```json
{
  "connections": [
    {
      "name": "My Server Name",
      "user": "ubuntu",
      "host": "222.111.000.000",
      "authKey": "~/Projects/ProjectName/keys/connection.pem"
    }
  ],
  "tunnels": [
    {
      "name": "Database Tunnel",
      "localPort": 6000,
      "remoteHost": "database.example.com",
      "remotePort": 3306,
      "authKey": "~/Projects/ProjectName/keys/db-tunnel.pem",
      "user": "ec2-user",
      "host": "222.000.111.000"
    }
  ]
}
```

🔹 Ensure your private key files have the correct permissions:

```sh
chmod 400 ~/Projects/ProjectName/keys/connection.pem
chmod 400 ~/Projects/ProjectName/keys/db-tunnel.pem
```

---

## 🚀 Usage

### **Connect to an SSH Server**

```sh
ezssh
```

This will display an interactive menu listing all configured SSH connections. Select one, and it will automatically connect using SSH.

### **Establish an SSH Tunnel**

```sh
ezssh tunnels
```

This will display an interactive menu listing all configured SSH tunnels. Select one, and it will automatically establish the tunnel.

---

## 📌 Example Output

### **SSH Connection**

```
? Select an SSH connection:
  ❯ My Server Name (ubuntu@222.111.000.000)

Connecting to My Server Name...
Welcome to Ubuntu 22.04 LTS
```

### **SSH Tunnel**

```
? Select an SSH tunnel:
  ❯ Database Tunnel (localhost:6000 → database.example.com:3306)

Creating tunnel: localhost:6000 → database.example.com:3306 via ec2-user@222.000.111.000
```

Now, access the database locally:

```sh
mysql -h 127.0.0.1 -P 6000 -u your_user -p
```

---

## 🛑 Uninstall

To remove `ezssh`, run:

```sh
npm uninstall -g ezssh
```

---

## 📜 License

MIT License

---

## ❤️ Contributing

Feel free to open issues and contribute to the project!

Happy SSHing! 🖥️🚀