open-index/open-npm huggingface dataset:
npm package: @sppk/devkit
Description: A CLI tool to simplify dev workflow
Author: wangkaiwd
Latest version: 1.0.0

# DevKit - 简化你的日常开发

CLI 工具，用于简化项目开发过程中的常用命令

## 功能特性

- 🚀 **自动化合并工作流**：通过单个命令无缝合并分支
- 🎨 **美观输出**：彩色、信息丰富的 CLI 界面，带有进度指示器
- 🔄 **安全操作**：完成后始终返回到原始分支
- 🧪 **试运行模式**：预览操作而不进行实际更改


## 安装

### 全局安装（推荐）

```bash
pnpm install -g @sppk/devkit
```

### 本地开发

```bash
# 克隆仓库
git clone <repository-url>
cd devkit

# 安装依赖
pnpm install

# 构建项目
pnpm run build

# 链接用于本地开发
pnpm link
```

## 使用方法

### 基本用法

```bash
# 将当前分支合并到 staging
devkit mergeto staging

# 将当前分支合并到 main
devkit mergeto main
```

### 高级选项

```bash
# 预览合并操作（试运行）
devkit mergeto staging --dry-run

# 强制合并，无需确认
devkit mergeto staging --force

# 显示帮助
devkit --help

# 显示版本
devkit --version
```

## 工作原理

当您运行 `devkit mergeto <target-branch>` 时，该工具执行以下步骤：

1. **预检查**：
   - 验证您是否在 Git 仓库中
   - 检查工作目录是否干净
   - 从 origin 获取最新更改
   - 验证目标分支是否存在

2. **操作规划**：
   - 向您展示将要执行的具体操作
   - 显示源分支和目标分支
   - 请求确认（除非使用 `--force`）

3. **合并工作流**：
   - 切换到目标分支
   - 拉取目标分支的最新更改
   - 将源分支合并到目标分支
   - 将更新后的目标分支推送到远程
   - 切换回原始分支

4. **错误处理**：
   - 检测合并冲突并提供清晰的指导
   - 在出错时安全地返回到原始分支
   - 提供有用的错误信息和恢复步骤

## 示例

### 成功合并

```bash
$ devkit mergeto staging

🔍 预检查
──────────────────────────────────────────────────
✓ 检测到 Git 仓库
✓ 工作目录干净
✓ 从 origin 获取了最新更改
✓ 目标分支 "staging" 存在

📋 操作计划
──────────────────────────────────────────────────
→ 1. 从 "feature/new-feature" 切换到 "staging"
→ 2. 拉取 "staging" 的最新更改
→ 3. 将 "feature/new-feature" 合并到 "staging"
→ 4. 将 "staging" 推送到远程
→ 5. 切换回 "feature/new-feature"

ℹ 源分支: "feature/new-feature"
ℹ 目标分支: "staging"

? 您想要继续执行合并操作吗？ 是

🚀 执行合并工作流
──────────────────────────────────────────────────
✓ 切换到 "staging"
✓ 拉取了 "staging" 的最新更改
✓ 将 "feature/new-feature" 合并到 "staging"
✓ 将 "staging" 推送到远程
✓ 切换回 "feature/new-feature"

✓ 🎉 成功将 "feature/new-feature" 合并到 "staging"！
ℹ 更改已推送到远程仓库。
```

### 试运行模式

```bash
$ devkit mergeto staging --dry-run

🔍 预检查
──────────────────────────────────────────────────
✓ 检测到 Git 仓库
✓ 工作目录干净
✓ 从 origin 获取了最新更改
✓ 目标分支 "staging" 存在

📋 操作计划（试运行）
──────────────────────────────────────────────────
→ 1. 从 "feature/new-feature" 切换到 "staging"
→ 2. 拉取 "staging" 的最新更改
→ 3. 将 "feature/new-feature" 合并到 "staging"
→ 4. 将 "staging" 推送到远程
→ 5. 切换回 "feature/new-feature"

ℹ 源分支: "feature/new-feature"
ℹ 目标分支: "staging"

ℹ 试运行完成。没有进行实际更改。
```

## 错误处理

DevKit 优雅地处理各种错误场景：

### 未提交的更改
```bash
✗ 工作目录不干净
✗ 您有未提交的更改。请在合并前提交或暂存它们。
```

### 合并冲突
```bash
✗ 合并失败：检测到合并冲突
✗ 在以下文件中检测到合并冲突：
✗   - src/components/Button.tsx
✗   - src/utils/helpers.ts
ℹ 请手动解决冲突并运行：
ℹ $ git add .
ℹ $ git commit
ℹ $ git push origin staging
```

### 分支未找到
```bash
✗ 目标分支 "nonexistent" 在本地或远程都不存在
```

## 配置

DevKit 可以在任何 Git 仓库中开箱即用。无需额外配置。

## 系统要求

- Node.js >= 14.0.0
- 已安装并配置 Git
- 访问具有远程 origin 的 Git 仓库
npm package: @spraay/langchain-agent-wallet
Description: 💧 LangChain tools for Spraay Agent Wallet — provision smart wallets, manage session keys on Base via x402
Author: plagtech
Latest version: 1.0.0

# 💧 @spraay/langchain-agent-wallet

LangChain tools for Spraay Agent Wallet — provision smart wallets, manage session keys, and predict addresses on Base via x402 USDC micropayments.

## Install

```bash
npm install @spraay/langchain-agent-wallet @langchain/core
```

## Quick Start

```typescript
import { ChatOpenAI } from "@langchain/openai";
import { createToolCallingAgent, AgentExecutor } from "langchain/agents";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { createSpraayWalletTools } from "@spraay/langchain-agent-wallet";

const tools = createSpraayWalletTools({
  privateKey: process.env.EVM_PRIVATE_KEY!,
  // gatewayUrl: "https://gateway.spraay.app" // default
});

const llm = new ChatOpenAI({ model: "gpt-4o" });

const prompt = ChatPromptTemplate.fromMessages([
  ["system", "You are a Web3 agent that can manage smart wallets on Base."],
  ["human", "{input}"],
  ["placeholder", "{agent_scratchpad}"],
]);

const agent = createToolCallingAgent({ llm, tools, prompt });
const executor = new AgentExecutor({ agent, tools });

const result = await executor.invoke({
  input: "Deploy a new agent wallet for 0x1234...abcd",
});
```

## Tools

| Tool | Description | Cost |
|------|-------------|------|
| `spraay_provision_wallet` | Deploy a new smart wallet on Base | $0.05 |
| `spraay_add_session_key` | Grant scoped permissions to an address | $0.02 |
| `spraay_get_wallet_info` | Query wallet details and balance | $0.005 |
| `spraay_revoke_session_key` | Remove a session key | $0.02 |
| `spraay_predict_address` | Pre-compute CREATE2 wallet address | $0.001 |

## Individual Tool Usage

```typescript
import { SpraayProvisionWalletTool } from "@spraay/langchain-agent-wallet";

const provisionTool = new SpraayProvisionWalletTool({
  privateKey: process.env.EVM_PRIVATE_KEY!,
});

// Use with any LangChain agent or chain
```

## Environment

```env
EVM_PRIVATE_KEY=0x...          # Required — signs x402 payments
SPRAAY_GATEWAY_URL=https://... # Optional — override default gateway
```

## Links

- [Spraay Docs](https://docs.spraay.app)
- [x402 Protocol](https://x402.org)
- [LangChain.js](https://js.langchain.com)

## License

MIT — [@plagtech](https://github.com/plagtech)
npm package: @sprague-energy/sprague-test
Description: a test project for org repositories
Author: D Sappet
Latest version: 1.0.1

Sprague Test
=========

This is just a POC that returns a line of text.

## Installation

  `npm install @sprague-energy/sprague-test`

## Usage

    var st = require('@sprague-energy/sprague-test');

    var x = st();
  
  
  Output should be `THE TEST PACKAGE WORKS!`


## Tests

  NONE RIGHT NOW

## Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.
npm package: @spranab/discord-mcp
Description: Discord MCP server for managing Discord servers via Claude
Author: spranab
Latest version: 1.0.1

# @spranab/discord-mcp

A Discord MCP (Model Context Protocol) server that lets AI assistants like Claude manage your Discord server. Single hierarchical tool design — one tool, tiered navigation, zero bloat.

## Features

One `discord` tool with 11 categories and 30+ actions:

| Category | Actions | Description |
|---|---|---|
| **server** | `list`, `info` | List servers, get server details |
| **channels** | `list`, `create`, `edit`, `delete` | Full channel management |
| **messages** | `send`, `read`, `edit`, `delete`, `bulk_delete`, `pin`, `react`, `search` | Send, read, moderate messages |
| **roles** | `list`, `create`, `edit`, `delete`, `assign` | Role CRUD + assignment |
| **members** | `list`, `info`, `nickname` | Member listing and management |
| **moderation** | `kick`, `ban`, `unban`, `timeout`, `list_bans` | Server moderation |
| **threads** | `create` | Thread creation |
| **webhooks** | `list`, `create` | Webhook management |
| **invites** | `create`, `list` | Invite management |
| **emojis** | `list` | Custom emoji listing |
| **audit** | `log` | Audit log access |

## How It Works

The tool uses 3-level navigation to keep your tool list clean:

```
discord()                                          → list categories
discord(category="messages")                       → list actions & params
discord(category="messages", action="send", params={...}) → execute
```

## Installation

### With Claude Code

Add to your `.mcp.json`:

```json
{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "@spranab/discord-mcp"],
      "env": {
        "bot_token": "YOUR_BOT_TOKEN"
      }
    }
  }
}
```

### Manual

```bash
npm install -g @spranab/discord-mcp
```

Run with `bot_token` environment variable set:

```bash
bot_token=YOUR_BOT_TOKEN discord-mcp
```

## Discord Bot Setup

1. Go to the [Discord Developer Portal](https://discord.com/developers/applications)
2. Create a new application
3. Go to **Bot** and copy the token
4. Enable **Privileged Gateway Intents** (all three):
   - Presence Intent
   - Server Members Intent
   - Message Content Intent
5. Go to **Installation** > **Default Install Settings** > **Guild Install**
6. Add the `bot` scope and select `Administrator` permissions
7. Use the install link to add the bot to your server

## Tech Stack

- TypeScript
- [discord.js](https://discord.js.org/) v14
- [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- Zod for validation

## License

MIT
npm package: @spraoi/auth
Description: Container components for making authentication a breeze.
Latest version: 0.30.0

# @spraoi/auth

> Container components for making authentication a breeze.

## Installation

```bash
yarn add @spraoi/auth
```

## Usage

### AuthProvider

`AuthProvider` is a container component that provides context to its children.
Check the source for details.

```javascript
import React from 'react';
import { AuthProvider } from '@spraoi/auth';

const amplifyConfig = {
  // ...
};

const AuthenticatedApp = (
  <AuthProvider amplifyConfig={amplifyConfig}>
    {/* your app goes here... */}
  </AuthProvider>
);
```

#### Amplify Config Documentation

- https://aws-amplify.github.io/docs/js/authentication#manual-setup
- https://aws-amplify.github.io/docs/js/api#manual-setup
- https://aws-amplify.github.io/docs/js/storage#manual-setup

### AuthContext.Consumer

`AuthContext.Consumer` is just the
[context consumer](https://reactjs.org/docs/context.html#contextconsumer) for
the above `AuthProvider`.

```javascript
import React from 'react';
import { AuthContext } from '@spraoi/auth';

const Component = (
  <AuthContext.Consumer>
    {(authContext) => {
      // use the context here...
    }}
  </AuthContext.Consumer>
);
```

### Page

`Page` is a simple authenticated/unauthenticated route container
component/helper.

#### Props

##### `isPrivate`: bool

If `true` and the user _isn&rsquo;t_ authenticated, they are redirected to the
login page or the `redirect` path. The current pathname is set to the `redirect`
query param. This is useful for redirecting back to the page that was originally
requested (once authenticated).

##### `isPublic`: bool

If `true` and the user _is_ authenticated, they are redirected to the home page
or the `redirect` path.

##### `redirect`: string

The path to redirect to in the cases above.

##### `renderLoading`: node

The component to render if `waitForAuth` is true.

##### `waitForAuth`: bool

If `true`, the page contents aren&rsquo;t shown until we know if the user is
authenticated or not.

#### Private Route Example

```javascript
import React from 'react';
import { Page } from '@spraoi/auth';

const Route = (
  <Page isPrivate renderLoading="Loading!" waitForAuth>
    {/* your page goes here... */}
  </Page>
);
```
npm package: @spraoi/babel-preset
Description: A preconfigured, extensible babel preset.
Latest version: 0.30.0

# @spraoi/babel-preset

> A preconfigured, extensible
> [babel preset](https://babeljs.io/docs/en/presets).

## Installation

```bash
yarn add \
  @babel/core \
  @spraoi/babel-preset \
  babel-plugin-styled-components \
  babel-preset-gatsby
```

## Usage

Add the following configuration to the root of your project:

**.babelrc**

```json
{
  "presets": ["@spraoi/babel-preset"]
}
```
npm package: @spraoi/eslint-config
Description: An opinionated, extensible eslint config to enforce high-quality javascript.
Latest version: 0.30.0

# @spraoi/eslint-config

> An opinionated, extensible
> [eslint config](https://eslint.org/docs/developer-guide/shareable-configs) to
> enforce high-quality javascript.

## Installation

```bash
yarn add --dev @spraoi/eslint-config @spraoi/prettier-config eslint prettier
```

## Usage

Add the following configuration to the root of you project:

**.eslintrc**

```json
{
  "extends": ["@spraoi/eslint-config"]
}
```

**.prettierrc.js**

```javascript
module.exports = require('@spraoi/prettier-config');
```

**package.json**

```json
{
  "scripts": {
    "lint:js": "eslint --ignore-path .gitignore \"src/**/*.js\""
  }
}
```

You can then run `yarn lint:js`.
npm package: @spraoi/gatsby-config
Description: A sensible, extensible concoction of plugins & configuration for Gatsby.
Latest version: 0.30.0

# @spraoi/gatsby-config

> A sensible, extensible concoction of plugins & configuration for
> [Gatsby](https://www.gatsbyjs.org/docs/).

## Installation

```bash
yarn add gatsby
yarn add --dev @spraoi/gatsby-config
```

## Usage

Add the following configuration to the root of your project:

**gatsby-config.js**

```javascript
const defaults = require('@spraoi/gatsby-config');

module.exports = {
  ...defaults,
  siteMetadata: {
    title: 'Project Name',
  },
};
```
npm package: @spraoi/gatsby-plugin
Description: A Gatsby plugin for adding any necessary steps to our build process.
Latest version: 0.30.0

# @spraoi/gatsby-plugin

> A [Gatsby plugin](https://www.gatsbyjs.org/docs/plugin-authoring/) for adding
> any necessary steps to our build process.

## Installation

```bash
yarn add --dev @spraoi/gatsby-plugin
```

## Usage

Add the plugin to your Gatsby config file like so:

```javascript
module.exports = {
  plugins: ['@spraoi/gatsby-plugin'],
};
```
npm package: @spraoi/jest-config
Description: A preconfigured, extensible testing configuration with Enzyme and Jest.
Latest version: 0.30.0

# @spraoi/jest-config

> A preconfigured, extensible testing configuration with
> [Enzyme](https://airbnb.io/enzyme/) and [Jest](https://jestjs.io/en/).

## Installation

```bash
yarn add --dev \
  @babel/core \
  @babel/plugin-transform-runtime \
  @babel/runtime \
  @spraoi/babel-preset \
  @spraoi/jest-config \
  babel-core@^7.0.0-bridge \
  jest
```

## Usage

Add the following configuration to the root of you project:

**jest.config.js**

```javascript
module.exports = require('@spraoi/jest-config');
```

**package.json**

```json
{
  "scripts": {
    "test": "jest"
  }
}
```

You can then run `yarn test`.
npm package: @spraoi/legacy-file-upload
Description: Same as @spraoi/file-upload, but compatible with old projects.
Latest version: 0.30.0

# @spraoi/legacy-file-upload

> Same as
> [@spraoi/file-upload](https://github.com/spraoi/common-ui/tree/master/packages/file-upload),
> but compatible with old projects.

## Installation

```bash
yarn add @spraoi/legacy-file-upload
```

## Usage

TODO

### Custom Styles

See: https://pqina.nl/filepond/docs/patterns/api/style/
npm package: @spraoi/prettier-config
Description: An opinionated prettier config to enforce consistently formatted code.
Latest version: 0.30.0

# @spraoi/prettier-config

> A [prettier config](https://prettier.io/docs/en/configuration.html) to enforce
> consistently formatted code.

## Installation

```bash
yarn add --dev @spraoi/prettier-config prettier
```

## Usage

Add the following configuration to the root of you project:

**.prettierrc.js**

```javascript
module.exports = require('@spraoi/prettier-config');
```

**package.json**

```json
{
  "scripts": {
    "prettier": "prettier --write --ignore-path .gitignore \"**/*.{js,gql,json,md,yml}\""
  }
}
```

You can then run `yarn format`.
npm package: @spraoi/scripts
Description: Helpful scripts for managing @spraoi UI projects & packages.
Latest version: 0.30.0

# @spraoi/scripts

> Helpful scripts for managing [@spraoi](https://github.com/spraoi/) UI projects
> & packages.

## Installation

```bash
yarn global add @spraoi/scripts
```

## Usage

The `spraoi` command should now be available. Run it to see the available
options.
npm package: @spraoi/stylelint-config
Description: An opinionated, extenisble stylelint config to enforce high-quality stylesheets.
Latest version: 0.30.0

# @spraoi/stylelint-config

> An opinionated, extensible
> [stylelint config](https://stylelint.io/user-guide/configuration/) to enforce
> high-quality stylesheets.

## Installation

```bash
yarn add --dev @spraoi/prettier-config @spraoi/stylelint-config prettier stylelint
```

## Usage

Add the following configuration to the root of your project:

**.stylelintrc**

```json
{
  "extends": ["@spraoi/stylelint-config"]
}
```

**.prettierrc.js**

```javascript
module.exports = require('@spraoi/prettier-config');
```

**package.json**

```json
{
  "scripts": {
    "lint:styles": "stylelint --ignore-path .gitignore \"src/**/*.js\""
  }
}
```

You can then run `yarn lint:styles`.
npm package: @spraoi/svgo-config
Description: An svgo config to keep svg files clean.
Latest version: 0.30.0

# @spraoi/svgo-config

> An [svgo config](https://github.com/svg/svgo) to keep svg files clean.

## Installation

```bash
yarn add --dev @spraoi/svgo-config svgo
```

## Usage

Add the following configuration to the root of you project:

**package.json**

```json
{
  "scripts": {
    "svgo": "svgo --config node_modules/@spraoi/svgo-config/svgo.yml -f src/images/icons"
  }
}
```

You can then run `yarn format`.
npm package: @spraoi/validations
Description: Field-level input validation functions for final-form.
Latest version: 0.30.0

# @spraoi/validations

> Field-level input validation functions for
> [final-form](https://github.com/final-form/final-form).

## Installation

```bash
yarn install @spraoi/validations
```

## Usage

[Here's a sandbox](https://codesandbox.io/s/2k054qp40) that demonstrates how
field level validations can be used.
npm package: @spraylee/extract-words
Description: A tool to generate a list of words from a given code folder. Usually used for [keybr.com](https://keybr.com)
Author: spraylee@qq.com
Latest version: 0.1.0

# Split Code Word

A tool to generate a list of words from a given code folder. Usually used for [keybr.com](https://keybr.com)

## Usage

```bash
# install
pnpm install

# dev
pnpm run dev

# build
pnpm run build

# start
pnpm run start
```

## License

This software is released under the terms of the MIT license.
npm package: @spreact/cli-shared-utils
Description: Shared Utilities for Spreact Cli services
Author: Quadri Adekunle
Latest version: 1.7.0
Deprecated: false

# @spreact/cli-shared-utils

> Shared Utilities for Spreact CLI and CLI Scripts/Service



The Utilities is a extract of generally used scripts between all Spreact Library. The Utilities can be used for each Spreact based application or other applications. The utilities code can be used by the scope provided.



> NOTE: The Spreact Utilities is an extract of [vue-cli-shared-utilities](https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-shared-utils) and Upgraded to fit Spreact Library. 



### Spreact CLI Shared Utils can be install via npm/yarn using

`npm install @spreact/cli-shared-utils` or `yarn add @spreact/cli-shared-utils`



After installation you can use the package by importing as a single import from the library 

`import { ... } from '@spreact/cli-shared-utils'` or `cont { ... } = require('@spreact/cli-shared-utils')` 

or multiple import directly from the library 

`import { ..., ..., ..., ... } from '@spreact/cli-shared-utils'` or `const{ ..., ..., ..., ... } = require('@spreact/cli-shared-utils')`



To Understand how to use the library please refer to the [Wiki for documentation](https://github.com/Sprngo/spreact-cli-shared-utils/wiki) of each library and function in the package.





### Contributing to the library