open-index/open-npm huggingface dataset:
npm package: @junepentel/contract-helpers
Description: The `@aave/contract-helpers` package offers a set of services which allow querying aggregated on-chain data via rpc.
Latest version: 1.28.2

# @aave/contract-helpers

The `@aave/contract-helpers` package offers a set of services which allow
querying aggregated on-chain data via rpc.

## Installation

Install the package in your project directory with:

```sh
// with npm
npm install @aave/contract-helpers

// with yarn
yarn add @aave/contract-helpers
```
npm package: @junerlee/clear-node-modules
Description: Recursively delete all node_modules folders in the directory where the current command is located and its subdirectories.
Author: Juner
Latest version: 1.0.0

# @junerlee/clear-node-modules

Recursively delete all node_modules folders in the directory where the current command is located and its subdirectories.

## Usage

### Install

```shell
npm install -g @junerlee/clear-node-modules
```

### Run

Delete the node_modules folder in the current directory.

```shell
clear-node-modules
```

Delete the node_modules folder in the specified directory.

```shell
clear-node-modules /Users/xxx/xxx
```
npm package: @junfuhuang/tcamp-components
Description: TCamp 组件库 - 基于 Vue 3 和 TDesign 的企业级组件库
Author: TCamp Team
Latest version: 1.0.23

# tcamp-components

TCamp 组件库 - 基于 Vue 3 和 TDesign 的企业级组件库

## 安装

```bash
npm install tcamp-components
# 或
pnpm add tcamp-components
# 或
yarn add tcamp-components
```

## 使用

### 方式1：完整引入（推荐）

```typescript
import { createApp } from 'vue'
import TCampComponents from '@junfuhuang/tcamp-components'
import '@junfuhuang/tcamp-components/dist/index.css'

const app = createApp(App)
app.use(TCampComponents)
```

### 方式2：按需引入

```typescript
import { NavigationBar } from '@junfuhuang/tcamp-components'
import '@junfuhuang/tcamp-components/dist/index.css'
```

### 方式3：动态加载样式

```typescript
import { NavigationBar, importStyles } from '@junfuhuang/tcamp-components'

// 动态加载样式
importStyles()
```

### 方式4：在 HTML 中直接引入样式

```html
<link rel="stylesheet" href="https://unpkg.com/@junfuhuang/tcamp-components/dist/index.css">
```

## 组件

- NavigationBar - 导航栏组件

## 依赖

本组件库依赖以下包，请确保在你的项目中已安装：

- Vue 3.5.17+
- TDesign Vue Next 1.10.2+
- Tailwind CSS 3.4.17+

## 开发

```bash
# 开发模式
pnpm dev

# 构建
pnpm build
```

## License

MIT
npm package: @junghwan030602/good-partner
Description: The ultimate collaboration skill for AI and Humans. Enforce documentation-driven development.
Author: junghwan030602
Latest version: 1.2.0

# Good Partner (AI 协作协议)

<div align="center">

![Good Partner Banner](public/banner.png)

[![NPM Version](https://img.shields.io/npm/v/@junghwan030602/good-partner?style=flat-square&color=blue)](https://www.npmjs.com/package/@junghwan030602/good-partner)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[![AI Ready](https://img.shields.io/badge/AI-Ready-green?style=flat-square)](AGENTS.md)

[English](./README.md) | [한국어 (Korean)](./README.ko.md) | [中文 (Chinese)](./README.zh-CN.md)

</div>

---

## 什么是 Good Partner?

**Good Partner** 是一套标准化的 **协议与技能集**，旨在规范人类开发者与 AI 代理（Vibe Coders）之间的协作。

在 2026 年，AI 编写的代码量已经超过了人类。但最大的问题在于 **上下文丢失 (Context Loss)**。当你从 ChatGPT 切换到 Claude，或者一个月后重返项目时，往往很难回忆起“为什么”要这样写以及“怎么”写的。

Good Partner 通过强制执行 **文档优先 (Documentation-First)** 的敏捷工作流，确保人类和 AI 都能理解并维护项目上下文，从而解决这一问题。

## ✨ 核心特性

- **📂 简洁且强大**: 所有文件都安全地存储在 **`.good-partner/`** (隐藏文件夹) 中。
- **📋 看板 (Kanban) 驱动**: `.good-partner/kanban.md` 是 AI 和人类协作的唯一真理来源。
- **🚀 敏捷流程自动化**: 强制执行 “Spec -> Task -> Code” 的工作流。
- **🔌 通用技能注入**: 一键将此协议注入 **Codex**, **Claude**, 或 **Gemini**。
- **🗣️ 语言强制**: 强制使用特定语言（英语、韩语、中文）进行文档编写。

## 📦 安装

```bash
# 全局安装 (推荐)
npm install -g @junghwan030602/good-partner

# 验证安装
good-partner --version
```

## 🤝 协作哲学："人类指挥，AI 干活"

在 Good Partner 中，角色划分非常严格：

### 🧑‍💻 人类 (经理)
- **只读 (Read-Only)**: 通常只需查看 `.good-partner/kanban.md` 确认进度。
- **指引**: 定义目标，审批 AI 的工作。
- **合并**: 接受并合并 AI 提交的 Pull Request。

### 🤖 AI (工人)
- **读写 (Read-Write)**: `.good-partner/` 文件夹是 AI 的领地。
- **自动文档**: AI **自动** 创建任务、更新看板和记录日志。
- **冲突解决**: 在合并分支时，AI 会智能地解决文档冲突。

## 🚀 快速开始

### 1. 初始化
```bash
good-partner init
```
创建由 AI 管理的 `.good-partner` 隐藏工作区。

### 2. 注册
```bash
good-partner register "Junghwan"
```

### 3. 让 AI 开始工作
只需对您的 AI (Cursor/Claude) 下达高层指令：
> "检查看板并开始下一个功能。"

AI 将会：
1.  读取 `.good-partner/kanban.md`。
2.  将任务移动到 **进行中 (IN PROGRESS)**。
3.  同步进行编码和文档更新。

### 3. 预热 AI (Prompt)
如果您在 ChatGPT 网页版等环境中开始新会话：
```bash
good-partner prompt
```
*复制输出内容并粘贴给 AI。AI 将立即理解项目结构和规则。*

### 4. 注入技能 (本地模型)
如果您在本地使用 OpenAI Codex 或 Anthropic Claude CLI：
```bash
good-partner skill codex
good-partner skill claude
```

## 🧠 致 AI 代理 (协议说明)

如果您是正在阅读此文的 AI，请参考 [AGENTS.md](./AGENTS.md)。那是您的“技能地图”。

### 核心指令
1.  **无任务不编码**: 必须先检查 `work/` 文件夹。
2.  **即时文档化**: 在编写代码的同时更新 `T-xxxx` 文件中的进度。
3.  **记录思维链**: 复杂的推理过程必须记录在 `sessions/` 文件夹中。

## 🤝 贡献 (Contributing)

欢迎提交代码！请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解如何提交 Pull Request 和报告问题。

## 📄 许可证

本项目采用 MIT 许可证。
npm package: @junghyeonsu/eslint-config-base
Description: javascript에 대한 eslint, prettier 그리고 기본적인 플러그인이 들어있어요.
Author: Hyeonsu Jung
Latest version: 1.0.2

# @junghyeonsu/eslint-config-base

### info

#### dependencies

```json
{
  "dependencies": {
    "eslint": "^8.29.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-import": "^2.26.0",
    "eslint-plugin-json-format": "^2.0.1",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-simple-import-sort": "^8.0.0",
    "prettier": "^2.8.0"
  }
}
```

#### prettier config

```json
{
  "singleQuote": false,
  "semi": true,
  "tabWidth": 2,
  "useTabs": false,
  "trailingComma": "all",
  "printWidth": 100,
  "arrowParens": "always"
}
```

### install

```console
$ yarn add @junghyeonsu/eslint-config-base eslint prettier -D
$ npm install --dev @junghyeonsu/eslint-config-base eslint prettier
```

### settings

- `.eslintrc.js`

```js
module.exports = {
  extends: ["@junghyeonsu/eslint-config-base"],
};

// or

module.exports = {
  extends: ["@junghyeonsu/base"],
};
```

- `.vscode/settings.json` (만약 프로젝트에 vscode 설정을 통일시키고 싶다면...)

```json
{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["javascript", "json"]
}
```
npm package: @junghyeonsu/eslint-config-react
Description: 리액트에 대한 eslint plugin 모음 패키지예요.
Author: Hyeonsu Jung
Latest version: 1.0.2

# @junghyeonsu/eslint-config-react

> 리액트에 대한 eslint plugin 모음 패키지예요.

### info

```json
{
  "dependencies": {
    "eslint-plugin-jsx-a11y": "^6.6.1",
    "eslint-plugin-react": "^7.31.11",
    "eslint-plugin-react-hooks": "^4.6.0"
  }
}
```

### install

```console
$ yarn add @junghyeonsu/eslint-config-react -D
$ npm install --dev @junghyeonsu/eslint-config-react
```

### settings

- `.eslintrc.js`

```js
module.exports = {
  // base package랑 같이 써야 돼요.
  extends: ["@junghyeonsu/eslint-config-base", "@junghyeonsu/eslint-config-react"],
};

// or

module.exports = {
  extends: ["@junghyeonsu/base, @junghyeonsu/react"],
};
```

- `.vscode/settings.json` (만약 프로젝트에 vscode 설정을 통일시키고 싶다면...)

```json
{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "json"]
}
```
npm package: @junghyeonsu/eslint-config-typescript
Description: typescript에 대한 eslint 설정들이 들어있어요.
Author: Hyeonsu Jung
Latest version: 1.0.2

# @junghyeonsu/eslint-config-typescript

### info

```json
{
  "dependencies": {
    "@typescript-eslint/eslint-plugin": "^5.45.0",
    "@typescript-eslint/parser": "^5.45.0",
    "eslint-config-airbnb-typescript": "^17.0.0"
  }
}
```

### install

```console
$ yarn add @junghyeonsu/eslint-config-typescript -D
$ npm install --dev @junghyeonsu/eslint-config-typescript
```

### settings

- `.eslintrc.js`

```js
module.exports = {
  // base package랑 같이 써야 돼요.
  extends: ["@junghyeonsu/eslint-config-base", "@junghyeonsu/eslint-config-typescript"],
  parserOptions: {
    project: "./tsconfig.json", // tsconfig가 필요해요.
  },
};

// or

module.exports = {
  extends: ["@junghyeonsu/base, @junghyeonsu/typescript"],
  parserOptions: {
    project: "./tsconfig.json", // tsconfig가 필요해요.
  },
};
```

- `.vscode/settings.json` (만약 프로젝트에 vscode 설정을 통일시키고 싶다면...)

```json
{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["javascript", "typescript", "json"]
}
```
npm package: @junghyeonsu/eslint-plugin
Description: junghyeonsu eslint custom plugin and config
Author: Hyeonsu Jung
Latest version: 1.0.1

# @junghyeonsu/eslint-plugin

## prettier config

```json
{
  "singleQuote": false,
  "semi": true,
  "tabWidth": 2,
  "useTabs": false,
  "trailingComma": "all",
  "printWidth": 100,
  "arrowParens": "always"
}
```

- `.vscode/settings.json` (만약 프로젝트에 vscode 설정을 통일시키고 싶다면...)

```json
{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["javascript", "json"]
}
```
npm package: @jungjaehoon/clawdbot-mama
Description: MAMA Memory Plugin for Clawdbot - Semantic decision memory with reasoning graph
Author: SpineLift Team
Latest version: 0.2.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @jungjaehoon/clawdbot-mama

MAMA Memory Plugin for Clawdbot Gateway - Direct integration without HTTP overhead.

## Features

- **Direct Gateway Integration**: Embeds MAMA logic directly into Clawdbot Gateway
- **4 Native Tools**: `mama_search`, `mama_save`, `mama_load_checkpoint`, `mama_update`
- **Semantic Search**: Vector-based decision retrieval using sqlite-vec
- **Decision Graph**: Track decision evolution with `builds_on`, `debates`, `synthesizes` edges

## Installation

### From npm (recommended)

```bash
clawdbot plugins install @jungjaehoon/clawdbot-mama
```

### From source (development)

```bash
# Clone the repo
git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
cd MAMA

# Install dependencies
pnpm install

# Link plugin for development
ln -s $(pwd)/packages/clawdbot-plugin ~/.config/clawdbot/extensions/mama

# Restart gateway
systemctl --user restart clawdbot-gateway
```

## Configuration

Add to your `~/.clawdbot/clawdbot.json`:

```json
{
  "plugins": {
    "slots": {
      "memory": "mama"
    },
    "entries": {
      "mama": {
        "enabled": true
      }
    }
  }
}
```

## Tools

### mama_search

Search semantic memory for relevant past decisions.

```
Query: "authentication strategy"
Returns: Decisions ranked by semantic similarity
```

### mama_save

Save a decision or checkpoint to semantic memory.

```
type: "decision" | "checkpoint"

# For decisions:
topic: "auth_strategy"
decision: "Use JWT with refresh tokens"
reasoning: "More secure than session cookies..."
confidence: 0.8

# For checkpoints:
summary: "Completed auth implementation"
next_steps: "Add rate limiting"
```

### mama_load_checkpoint

Resume previous session by loading the latest checkpoint.

### mama_update

Update outcome of a previous decision.

```
id: "decision_xxx"
outcome: "success" | "failed" | "partial"
reason: "Works well in production"
```

## Architecture

```
Clawdbot Gateway
└── MAMA Plugin (this package)
    └── @jungjaehoon/mama-server
        ├── mama-api.js (high-level API)
        ├── memory-store.js (SQLite + sqlite-vec)
        └── embeddings.js (Transformers.js)
```

Key design: NO HTTP/REST - MAMA logic is directly embedded into the Gateway for minimal latency (~5ms vs ~180ms with MCP).

## Related Packages

- [@jungjaehoon/mama-server](https://www.npmjs.com/package/@jungjaehoon/mama-server) - MCP server for Claude Desktop
- [MAMA Plugin](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/packages/claude-code-plugin) - Claude Code plugin

## License

MIT
npm package: @jungjaehoon/openclaw-mama
Description: MAMA Memory Plugin for OpenClaw - Semantic decision memory with reasoning graph
Author: SpineLift Team
Latest version: 0.4.3

# @jungjaehoon/openclaw-mama

MAMA Memory Plugin for OpenClaw Gateway - Direct integration without HTTP overhead.

## Features

- **Direct Gateway Integration**: Embeds MAMA logic directly into OpenClaw Gateway
- **4 Native Tools**: `mama_search`, `mama_save`, `mama_load_checkpoint`, `mama_update`
- **Semantic Search**: Vector-based decision retrieval using sqlite-vec
- **Decision Graph**: Track decision evolution with `builds_on`, `debates`, `synthesizes` edges

## Installation

### From npm (recommended)

```bash
openclaw plugins install @jungjaehoon/openclaw-mama
```

### From source (development)

```bash
# Clone the repo
git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
cd MAMA

# Install dependencies
pnpm install

# Link plugin for development
ln -s $(pwd)/packages/openclaw-plugin ~/.config/openclaw/extensions/mama

# Restart gateway
systemctl --user restart openclaw-gateway
```

## Configuration

Add to your `~/.openclaw/openclaw.json`:

```json
{
  "plugins": {
    "slots": {
      "memory": "openclaw-mama"
    },
    "entries": {
      "openclaw-mama": {
        "enabled": true
      }
    }
  }
}
```

## Tools

### mama_search

Search semantic memory for relevant past decisions.

```
Query: "authentication strategy"
Returns: Decisions ranked by semantic similarity
```

### mama_save

Save a decision or checkpoint to semantic memory.

```
type: "decision" | "checkpoint"

# For decisions:
topic: "auth_strategy"
decision: "Use JWT with refresh tokens"
reasoning: "More secure than session cookies..."
confidence: 0.8

# For checkpoints:
summary: "Completed auth implementation"
next_steps: "Add rate limiting"
```

### mama_load_checkpoint

Resume previous session by loading the latest checkpoint.

### mama_update

Update outcome of a previous decision.

```
id: "decision_xxx"
outcome: "success" | "failed" | "partial"
reason: "Works well in production"
```

## Architecture

```
OpenClaw Gateway
└── MAMA Plugin (this package)
    └── @jungjaehoon/mama-core
        ├── mama-api.js (high-level API)
        ├── memory-store.js (SQLite + sqlite-vec)
        └── embeddings.js (Transformers.js)
```

Key design: NO HTTP/REST - MAMA logic is directly embedded into the Gateway for minimal latency (~5ms vs ~180ms with MCP).

## Migration from clawdbot-mama

If upgrading from `@jungjaehoon/clawdbot-mama`:

1. Uninstall old plugin: `openclaw plugins uninstall clawdbot-mama`
2. Install new plugin: `openclaw plugins install @jungjaehoon/openclaw-mama`
3. Update config: Replace `"clawdbot-mama"` with `"openclaw-mama"` in `openclaw.json`

Your decision database (`~/.claude/mama-memory.db`) is preserved.

## Related Packages

- [@jungjaehoon/mama-server](https://www.npmjs.com/package/@jungjaehoon/mama-server) - MCP server for Claude Desktop
- [MAMA Plugin](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/packages/claude-code-plugin) - Claude Code plugin

## License

MIT
npm package: @jungle-bay-island/sdk
Description: SDK for building bungalow miniapps in Jungle Bay.
Latest version: 0.2.0

# @jungle-bay-island/sdk

SDK for building bungalow miniapps in Jungle Bay.

## Installation

```bash
npm install @jungle-bay-island/sdk
```

## Quick Start

```typescript
import { getSDK } from '@jungle-bay-island/sdk'

// Initialize SDK
const sdk = getSDK()

// Wait for context from parent
const context = await sdk.ready()

console.log('Welcome to', context.bungalow.name)
console.log('Visitor:', context.visitor.address)

// Post a message to the guestbook
await sdk.postMessage('Hello from my bungalow!')

// Get recent messages
const messages = await sdk.getMessages(50)

// Check token balance
const balance = await sdk.checkTokenBalance()

// Request a transaction (shows wallet confirmation)
const result = await sdk.requestTransaction({
  to: '0x...',
  value: '1000000000000000000', // 1 ETH in wei
})

// Sign a message
const { signature } = await sdk.signMessage('Hello World')

// Exit back to island
sdk.exit()
```

## Context

When your bungalow loads, it receives context about the visitor and bungalow:

```typescript
interface BungalowContext {
  visitor: {
    address: string | null  // Connected wallet address
  }
  bungalow: {
    id: number              // Bungalow index (0-11)
    name: string            // Bungalow name
    owner: string           // Owner wallet address
    tokenAddress: string    // Associated Clanker token
    ipfsHash: string        // Current content IPFS hash
  }
  messages: Message[]       // Recent guestbook messages
}
```

## API Reference

### `getSDK(): JungleBaySDK`

Returns the SDK singleton instance.

### `sdk.ready(): Promise<BungalowContext>`

Wait for the SDK to initialize and receive context from the parent.

### `sdk.exit(): void`

Exit the bungalow and return to the island.

### `sdk.postMessage(content: string): Promise<Message>`

Post a message to the bungalow's guestbook. Requires wallet connection.

### `sdk.getMessages(limit?: number): Promise<Message[]>`

Get recent messages from the guestbook.

### `sdk.checkTokenBalance(address?: string): Promise<bigint>`

Check the bungalow token balance for an address.

### `sdk.requestTransaction(tx: TransactionRequest): Promise<TransactionResult>`

Request a wallet transaction. Shows confirmation UI in the parent.

### `sdk.signMessage(message: string): Promise<SignMessageResult>`

Request to sign a message with the connected wallet.

### `sdk.on(event: SDKEventType, callback: Function): () => void`

Subscribe to events. Returns an unsubscribe function.

Events:
- `visitorEntered` - A new visitor entered the bungalow
- `messagePosted` - A new message was posted
- `contextUpdated` - Context was updated

## Deploying Your Bungalow

1. Build your bungalow (e.g., `npm run build`)
2. Deploy to IPFS using Orbiter or another service
3. Get the IPFS hash (CID)
4. Request Bayla to update your bungalow content
5. Bayla signs the update, you submit the transaction

## Example

See the [jungle-bay-example-bungalow](../jungle-bay-example-bungalow) for a complete example.