open-index/open-npm huggingface dataset:
npm package: @nuform/helium
Description: A framework for creating and executing middleware
Author: NuForm Systems Inc.
Latest version: 1.0.2

# Helium

Helium is a package that allows you to create your own middleware layer. It also allows you to enable or disable middleware on the fly.

```javascript
// Import Helium
const Helium = require('@nuform/helium');

// Create a new middleware instance
const middleware = new Helium();

// Sample data that we can pass on between middleware
var dataPoint = {cheese: ["Cheddar"]};

// Add a function to the middleware 
// (Pass in an object containing the name of the middleware (see below) if you want to disable or enable it later)
middleware.use({name: "AddSwissCheese"}, function(data, next) {

    // Add Swiss Cheese (Modify the sample data if we want to)
    data.cheese.push('Swiss');

    // Continue
    next();

});

// Enable the Add Swiss Cheese Middleware
middleware.enable("AddSwissCheese");

// Runt the middleware with the prexisting data as an argument
middleware.run(dataPoint, function(data) {

    // Log
    console.log(data.cheese);
    
    // ['Cheddar', 'Swiss']
    

});



```
npm package: @nugget-dev/code-standards
Description: code standards
Author: NuggetDev
Latest version: 1.0.1

# @nugget-dev/code-standards

Este paquete proporciona una configuración mínima de linting y styling de código, además de convenciones para commits con **Conventional Commits**, **Prettier**, **ESLint**, y **Husky**.

## 🚀 Instalación

Puedes instalar este paquete en tu proyecto con npm:
```sh
npm i -D @nugget-dev/code-standards
```

O ejecutarlo directamente con NPX:
```sh
npx @nd:scd
```
O bien:
```sh
npx @nugget-dev:setup-code-standards
```

## 🛠️ Desarrollo Local

Si deseas desarrollar o modificar este paquete localmente, sigue estos pasos:

1. **Clona el repositorio:**
    ```sh
    git clone <URL_DEL_REPO>
    cd code-standards
    ```
2. **Publica el paquete con `yalc`**:
    ```sh
    yalc publish
    ```
3. **En el repositorio donde deseas usarlo:**
    ```sh
    yalc add @nugget-dev/code-standards
    yalc link @nugget-dev/code-standards
    ```

## 📖 Detalles del Script

El script ejecutado por este paquete realiza los siguientes pasos:

1. **Configura Prettier**:
    - Agrega el archivo `.prettierrc` con las reglas del estándar.
    - Copia `.prettierignore` a la raíz del proyecto.

2. **Configura Commitlint**:
    - Copia `commitlint.config.cjs` para seguir el estándar de commits convencionales.
    - Instala `commitlint` y `husky`.

3. **Configura ESLint**:
    - Modifica `eslint.config.js` (o sus variantes `mjs`, `cjs`, `ts`, `mts`, `cts`) para agregar las reglas de linting del estándar.
    - Asegura que las reglas del paquete sean incluidas si no están presentes.

4. **Configura Husky**:
    - Inicializa Husky si no está presente.
    - Agrega hooks `pre-commit` y `commit-msg` con validaciones automáticas.

5. **Actualiza `.gitignore`**:
    - Asegura que `.idea/`, `.yalc/`, `public/`, `yalc.lock` y `package-lock.json` estén ignorados por Git.

## 🏗️ Contribuir
Si deseas contribuir, abre un issue o haz un pull request con mejoras y correcciones. ¡Tu ayuda es bienvenida! 🎉
npm package: @nuggetslife/vc-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@nuggetslife/vc`
Latest version: 0.0.29

# `@nuggetslife/vc-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@nuggetslife/vc`
npm package: @nuggetslife/vc-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@nuggetslife/vc`
Latest version: 0.0.29

# `@nuggetslife/vc-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@nuggetslife/vc`
npm package: @nuggetslife/vc-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@nuggetslife/vc`
Latest version: 0.0.29

# `@nuggetslife/vc-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@nuggetslife/vc`
npm package: @nuggetslife/vc-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@nuggetslife/vc`
Latest version: 0.0.29

# `@nuggetslife/vc-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@nuggetslife/vc`
npm package: @nuggetslife/vc-rn
Description: verifiable credential utils
Author: Harry Anderson
Latest version: 0.2.12

# @nuggetslife/vc

verifiable credential utils

## Installation

```sh
npm install @nuggetslife/vc
```

## Usage

```js
import { multiply } from '@nuggetslife/vc';

// ...

const result = await multiply(3, 7);
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @nuggetwise/cli
Description: Magic Nuggetwise CLI for Cursor IDE integration
Author: Magic Nuggetwise Team
Latest version: 1.8.0

# @nuggetwise/cli

Magic Nuggetwise CLI for Cursor IDE integration

## 🚀 Getting Started

### Prerequisites
- Node.js 18+ 
- npm or yarn

### Installation
```bash
npm install
```

### Development
```bash
npm run dev
```

### Build
```bash
npm run build
```

## 🎨 Components

This project uses Magic Nuggetwise for AI-powered component generation.

### Generated Components


### Adding New Components
Use the Magic Nuggetwise CLI to generate new components:

```bash
nw "A modern login form with email and password fields"
nw "A responsive navigation bar with mobile menu"
nw "A data table with sorting and pagination"
```

## 🛠️ Tech Stack

- **Framework**: React
- **Styling**: Tailwind CSS
- **Language**: TypeScript
- **Build Tool**: esbuild

## 📁 Project Structure

```
/Users/singhm/mcpnw/packages/cli/
├── src/
│   ├── components/     # React components
│   ├── pages/         # Page components
│   ├── styles/        # CSS files
│   └── utils/         # Utility functions
├── public/            # Static assets
└── package.json       # Dependencies
```

## 🤖 Magic Nuggetwise Integration

This project is enhanced with Magic Nuggetwise, an AI-powered component generation tool for Cursor IDE.

### Features
- 🎨 AI-powered component generation
- 📦 165+ pre-built components
- 🚀 One-click preview deployment
- 🔍 Component search and discovery
- 💰 Token-based usage tracking

### Commands
- `nw "description"` - Generate component
- `nw --readme` - Generate README
- `nw --analyze` - Analyze project
- `nw components` - List components
- `nw preview` - Deploy preview

## 📄 License

MIT

---

Built with ❤️ using [Magic Nuggetwise](https://nuggetwise.com)
npm package: @nugrhrizki/vanilla-query
Description: A React Query-like data fetching library for vanilla JavaScript/TypeScript applications
Author: mrrizkin
Latest version: 1.0.0

# VanillaQuery

A React Query-like data fetching and caching library for vanilla JavaScript/TypeScript applications.

## Features

- 📡 Async data fetching with automatic caching
- 🔄 Request deduplication and refetching
- ⚙️ Configurable retry logic
- 🪝 Rich lifecycle callbacks
- 🧠 Intelligent cache invalidation
- 🔄 Automatic refetching (on window focus, interval)
- 📝 TypeScript support
- 🔄 No dependencies

## Installation

```sh
npm install vanilla-query
```

or

```sh
pnpm add vanilla-query
```

## Basic Usage

```typescript
import { VanillaQuery } from 'vanilla-query'

// Create an instance
const queryClient = new VanillaQuery()

// Fetch and cache data
const usersQuery = queryClient.useQuery('users', async () => {
  const response = await fetch('https://api.example.com/users')
  return response.json()
})

// Subscribe to state changes
const unsubscribe = usersQuery.subscribe((state) => {
  if (state.isLoading) {
    console.log('Loading users...')
  } else if (state.isError) {
    console.error('Failed to load users:', state.error)
  } else if (state.isSuccess) {
    console.log('Users loaded:', state.data)
  }
})

// Manual refetch
button.addEventListener('click', () => {
  usersQuery.refetch()
})

// Cleanup subscription when done
// unsubscribe();
```

## API Reference

### `VanillaQuery` Class

The main class that provides all functionality.

```typescript
const queryClient = new VanillaQuery()
```

#### `useQuery(queryKey, queryFn, options)`

Creates a query instance for fetching and caching data.

- `queryKey`: Unique string identifier for the query
- `queryFn`: Async function that fetches the data
- `options`: Configuration options

```typescript
const query = queryClient.useQuery('users', fetchUsers, {
  staleTime: 60000,
  cacheTime: 300000,
  retry: 3,
})
```

#### `useMutation(mutationFn, options)`

Creates a mutation instance for updating data.

```typescript
const mutation = queryClient.useMutation(createUser, {
  onSuccess: (data) => {
    queryClient.invalidateQuery('users')
  },
})

// Use the mutation
mutation.mutate({ name: 'John Doe' })
```

#### Other Methods

- `prefetchQuery(queryKey, queryFn, options)`: Pre-fetch and cache data
- `getQueryData(queryKey)`: Get cached data directly
- `setQueryData(queryKey, data)`: Manually update cached data
- `removeQueryData(queryKey)`: Remove data from cache
- `clear()`: Clear all cached data and stop active queries

## Contributing

We welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) before submitting pull requests.

## Code of Conduct

By participating in this project, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md).

## License

[MIT](LICENSE)
npm package: @nugrhrizki/xpal
Description: Expression evaluator — recursive descent parser with extensible function registry
Author: mrrizkin
Latest version: 1.0.0

# xpal

Expression evaluator — recursive descent parser with extensible function registry.

## Features

- Parse and evaluate mathematical expressions
- Built-in functions: `SUM`, `AVG`, `MIN`, `MAX`, `ROUND`, `IF`, `ABS`, `CEIL`, `FLOOR`, `POWER`, `SQRT`, `LOG`, `LEN`, `UPPER`, `LOWER`, `TRIM`, `SUBSTRING`, `NOW`, `DATEADD`, `DATEDIFF`, `COALESCE`, `CONCAT`
- Custom function registration
- TypeScript support

## Installation

```bash
npm install xpal
```

## Usage

```ts
import { Evaluator } from '@nugrhrizki/xpal'

const ev = new Evaluator()

// Register a custom function
ev.register('TAX', ([amount, rate]) => Number(amount) * Number(rate) / 100)

// Evaluate with context and references
const result = ev.evaluate(
  'ROUND(TAX({price}, {tax_rate}), 2)',
  { current: { price: 150000, tax_rate: 11 } },
  [
    { variableName: 'price',    fieldKey: 'price',    aggregateFunction: 'none' },
    { variableName: 'tax_rate', fieldKey: 'tax_rate', aggregateFunction: 'none' },
  ]
)
// → { value: 16500, error: null }
```

### Using the default evaluator

```ts
import { evaluateExpression } from 'xpal'

const result = evaluateExpression(
  'SUM({a}, {b})',
  { current: { a: 10, b: 20 } },
  [
    { variableName: 'a', fieldKey: 'a', aggregateFunction: 'none' },
    { variableName: 'b', fieldKey: 'b', aggregateFunction: 'none' },
  ]
)
// → { value: 30, error: null }
```

## API

### `new Evaluator()`

Creates a new evaluator instance.

### `evaluator.register(name, fn, allowOverride?)`

Register a custom function. Name is case-insensitive.

```ts
ev.register('DOUBLE', ([x]) => Number(x) * 2)
```

### `evaluator.unregister(name)`

Remove a registered custom function.

### `evaluator.parse(expression)`

Parse an expression string into an AST. Cache this result for repeated evaluations.

### `evaluator.evaluate(ast, context, references)`

Evaluate a pre-parsed AST.

### `evaluator.evaluateExpression(expression, context, references)`

Parse + evaluate in one call.

### `evaluator.validate(expression, references)`

Validate an expression without a context. Returns `null` if valid, or an error message string.

## License

MIT
npm package: @nuhemugames/ai-studio-image-mcp
Description: Gemini 2.5 Flash Image (AI Studio / API key only) MCP server
Author: Your Name
Latest version: 2.0.4

# @your-scope/ai-studio-image-mcp

MCP server for image **generation / simple edit** using **Gemini 2.5 Flash Image (AI Studio / API key only)**.  
**Imagen や Vertex AI は完全に非対応**です。AI Studio の APIキーを使って、Claude Code から手軽に画像生成／編集ができます。

---

## Requirements
- Node.js 18+
- Claude CLI（最新推奨）
- `@google/genai` 0.11+ / `@modelcontextprotocol/sdk` 1.17+

---

## 🚀 Quick Start — AI Studio (Developer API 専用)

### 1) APIキーを取得
- [Google AI Studio](https://aistudio.google.com/) にログイン
- APIキーを発行
- ローカル環境に設定  
  ```powershell
  $env:GOOGLE_API_KEY="AIza..."
  ```

### 2) Claude へ登録（npx 経由）
```powershell
claude mcp add genai-image `
  npx @your-scope/ai-studio-image-mcp `
  -s user `
  -e GOOGLE_API_KEY=$env:GOOGLE_API_KEY
```

> 環境変数 `GOOGLE_GENAI_USE_VERTEXAI` や `GOOGLE_CLOUD_PROJECT` 等は不要です。

---

## Tools（引数サンプル）

### 1) `genai_generate_image`（画像生成）
```json
{
  "prompt": "美しい夕日、オレンジと紫のグラデーション、穏やかな海、地平線に沈む太陽、写実的、高品質",
  "model": "gemini-2.5-flash-image-preview",
  "output_mime_type": "image/png",
  "save_to_file": true,
  "filename_prefix": "sunset"
}
```

- `model` は省略可（既定: `gemini-2.5-flash-image-preview`）
- 生成画像は MCP の Base64 として返り、`save_to_file: true` を指定すると `./out/` にも保存されます。

### 2) `genai_inpaint_image`（簡易編集）
```json
{
  "prompt": "中央の人物を赤い傘を持った人に変更してください",
  "base_image_base64": "<元画像base64（data URL可）>",
  "model": "gemini-2.5-flash-image-preview",
  "output_mime_type": "image/png",
  "save_to_file": true,
  "filename_prefix": "edit"
}
```

- マスク編集やアップスケールは非対応です。
- **自然言語＋ベース画像1枚**で簡易的な置き換えや修正が可能です。

---

## Troubleshooting

- **`Missing GOOGLE_API_KEY`**  
  → 環境変数 `GOOGLE_API_KEY` が設定されていません。
- **`404 models/... not found`**  
  → Vertex用の環境変数 (`GOOGLE_GENAI_USE_VERTEXAI`, `GOOGLE_CLOUD_PROJECT`) が残っていないか確認してください。AI Studio専用版では不要です。
- **生成結果が無い**  
  → プロンプトを調整してください。`saved:` の行が出力されない場合はモデル応答が空です。

---

## 開発者向け（ローカル起動）

```powershell
npm install
npm run build
node dist/server.js
```

---

## License
MIT
npm package: @nuhemugames/genai-image-mcp
Description: Gemini 2.5 Flash Image (AI Studio / API key only) MCP server
Author: Your Name
Latest version: 2.0.6

# @your-scope/ai-studio-image-mcp

MCP server for image **generation / simple edit** using **Gemini 2.5 Flash Image (AI Studio / API key only)**.  
**Imagen や Vertex AI は完全に非対応**です。AI Studio の APIキーを使って、Claude Code から手軽に画像生成／編集ができます。

---

## Requirements
- Node.js 18+
- Claude CLI（最新推奨）
- `@google/genai` 0.11+ / `@modelcontextprotocol/sdk` 1.17+

---

## 🚀 Quick Start — AI Studio (Developer API 専用)

### 1) APIキーを取得
- [Google AI Studio](https://aistudio.google.com/) にログイン
- APIキーを発行
- ローカル環境に設定  
  ```powershell
  $env:GOOGLE_API_KEY="AIza..."
  ```

### 2) Claude へ登録（npx 経由）
```powershell
claude mcp add genai-image `
  npx @your-scope/ai-studio-image-mcp `
  -s user `
  -e GOOGLE_API_KEY=$env:GOOGLE_API_KEY
```

> 環境変数 `GOOGLE_GENAI_USE_VERTEXAI` や `GOOGLE_CLOUD_PROJECT` 等は不要です。

---

## Tools（引数サンプル）

### 1) `genai_generate_image`（画像生成）
```json
{
  "prompt": "美しい夕日、オレンジと紫のグラデーション、穏やかな海、地平線に沈む太陽、写実的、高品質",
  "model": "gemini-2.5-flash-image-preview",
  "output_mime_type": "image/png",
  "save_to_file": true,
  "filename_prefix": "sunset"
}
```

- `model` は省略可（既定: `gemini-2.5-flash-image-preview`）
- 生成画像は MCP の Base64 として返り、`save_to_file: true` を指定すると `./out/` にも保存されます。

### 2) `genai_inpaint_image`（簡易編集）
```json
{
  "prompt": "中央の人物を赤い傘を持った人に変更してください",
  "base_image_base64": "<元画像base64（data URL可）>",
  "model": "gemini-2.5-flash-image-preview",
  "output_mime_type": "image/png",
  "save_to_file": true,
  "filename_prefix": "edit"
}
```

- マスク編集やアップスケールは非対応です。
- **自然言語＋ベース画像1枚**で簡易的な置き換えや修正が可能です。

---

## Troubleshooting

- **`Missing GOOGLE_API_KEY`**  
  → 環境変数 `GOOGLE_API_KEY` が設定されていません。
- **`404 models/... not found`**  
  → Vertex用の環境変数 (`GOOGLE_GENAI_USE_VERTEXAI`, `GOOGLE_CLOUD_PROJECT`) が残っていないか確認してください。AI Studio専用版では不要です。
- **生成結果が無い**  
  → プロンプトを調整してください。`saved:` の行が出力されない場合はモデル応答が空です。

---

## 開発者向け（ローカル起動）

```powershell
npm install
npm run build
node dist/server.js
```

---

## License
MIT
npm package: @nuhounu/test12345
Description: - 这是一个用于测试在npm中发布包的操作 - 发布于：2025年11月28日 > ***未来希望我成为顶级的前端高手，嘿嘿嘿***
Latest version: 1.0.5

# 前言
- 这是一个用于测试在npm中发布包的操作
- 发布于：2025年11月28日
> ***未来希望我成为顶级的前端高手，嘿嘿嘿***
npm package: @nuid/cli
Description: CLI for interacting with NuID libraries and utilities
Author: NuID Developers
Latest version: 0.1.0

<p align="right"><a href="https://nuid.io"><img src="https://nuid.io/svg/logo.svg" width="20%"></a></p>

# NuID :: `node-cli`

The NuID `node-cli` provides an npm package at `@nuid/cli` with CLI interfaces
to NuID Open Core libraries like [`nuid.zk`](https://github.com/nuid/zk). We
expect the interface to the CLI to grow over time, so all commands are organized
with subcommands to invoke the proper functions.

## Install

```sh
npm install @nuid/cli
# or
yarn add @nuid/cli
```

## Usage

Since argument finagling is problematic on the shell, we require that you
JSON-encode the argument vector for any given command you are invoking.

``` sh
# Or just install it globally with `npm i -g @nuid/cli`
export PATH=$PATH:./node_modules/.bin

# Print a list of top-level commands
nuid-cli --help

# Print a list of available sub-commands for zk
nuid-cli zk --help

# Returns a JSON-encoded verified credential
# Note the JSON-encoded argument vector
nuid-cli zk verifiableFromSecret '["my secret"]'
```

With this CLI available, you can now write full integration tests with NuID
crypto material in languages other than JavaScript or Clojure. For example,
in [Ruby](https://github.com/NuID/sdk-ruby):

``` ruby
require "nuid-sdk"

class MyApiTest < ::Minitest::Test
  def test_credential_create
    api = ::NuID::SDK::API::Auth.new(ENV['NUID_API_KEY'])
    verified = zk('verifiableFromSecret', 'super secret password')
    res = api.credential_create(verified)
    assert_equal(201, res.code)
    nuid = res.parsed_response['nu/id']
    credential = res.parsed_response['nuid/credential']
    # ...
  end
  
  private
  
  def zk(command, *args)
    JSON.parse(%x{./node_modules/.bin/nuid-cli zk #{command} '#{args.to_json}'})
  end
end
```
npm package: @nuid/sdk-nodejs
Description: SDK for interacting with NuID APIs in Node.js
Author: NuID, Inc.
Latest version: 0.2.1

<p align="right"><a href="https://nuid.io"><img src="https://nuid.io/svg/logo.svg" width="20%"></a></p>

# NuID SDK for Node.js

[![](https://img.shields.io/npm/v/@nuid/sdk-nodejs?color=green&logo=npm&style=for-the-badge)](https://www.npmjs.com/package/@nuid/sdk-nodejs)
[![](https://img.shields.io/badge/docs-v0.2.1-blue?style=for-the-badge&logo=read-the-docs)](http://libdocs.s3-website-us-east-1.amazonaws.com/sdk-nodejs/v0.2.1/)
[![](https://img.shields.io/badge/docs-platform-purple?style=for-the-badge&logo=read-the-docs)](https://portal.nuid.io/docs)

This repo provides an npm package for interacting with NuID APIs within Node.js
applications.

Read the latest [package
docs](http://libdocs.s3-website-us-east-1.amazonaws.com/sdk-nodejs/v0.2.1/) or
checkout the [platform docs](https://portal.nuid.io/docs) for API docs, guides,
video tutorials, and more.

This package is written with typescript so you should be able to get valid type
definitions in your editor when importing this package. Using typescript is not
a requirement to use this package.

## Install

With [npm](https://www.npmjs.com/package/@nuid/sdk-nodejs):

```sh
npm install @nuid/sdk-nodejs
```

Or with yarn:

```sh
yarn add @nuid/sdk-nodejs
```

## Usage

Example server endpoint handled by [express](https://expressjs.com).

For a more detailed example visit the [Integrating with
NuID](https://portal.nuid.io/docs/guides/integrating-with-nuid) guide and its
accompanying [examples repository](https://github.com/NuID/examples/tree/main)
with a [Node.js + express.js
example](https://github.com/NuID/examples/blob/daf2a2820e8766871dcf720c02c4e4caa0181544/js-node/src/api.js#L44-L118)
.

```javascript
const express = require('express')
const nuidApi = require('@nuid/sdk-nodejs').default({
  auth: { apiKey: process.env.NUID_API_KEY }
})

const app = express()

// See links above for more complete examples
app.post('/register', (req, res) => {
  return Promise.resolve(req.body.verifiedCredential)
    .then(nuidApi.auth.credentialCreate)
    .then(res  => res.parsedBody['nu/id'])
    .then(nuid => User.create({ nuid, email, first_name, last_name }))
    .then(user => res.json({ user }).send(201))
    .catch(err => res.json({ errors: ["Failed to create credential"] }).send(500))
})

app.listen(process.env.PORT)
```
npm package: @nuilibrary/nui
Description: A Vue.js 3.0 UI library.
Author: Allen
Latest version: 1.0.3

# NUI

## Download & Use

### Download

```shell
npm install @nuilibrary/nui --save 
```

### Use

In the main file of the project

```javascript
import NUI from '@nuilibrary/nui';
import '@nuilibrary/nui/lib/nui.css';

/* Type 1 */
createApp(App).use(NUI).mount('#app');

/* Type 2 */
const nui = new NUI({ /* Your Options */});
createApp(App).use(nui).mount('#app');
```
npm package: @nuin/wormbase-mcp
Description: MCP server for WormBase REST API - access C. elegans and nematode biological data with natural language
Author: WormBase
Latest version: 0.1.0

# WormBase MCP Server

MCP server for querying [WormBase](https://wormbase.org) - the *C. elegans* and nematode genomics database.

## Installation

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "wormbase": {
      "command": "npx",
      "args": ["-y", "@nuin/wormbase-mcp"]
    }
  }
}
```

### Claude Code (CLI)

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "wormbase": {
      "command": "npx",
      "args": ["-y", "@nuin/wormbase-mcp"]
    }
  }
}
```

### Cursor

Add to Cursor settings (Settings > MCP Servers):

```json
{
  "wormbase": {
    "command": "npx",
    "args": ["-y", "@nuin/wormbase-mcp"]
  }
}
```

### Windsurf

Add to `~/.codeium/windsurf/mcp_config.json`:

```json
{
  "mcpServers": {
    "wormbase": {
      "command": "npx",
      "args": ["-y", "@nuin/wormbase-mcp"]
    }
  }
}
```

### From source

```bash
git clone https://github.com/WormBase/wormbase-mcp.git
cd wormbase-mcp
npm install && npm run build
```

Then use the local path in your config:

```json
{
  "mcpServers": {
    "wormbase": {
      "command": "node",
      "args": ["/path/to/wormbase-mcp/dist/index.js"]
    }
  }
}
```

## Usage

Just ask questions naturally:

- "What does daf-2 do?"
- "Search for genes involved in longevity"
- "Get phenotypes for unc-13"
- "Find interactions for lin-14"
- "What are the homologs of aap-1?"
- "Give me the sequence of protein CE29083"

## Tools

| Tool | Description |
|------|-------------|
| `search` | Search genes, proteins, phenotypes, strains |
| `get_gene` | Gene details (accepts names like `daf-2` or IDs like `WBGene00000898`) |
| `get_protein` | Protein sequences and domains |
| `get_phenotype` | Phenotype info and associated genes |
| `get_disease` | Human disease models |
| `get_strain` | Laboratory strains |
| `get_variation` | Alleles and mutations |
| `get_interactions` | Genetic and physical interactions |
| `get_expression` | Expression patterns |
| `get_ontology` | GO annotations |
| `get_paper` | Publication details |

## Data Sources

- **Search & name resolution**: [WormMine](https://wormmine.alliancegenome.org/wormmine)
- **Detailed data**: [WormBase REST API](http://rest.wormbase.org)

## License

MIT
npm package: @nuintun/css-deps
Description: Transform css and get css dependences.
Author: nuintun
Latest version: 2.2.1

# css-deps

> Transform css and get css dependences
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

### Api

* parseDependencies(code:String|Buffer, replace:Function, options:Object):Object
* parseDependencies(code:String|Buffer, options:Object):Object
  * options { media:Boolean, onpath:Function }
    * media: parse import media query
    * onpath: replace css resource file url

### Example

css:

```css
@import 'reset.css';
@import 'base.css';

html,
body {
  height: 100%;
  width: 100%;
  font-size: 13px;
  font-family: Microsoft Yahei, SimSun, sans-serif;
}
```

js:

```js
const parseDependencies = require('css-deps');
const dependencies = parseDependencies(source).dependencies;

// print dependencies
console.log(dependencies);
```

parser output:

```js
[{ path: 'reset.css', media: [] }, { path: 'base.css', media: [] }];
```

## License

[MIT](LICENSE)

[npm-image]: http://img.shields.io/npm/v/@nuintun/css-deps.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/css-deps
[download-image]: http://img.shields.io/npm/dm/@nuintun/css-deps.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/css-deps.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/css-deps
npm package: @nuintun/duplexer
Description: Creates a duplex stream.
Author: nuintun
Latest version: 1.1.1

# duplexer

> Creates a duplex stream
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

[npm-image]: https://img.shields.io/npm/v/@nuintun/duplexer.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/duplexer
[download-image]: https://img.shields.io/npm/dm/@nuintun/duplexer.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/duplexer.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/duplexer
npm package: @nuintun/fetch
Description: A pure JavaScript window.fetch polyfill.
Author: nuintun
Latest version: 1.1.2

# fetch

> A pure JavaScript window.fetch polyfill.
>
> [![NPM Version][npm-image]][npm-url]
> [![Dependencies][david-image]][david-url]

### Supports all mainstream browsers

> If not `CORS` support `IE >= 7` else support `IE >= 8`
>
> Notice: If `CORS` request IE8-9 use [XDomainRequest](https://developer.mozilla.org/en-US/docs/Web/API/XDomainRequest)

### Examples

> [examples/index.html](https://nuintun.github.io/fetch/examples/index.html)

### Thanks

> [GitHub/fetch](https://github.com/github/fetch)

[npm-image]: https://img.shields.io/npm/v/@nuintun/fetch.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/fetch
[david-image]: http://img.shields.io/david/dev/nuintun/fetch.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/fetch?type=dev
npm package: @nuintun/gulp-cmd
Description: A gulp plugin for cmd transport and concat.
Author: nuintun
Latest version: 3.0.0

# gulp-cmd

> A gulp plugin for cmd transport and concat
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

### Usage

```js
const path = require('path');
const join = path.join;
const relative = path.relative;
const gulp = require('gulp');
const cmd = require('@nuintun/gulp-cmd');
const alias = {
  'css-loader': 'util/css-loader/1.0.0/css-loader'
};

// Fixed css resource path
function onpath(path, property, file, wwwroot) {
  if (/^[^./\\]/.test(path)) {
    path = './' + path;
  }

  if (path.indexOf('.') === 0) {
    path = join(dirname(file), path);
    path = relative(wwwroot, path);
    path = '/' + path;
    path = path.replace(/\\+/g, '/');
  }

  path = path.replace('assets/', 'online/');

  return path;
}

// Task
gulp.task('default', function() {
  gulp
    .src('assets/js/**/*.js', { base: 'assets/js' })
    .pipe(
      cmd({
        alias: alias,
        base: '/assets/js',
        ignore: ['jquery'],
        css: { onpath: onpath }
      })
    )
    .pipe(gulp.dest('online/js'));
});
```

### API

#### cmd(options)

##### _options_

- root `String`

  网站根目录配置，路径相对于 `process.cwd()` 目录。

- base `String`

  网站资源根目录配置，路径相对于 `wwwroot` 目录（相当于 `seajs` 的 `base`）， 如果不填写默认等于 `root`。

- indent `Number`

  设置代码缩进，默认值： `0`。

- strict `Boolean`

  是否启用 `JavaScript` 严格模式，默认值： `true`。

- ignore `Array`

  模块合并需要忽略的依赖模块。

- alias `Object`

  当模块标识很长时，可以使用 `alias` 来简化。

- map `Function`

  配置模块 `ID` 映射。

- onbundle `Function`

  模块合并完成后回调函数。

- combine `Boolean|Function`

  是否合并模块。

- js `Object`

  配置 `js` 转换设置参数。

- css `Object`

  配置 `css` 转换设置参数。

- packagers `Object`

  自定义模块解析规则。

- plugins `Array[Object]`

  自定义模块转换插件，有 `moduleDidLoaded, moduleDidParsed, moduleDidTransformed, moduleDidCompleted` 四个生命周期提供调用处理。

[npm-image]: http://img.shields.io/npm/v/@nuintun/gulp-cmd.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/gulp-cmd
[download-image]: http://img.shields.io/npm/dm/@nuintun/gulp-cmd.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/gulp-cmd.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/gulp-cmd
npm package: @nuintun/gulp-cmd-plugins
Description: The gulp-cmd enhance plugins.
Author: nuintun
Latest version: 3.0.1

# gulp-cmd-plugins

> The gulp-cmd enhance plugins
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

[npm-image]: https://img.shields.io/npm/v/@nuintun/gulp-cmd-plugins.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/gulp-cmd-plugins
[download-image]: https://img.shields.io/npm/dm/@nuintun/gulp-cmd-plugins.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/gulp-cmd-plugins.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/gulp-cmd-plugins
npm package: @nuintun/gulp-css
Description: A gulp plugin for cmd transport and concat.
Author: nuintun
Latest version: 3.0.0

# gulp-css

> A gulp plugin for css transport and concat
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

### Usage

```js
const gulp = require('gulp');
const css = require('@nuintun/gulp-css');
const { join, relative } = require('path');

// Fixed css resource path
function onpath(path, property, file, wwwroot) {
  if (/^[^./\\]/.test(path)) {
    path = './' + path;
  }

  if (path.startsWith('.')) {
    path = join(dirname(file), path);
    path = relative(wwwroot, path);
    path = '/' + path;
    path = path.replace(/\\+/g, '/');
  }

  path = path.replace('assets/', 'online/');

  return path;
}

// Task
gulp.task('default', function() {
  gulp
    .src('assets/css/**/*.css')
    .pipe(css({ onpath: onpath }))
    .pipe(gulp.dest('online/css'));
});
```

### API

#### css(options)

##### _options_

- root `String`

  网站根目录。

- map `Function`

  配置模块 `ID` 映射（返回的映射字符串必须符合文件路径规则，会同步更新模块 `ID` 和 输出文件名）。

- combine `Boolean|Function`

  是否合并样式。

- onpath `Function`

  样式文件中的资源文件路径处理回调函数。

- onbundle `Function`

  模块合并完成后回调函数。

- plugins `Array[Object]`

  自定义模块转换插件，有 `moduleDidLoaded, moduleDidParsed, moduleDidCompleted` 三个生命周期提供调用处理。

[npm-image]: http://img.shields.io/npm/v/@nuintun/gulp-css.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/gulp-css
[download-image]: http://img.shields.io/npm/dm/@nuintun/gulp-css.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/gulp-css.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/gulp-css
npm package: @nuintun/gulp-css-plugins
Description: The gulp-css enhance plugins.
Author: nuintun
Latest version: 3.0.0

# gulp-css-plugins

> The gulp-css enhance plugins
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

[npm-image]: https://img.shields.io/npm/v/@nuintun/gulp-css-plugins.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/gulp-css-plugins
[download-image]: https://img.shields.io/npm/dm/@nuintun/gulp-css-plugins.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/gulp-css-plugins.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/gulp-css-plugins
npm package: @nuintun/gulp-util
Description: Utilities for gulp-cmd and gulp-css.
Author: nuintun
Latest version: 3.0.0

# gulp-util

> Utilities for gulp-cmd and gulp-css
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

[npm-image]: http://img.shields.io/npm/v/@nuintun/gulp-util.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/gulp-util
[download-image]: http://img.shields.io/npm/dm/@nuintun/gulp-util.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/gulp-util.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/gulp-util
npm package: @nuintun/linked-list
Description: A typescript array-like doubly linked list.
Author: nuintun
Latest version: 0.2.13

# LinkedList

<!-- prettier-ignore -->
> A typescript array-like doubly linked list.
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![License][license-image]][license-url]

### API

[See MDN Array API](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array)

[npm-image]: https://img.shields.io/npm/v/@nuintun/linked-list?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/linked-list
[download-image]: https://img.shields.io/npm/dm/@nuintun/linked-list?style=flat-square
[license-image]: https://img.shields.io/github/license/nuintun/LinkedList?style=flat-square
[license-url]: https://github.com/nuintun/LinkedList/blob/main/LICENSE
npm package: @nuintun/promise
Description: A pure JavaScript ES6 promise polyfill.
Author: nuintun
Latest version: 1.1.2

# promise

> A pure JavaScript ES6 promise polyfill.
>
> [![NPM Version][npm-image]][npm-url]
> [![Dependencies][david-image]][david-url]

# Examples

> [examples/index.html](https://nuintun.github.io/promise/examples/index.html)

### Thanks

> [Yahoo/ypromise](https://github.com/yahoo/ypromise)

### Notice

> If want to support IE <= 8, must use the file `promise.min.js`.

[npm-image]: https://img.shields.io/npm/v/@nuintun/promise.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/promise
[david-image]: http://img.shields.io/david/dev/nuintun/promise.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/promise?type=dev
npm package: @nuintun/svgo-loader
Description: svgo loader for webpack.
Author: nuintun
Latest version: 0.6.0

# svgo-loader

<!-- prettier-ignore -->
> svgo loader for webpack.
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Languages Status][languages-image]][github-url]
> [![Tree Shakeable][tree-shakeable-image]][bundle-phobia-url]
> [![Side Effect][side-effect-image]][bundle-phobia-url]
> [![License][license-image]][license-url]

## Install

```bash
pnpm add -D @nuintun/svgo-loader svgo
```

> You can also use `npm` or `yarn`.

## Usage

### Webpack

```js
// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.svg$/i,
        type: 'asset/resource',
        use: [
          {
            loader: '@nuintun/svgo-loader',
            options: {
              configFile: false,
              multipass: true,
              plugins: ['preset-default']
            }
          }
        ]
      }
    ]
  }
};
```

### Rspack

```js
// rspack.config.js
export default {
  module: {
    rules: [
      {
        test: /\.svg$/i,
        type: 'asset/resource',
        use: [
          {
            loader: '@nuintun/svgo-loader/rspack',
            options: {
              configFile: false,
              multipass: true,
              plugins: ['preset-default']
            }
          }
        ]
      }
    ]
  }
};
```

## Options

All SVGO options are supported (except `path`, which is handled internally by the loader).

### `configFile`

- Type: `string | false`
- Default: `undefined`

Control how loader reads SVGO config:

- `undefined`: auto load SVGO config from current context
- `string`: load SVGO config from a specific path
- `false`: disable external config file

### Common SVGO options

You can pass common SVGO options directly:

- `multipass`
- `floatPrecision`
- `plugins`
- `js2svg`
- `datauri`

See [SVGO configuration docs](https://github.com/svg/svgo#configuration).

## License

[MIT](./LICENSE)

[npm-image]: https://img.shields.io/npm/v/@nuintun/svgo-loader?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/svgo-loader
[download-image]: https://img.shields.io/npm/dm/@nuintun/svgo-loader?style=flat-square
[languages-image]: https://img.shields.io/github/languages/top/nuintun/svgo-loader?style=flat-square
[github-url]: https://github.com/nuintun/svgo-loader
[tree-shakeable-image]: https://img.shields.io/badge/tree--shakeable-true-brightgreen?style=flat-square
[side-effect-image]: https://img.shields.io/badge/side--effect-free-brightgreen?style=flat-square
[bundle-phobia-url]: https://bundlephobia.com/result?p=@nuintun/svgo-loader
[license-image]: https://img.shields.io/github/license/nuintun/svgo-loader?style=flat-square
[license-url]: https://github.com/nuintun/svgo-loader/blob/main/LICENSE
npm package: @nuintun/switch-stream
Description: A stream condition for switch/case.
Author: nuintun
Latest version: 1.1.1

# switch-stream

> A stream condition for switch/case
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

### Usage

![switch.png](https://raw.githubusercontent.com/nuintun/switch-stream/master/images/switch.png)

```js
const switchStream = require('switch-stream');

process.in
  .pipe(
    switchStream(
      buf => {
        if (buf > 0) {
          return 'case1';
        } else if (buf < 0) {
          return 'case2';
        }
      },
      {
        case1: streamA,
        case2: streamB
      }
    )
  )
  .pipe(process.stdout);
```

If buf great than 0, then pipe to streamA. If buf less than 0, then pipe to streamB. Otherwise buf equal to 0, pipe to output directly.

### API

#### switchStream(switch, cases, options)

* switch

  Switch condition determine which case will be choose.
  Switch can be any type, if switch is function, it will be called.

* cases

  Choose which stream will be piped to by key switch return.

* options
  The stream options settings.

### Reference

Modify from popomore's [stream-switch](https://github.com/popomore/stream-switch), but use stream3.

[npm-image]: https://img.shields.io/npm/v/@nuintun/switch-stream.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/switch-stream
[download-image]: https://img.shields.io/npm/dm/@nuintun/switch-stream.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/switch-stream.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/switch-stream
npm package: @nuintun/through
Description: A tiny wrapper around node streams transform to avoid explicit subclassing noise.
Author: nuintun
Latest version: 1.1.1

# through

> A tiny wrapper around node streams transform to avoid explicit subclassing noise
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Dependencies][david-image]][david-url]

[npm-image]: https://img.shields.io/npm/v/@nuintun/through.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/through
[download-image]: https://img.shields.io/npm/dm/@nuintun/through.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/through.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/through
npm package: @nuintun/uri
Description: A simple WHATWG URI parser.
Author: nuintun
Latest version: 0.2.5

# URI

<!-- prettier-ignore -->
> A simple WHATWG URI parser.
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Languages Status][languages-image]][github-url]
> [![Tree Shakeable][tree-shakeable-image]][bundle-phobia-url]
> [![Side Effect][side-effect-image]][bundle-phobia-url]
> [![License][license-image]][license-url]

```ts
/**
 * @module URI
 * @license MIT
 */
export interface ParseResult {
  [key: string]: string | null | (string | null)[];
}
/**
 * @class URI
 */
export declare class URI {
  protocol: string | null;
  slashes: string | null;
  username: string | null;
  password: string | null;
  hostname: string | null;
  port: string | null;
  pathname: string | null;
  query: ParseResult;
  fragment: ParseResult;
  /**
   * @constructor
   * @param URI
   */
  constructor(URI: string);
  /**
   * @property search
   * @method get
   */
  get search(): string;
  /**
   * @property hash
   * @method get
   */
  get hash(): string;
  /**
   * @method toURI
   */
  toURI(): string;
  /**
   * @method toString
   */
  toString(): string;
}
```

[npm-image]: https://img.shields.io/npm/v/@nuintun/uri?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/uri
[download-image]: https://img.shields.io/npm/dm/@nuintun/uri?style=flat-square
[languages-image]: https://img.shields.io/github/languages/top/nuintun/URI?style=flat-square
[github-url]: https://github.com/nuintun/URI
[tree-shakeable-image]: https://img.shields.io/badge/tree--shakeable-true-brightgreen?style=flat-square
[side-effect-image]: https://img.shields.io/badge/side--effect-free-brightgreen?style=flat-square
[bundle-phobia-url]: https://bundlephobia.com/result?p=@nuintun/uri
[license-image]: https://img.shields.io/github/license/nuintun/URI?style=flat-square
[license-url]: https://github.com/nuintun/URI/blob/main/LICENSE
npm package: @nuintun/use-virtual
Description: 😎 ♻️ A tiny React hook for rendering large datasets like a breeze.
Author: nuintun
Latest version: 0.2.0

# use-virtual

<!-- prettier-ignore -->
> 😎 ♻️ A tiny React hook for rendering large datasets like a breeze.
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> [![Languages Status][languages-image]][github-url]
> [![Tree Shakeable][tree-shakeable-image]][bundle-phobia-url]
> [![Side Effect][side-effect-image]][bundle-phobia-url]
> [![License][license-image]][license-url]

[npm-image]: https://img.shields.io/npm/v/@nuintun/use-virtual?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/use-virtual
[download-image]: https://img.shields.io/npm/dm/@nuintun/use-virtual?style=flat-square
[languages-image]: https://img.shields.io/github/languages/top/nuintun/use-virtual?style=flat-square
[github-url]: https://github.com/nuintun/use-virtual
[tree-shakeable-image]: https://img.shields.io/badge/tree--shakeable-true-brightgreen?style=flat-square
[side-effect-image]: https://img.shields.io/badge/side--effect-free-brightgreen?style=flat-square
[bundle-phobia-url]: https://bundlephobia.com/result?p=@nuintun/use-virtual
[license-image]: https://img.shields.io/github/license/nuintun/use-virtual?style=flat-square
[license-url]: https://github.com/nuintun/use-virtual/blob/main/LICENSE
npm package: @nuintun/webpack-manifest-plugin
Description: A webpack plugin for generating asset manifest.
Author: nuintun
Latest version: 0.0.2

# webpack-manifest-plugin

> A webpack plugin for generating asset manifest
>
> [![NPM Version][npm-image]][npm-url]
> [![Download Status][download-image]][npm-url]
> ![Node Version][node-image]
> [![Dependencies][david-image]][david-url]

### Thanks

> [danethurber/webpack-manifest-plugin](https://github.com/danethurber/webpack-manifest-plugin)

[npm-image]: https://img.shields.io/npm/v/@nuintun/webpack-manifest-plugin.svg?style=flat-square
[npm-url]: https://www.npmjs.org/package/@nuintun/webpack-manifest-plugin
[download-image]: http://img.shields.io/npm/dm/@nuintun/webpack-manifest-plugin.svg?style=flat-square
[node-image]: https://img.shields.io/node/v/@nuintun/webpack-manifest-plugin.svg?style=flat-square
[david-image]: http://img.shields.io/david/nuintun/webpack-manifest-plugin.svg?style=flat-square
[david-url]: https://david-dm.org/nuintun/webpack-manifest-plugin
npm package: @nuitral/core
Description: nuitral Core
Author: Nicola Centonze
Latest version: 0.0.1-beta.2

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="./media/logo-core-dark-mode.svg" width="150" height="150" />
    <source media="(prefers-color-scheme: light)" srcset="./media/logo-core-light-mode.svg" width="150" height="150" />
    <img src="./media/logo-core-dark-mode.svg" alt="nuitral core logo" width="150" height="150">
  </picture>
</p>

<p><b>nuitral core</b> is the foundational library of the <b>nuitral</b> suite and represents the core layer shared across all other libraries that expose UI components. 

<p><b>Status:</b> This project is currently in <b>alpha version</b>.</p>

---

### Progress status

| Status | Module / Component    | Description           |
|-------|-----------------------|-----------------------|
| ✅ | `nuitral-core-icon`   | Base Icon componente  |
| ✅ | `nuitral-core-input`  | Base Input component  |
| 🚧 | `nuitral-core-button` | Base Button component |
| 🕒 | `nuitral-core-tabs`   | Tab List component    |
| 🕒 | `nuitral-core-tab`    | Base Tab component    |
| 🕒 | `nuitral-core-card`   | Base Card component   |
| 🕒 | `nuitral-core-box`    | Base Box component    |

Legend:
- ✅ = completed
- 🚧 = in progress
- 🕒 = planned

---

### 🔗 Suite

This library is part of the **nuitral** suite, a native UI toolkit designed to build modern, flexible, and high-performance interfaces.

Explore the suite → https://nuitral.github.io

---

### License

This project is licensed under the [MIT License](https://github.com/nuitral/core/blob/main/LICENSE).

Copyright (c) 2025 **Nicola Centonze**
npm package: @nuitral/icons
Description: nuitral - Icons
Author: Nicola Centonze
Latest version: 0.0.1-alpha.2

<p align="center">
  <a href="https://nuitral.github.io/">
    <img src="https://avatars.githubusercontent.com/u/174748587?s=96&v=4" alt="nuitral logo">
  </a>
</p>

<h3>nuitral - Icons</h3>
<p>This library is part of the <b>nuitral</b> suite and provides a set of icons.</p>

Check out the official [nuitral](https://nuitral.github.io) suite page.

### License

This project is licensed under the [MIT License](https://github.com/nuitral/icons/blob/main/LICENSE).

Copyright (c) 2024 Nicola Centonze
npm package: @nuitral/react-ui-suite
Description: nuitral React UI Suite
Author: Nicola Centonze
Latest version: 0.0.1-beta.1

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="./media/react-suite-dark.png" height="150" />
    <source media="(prefers-color-scheme: light)" srcset="./media/react-suite-light.png"  height="150" />
    <img src="./media/react-suite-light.png" alt="nuitral core logo" height="150">
  </picture>
</p>


<p><b>nuitral React UI suite</b> provides a complete and native UI component suite for React projects.</p>

<p><b>Status:</b> This project is currently in <b>beta version</b>.</p>

---

### Progress status

| Status | Module / Component | Description      |
| ------ | ------------------ | ---------------- |
| ✅     | `NuitralBox`       | Box component    |
| ✅     | `NuitralButton`    | Button component |
| 🚧     | `NuitralCard`      | Card component   |
| 🚧     | `NuitralChip`      | Chip component   |
| ✅     | `NuitralIcon`      | Icon component   |
| ✅     | `NuitralInput`     | Input component  |
| 🕒     | `NuitralList`      | List component   |
| 🕒     | `NuitralSelect`    | Select component |
| ✅     | `NuitralTab`       | Tab component    |
| ✅     | `NuitralTabs`      | Tabs component   |

Legend:

- ✅ = completed
- 🚧 = in progress
- 🕒 = planned

---

### 🔗 Suite

This library is part of the **nuitral** suite, a native UI toolkit designed to build modern, flexible, and high-performance interfaces.

Explore the suite → https://nuitral.github.io

---

### License

This project is licensed under the [MIT License](https://github.com/nuitral/react-ui-suite/blob/main/LICENSE).

Copyright (c) 2026 **Nicola Centonze**