open-index/open-npm huggingface dataset:
npm package: @seamflux/gmail
Description: Gmail API node package for workflow-essential operations: send, get, list, reply, delete, mark read/unread messages; get/list labels; get/list threads.
Latest version: 2.1.36

# @wahack/gmail

Gmail API node package for workflow-essential operations: send, get, list, reply, delete, mark read/unread messages; get/list labels; get/list threads.

Uses Google OAuth2 or service account access token (Bearer). See `doc.json` for method parameters and schemas.
npm package: @seamflux/humanintheloop
Description: Human-in-the-loop helpers: wait for user approval, input, or wallet signatures.
Latest version: 0.0.31

# @wahack/humanintheloop

Human-in-the-loop helpers: wait for user approval, input, or wallet signatures.

## Methods (skeleton)

| Method | Description |
|--------|-------------|
| `awaitApproval` | Wait for user to approve or reject (yes/no, continue/cancel). |
| `awaitInput` | Wait for user input (text, choice, or structured). |
| `awaitSignTransaction` | Wait for user to sign a transaction in their wallet (e.g. MetaMask Confirm). |
| `awaitSignMessage` | Wait for user to sign a message or EIP-712 typed data (order, permit). |

## Install

```bash
pnpm add @wahack/humanintheloop
```

## Usage

```ts
import { awaitApproval, awaitInput, awaitSignTransaction, awaitSignMessage } from '@wahack/humanintheloop';

// Stubs: currently throw "not implemented". Wire to n8n resume, webhook, or wallet UI.
await awaitApproval({ message: 'Proceed?' });
await awaitInput({ prompt: 'Enter amount' });
await awaitSignTransaction({ wallet, transaction });
await awaitSignMessage({ wallet, typedData: { domain, types, message, primaryType } });
```

## Status

Skeleton only. Implementations are TODO (n8n resume, HTTP webhook, or in-process callbacks; sign methods via `wallet.signTransaction` / `wallet.signTypedData`).
npm package: @seamflux/predictdotfun
Description: Predict.fun prediction market integration package.
Latest version: 1.0.1

Predict.fun prediction market integration package.

## Overview

This package provides integration with the Predict.fun prediction market protocol on BNB Chain.

**Environment**: Mainnet (`https://api.predict.fun`)


## Important Notes

### 1. API Key Requirement (Mainnet Only)

- **Mainnet**: API key is **required** for all authenticated operations

### 2. Authentication Flow (JWT)

Predict.fun uses JWT tokens for user authentication. Simply call `getJwtToken()` with your sign function:

```
getJwtToken({ signMessage }) → JWT Token → Use for API calls
```

JWT tokens expire and need to be refreshed periodically.

### 3. Order Creation

Use `createOrder()` to create and submit an order in one step. You only need to provide:
- Order details (market, side, size, price)
- Your wallet address
- A signing function

### 4. LIMIT vs MARKET Orders

- **LIMIT Order**: Set your own price. Order stays open until filled or cancelled.
- **MARKET Order**: Execute immediately at current market price. Requires orderbook data.

## Quick Start: Creating an Order

```typescript
// 1. Authenticate (once per session)
const { token: jwtToken } = await getJwtToken({
  apiKey: 'your-api-key',
  address: wallet.address,
  signMessage: (msg) => wallet.signMessage(msg),
});

// 2. Create a LIMIT order
const order = await createOrder({
  apiKey: 'your-api-key',
  jwtToken,
  marketId: 123,
  outcomeIndex: 0,        // 0 = YES, 1 = NO
  side: 'BUY',
  strategy: 'LIMIT',
  size: '10000000000000000000',  // 10 shares (wei)
  price: '0.5',
  maker: wallet.address,
  signer: wallet.address,
  signTypedData: (domain, types, message) => wallet.signTypedData(domain, types, message),
});

console.log('Order created:', order.orderId);
```

### Creating a MARKET Order

```typescript
const order = await createOrder({
  apiKey: 'your-api-key',
  jwtToken,
  marketId: 123,
  outcomeIndex: 0,
  side: 'BUY',
  strategy: 'MARKET',     // Execute immediately
  size: '10000000000000000000',
  maker: wallet.address,
  signer: wallet.address,
  signTypedData: (domain, types, message) => wallet.signTypedData(domain, types, message),
});
```

## Cancelling Orders

```typescript

// Cancel single order
await cancelOrder({ apiKey: 'your-api-key', jwtToken, orderId: 'order-id' });

// Cancel multiple orders
await cancelOrders({ apiKey: 'your-api-key', jwtToken, orderIds: ['order-1', 'order-2'] });

// Cancel all orders
await cancelAllOrders({ apiKey: 'your-api-key', jwtToken });

// Cancel all orders for a specific market
await cancelAllOrders({ apiKey: 'your-api-key', jwtToken, marketId: 123 });
```

## Key Differences from Polymarket

| Aspect | Predict.fun | Polymarket |
|--------|-------------|------------|
| Auth | API Key + JWT | HMAC-SHA256 |
| Chain | BNB Chain | Polygon |
| Order Cancel | Via API | Via chain (gasless relayer) |
| Main Token | USDT | USDC |

## Rate Limits

- Mainnet: 240 requests per minute per API key
npm package: @seamflux/supabase
Description: Supabase node package for kamechan-nodes. Provides row CRUD operations against Supabase (PostgREST) tables.
Latest version: 2.1.36

# @wahack/supabase

Supabase node package for kamechan-nodes. Provides row CRUD operations against Supabase (PostgREST) tables.

**Credentials:** `host` (Supabase project URL, e.g. `https://xxxx.supabase.co`) and `serviceRole` (service role API key). Pass them as method parameters for each call.