open-index/open-npm huggingface dataset:
npm package: @flowrag/cli
Description: 💻 Command-line interface for FlowRAG - index documents and search from your terminal
Author: Zweer
Latest version: 0.4.3

# @flowrag/cli

Command-line interface for FlowRAG — index documents and search from your terminal.

## Installation

```bash
npm install -g @flowrag/cli
```

## Commands

```bash
# Initialize data directory
flowrag init

# Index documents
flowrag index ./content
flowrag index ./content --force          # Re-index all
flowrag index ./content --interactive    # Review entities

# Search
flowrag search "how does OCPP work"
flowrag search "OCPP" --type entities
flowrag search "query" --mode local --limit 20

# Knowledge graph
flowrag graph stats
flowrag graph export

# Statistics
flowrag stats
```

## Configuration

Create `flowrag.json` or `.flowrag.json` in your project root:

```json
{
  "entityTypes": ["SERVICE", "DATABASE", "PROTOCOL"],
  "relationTypes": ["USES", "PRODUCES", "CONSUMES"]
}
```

## License

MIT
npm package: @flowrag/core
Description: 📐 Core interfaces, types, and schema definition for FlowRAG
Author: Zweer
Latest version: 1.8.1

# @flowrag/core

Interfaces, schema definition, and types for FlowRAG.

## Installation

```bash
npm install @flowrag/core
```

## Usage

### Schema Definition

```typescript
import { defineSchema } from '@flowrag/core';

const schema = defineSchema({
  entityTypes: ['SERVICE', 'DATABASE', 'PROTOCOL'],
  relationTypes: ['USES', 'PRODUCES', 'CONSUMES'],
});

schema.isValidEntityType('SERVICE');     // true
schema.normalizeEntityType('UNKNOWN');   // 'Other'
```

### Custom Fields

```typescript
const schema = defineSchema({
  entityTypes: ['SERVICE', 'DATABASE'],
  relationTypes: ['USES', 'PRODUCES'],
  entityFields: {
    status: { type: 'enum', values: ['active', 'deprecated'], default: 'active' },
  },
  relationFields: {
    syncType: { type: 'enum', values: ['sync', 'async'] },
  },
});
```

## Interfaces

- `KVStorage` — key-value storage (documents, chunks, cache)
- `VectorStorage` — vector embeddings for semantic search
- `GraphStorage` — knowledge graph (entities, relations, traversal)
- `Embedder` — text to vector embeddings
- `LLMExtractor` — entity/relation extraction via LLM
- `Reranker` — post-retrieval result reranking

## License

MIT
npm package: @flowrag/mcp
Description: 🤖 MCP server for FlowRAG - expose your knowledge base to AI assistants
Author: Zweer
Latest version: 0.5.0

# @flowrag/mcp

MCP (Model Context Protocol) server for FlowRAG. Exposes your knowledge base to AI assistants like Claude, Kiro, and Copilot.

## Quick Start

```bash
npx @flowrag/mcp --data ./data --docs ./content
```

Or with a config file:

```bash
npx @flowrag/mcp --config ./flowrag.config.json
```

## Configuration

Create `flowrag.config.json`:

```json
{
  "data": "./data",
  "docs": "./content",
  "schema": {
    "entityTypes": ["SERVICE", "DATABASE", "PROTOCOL"],
    "relationTypes": ["USES", "PRODUCES", "CONSUMES"]
  },
  "embedder": { "provider": "local" },
  "extractor": { "provider": "gemini" }
}
```

API keys go in `.env` (auto-loaded from config directory or cwd):

```bash
GEMINI_API_KEY=your-key-here
```

### CLI Flags

| Flag | Description | Default |
|------|-------------|---------|
| `--config <path>` | Config file path | `./flowrag.config.json` |
| `--data <path>` | Data directory | `./data` |
| `--docs <path>` | Documents directory | — |

Priority: CLI flags > config file > defaults.

## AI Assistant Setup

### Claude Desktop / Kiro

Add to `mcp.json`:

```json
{
  "mcpServers": {
    "flowrag": {
      "command": "npx",
      "args": ["@flowrag/mcp", "--config", "/path/to/flowrag.config.json"]
    }
  }
}
```

## Tools

| Tool | Description |
|------|-------------|
| `flowrag_index` | Index documents into the knowledge base |
| `flowrag_search` | Search with dual retrieval (vector + graph) |
| `flowrag_entities` | List or filter entities in the knowledge graph |
| `flowrag_relations` | Get relations for a specific entity |
| `flowrag_trace` | Trace data flow upstream or downstream |
| `flowrag_path` | Find shortest path between two entities |
| `flowrag_stats` | Get index statistics |

## Resources

| Resource | Description |
|----------|-------------|
| `flowrag://schema` | Current schema definition (JSON) |

## Config Change Detection

After indexing, a `flowrag.meta.json` is saved in the data directory. On startup, the server compares the current config with metadata and warns about:

- **Breaking**: Embedder changed → re-index required
- **Minor**: Schema or extractor changed → new types apply on next index

## Remote / HTTP Mode

Run as a centralized HTTP server for team use:

```json
{
  "transport": "http",
  "port": 3000,
  "auth": { "token": "${FLOWRAG_AUTH_TOKEN}" },
  "storage": {
    "kv": { "provider": "redis", "url": "redis://redis.internal:6379" },
    "vector": { "provider": "opensearch", "node": "https://os:9200", "dimensions": 1024 },
    "graph": { "provider": "opensearch", "node": "https://os:9200" }
  }
}
```

Clients connect via URL:

```json
{
  "mcpServers": {
    "flowrag": {
      "url": "https://flowrag.company.com/mcp",
      "headers": { "Authorization": "Bearer ${FLOWRAG_TOKEN}" }
    }
  }
}
```

A Dockerfile is included for Fargate/ECS deployment. See the [deployment guide](https://zweer.github.io/FlowRAG/deployment/remote-mcp) for details.

## License

MIT
npm package: @flowrag/pipeline
Description: ⚙️ Core pipeline for FlowRAG - indexing and querying with dual retrieval (vector + graph)
Author: Zweer
Latest version: 1.9.2

# @flowrag/pipeline

Indexing and querying pipelines for FlowRAG with dual retrieval (vector + graph).

## Installation

```bash
npm install @flowrag/pipeline
```

## Usage

```typescript
import { createFlowRAG } from '@flowrag/pipeline';
import { createLocalStorage } from '@flowrag/presets';
import { defineSchema } from '@flowrag/core';

const schema = defineSchema({
  entityTypes: ['SERVICE', 'DATABASE'],
  relationTypes: ['USES', 'PRODUCES'],
});

const rag = createFlowRAG({ schema, ...createLocalStorage('./data') });

// Index documents
await rag.index('./content');

// Search with dual retrieval
const results = await rag.search('how does auth work');

// Trace data flow
const flow = await rag.traceDataFlow('auth-service', 'downstream');

// Statistics
const stats = await rag.stats();
```

## Query Modes

- `hybrid` — vector + graph combined (default)
- `local` — focus on specific entities found in query
- `global` — high-level concepts enriched with graph keywords
- `naive` — vector search only, no knowledge graph

## Indexing Pipeline

Files → Scanner → Chunker → Extractor (LLM) → Embedder → Storage

- Incremental indexing (SHA-256 content hashing)
- LLM extraction caching
- Configurable concurrency

## License

MIT
npm package: @flowrag/presets
Description: 📦 Opinionated presets for FlowRAG - local and AWS storage setups in one call
Author: Zweer
Latest version: 1.5.0

# @flowrag/presets

Opinionated presets for FlowRAG to get started quickly.

## Installation

```bash
npm install @flowrag/presets
```

## Usage

### Local Development (LanceDB)

```typescript
import { createFlowRAG, defineSchema } from '@flowrag/core';
import { createLocalStorage } from '@flowrag/presets';

const schema = defineSchema({
  entityTypes: ['SERVICE', 'DATABASE'],
  relationTypes: ['USES', 'PRODUCES'],
});

const rag = await createFlowRAG({
  schema,
  ...createLocalStorage(), // Uses './data' by default
});
```

### Local Development (SQLite — lightweight)

```typescript
import { createSQLiteStorage } from '@flowrag/presets';

const rag = await createFlowRAG({
  schema,
  ...createSQLiteStorage('./data'),
});
```

Uses sqlite-vec for vector search instead of LanceDB — smaller native binaries (~2MB vs ~50MB).

### Custom Path

```typescript
const rag = await createFlowRAG({
  schema,
  ...createLocalStorage('./my-data'),
  // or: ...createLocalStorage({ path: './my-data' }),
});
```

### Override Components

```typescript
import { GeminiEmbedder } from '@flowrag/provider-gemini';

const rag = await createFlowRAG({
  schema,
  ...createLocalStorage({
    path: './data',
    embedder: new GeminiEmbedder(), // Use Gemini instead of local ONNX
  }),
});
```

## What's Included

### `createLocalStorage()`

- **KV Storage**: JSON files (`./data/kv/`)
- **Vector Storage**: LanceDB (`./data/vectors/`)
- **Graph Storage**: SQLite (`./data/graph.db`)
- **Embedder**: Local ONNX (Xenova/e5-small-v2)
- **Extractor**: Gemini (gemini-3-flash-preview)

### `createSQLiteStorage()`

- **KV Storage**: JSON files (`./data/kv/`)
- **Vector Storage**: SQLite + sqlite-vec (`./data/vectors.db`)
- **Graph Storage**: SQLite (`./data/graph.db`)
- **Embedder**: Local ONNX (Xenova/e5-small-v2)
- **Extractor**: Gemini (gemini-3-flash-preview)

## API

### `createLocalStorage(options?)`

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `path` | `string` | `'./data'` | Base path for storage |
| `kv` | `KVStorage` | `JsonKVStorage` | Override KV storage |
| `vector` | `VectorStorage` | `LanceDBVectorStorage` | Override vector storage |
| `graph` | `GraphStorage` | `SQLiteGraphStorage` | Override graph storage |
| `embedder` | `Embedder` | `LocalEmbedder` | Override embedder |
| `extractor` | `LLMExtractor` | `GeminiExtractor` | Override extractor |

### `createSQLiteStorage(options?)`

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `path` | `string` | `'./data'` | Base path for storage |
| `dimensions` | `number` | `384` | Vector dimensions (must match embedder) |
| `kv` | `KVStorage` | `JsonKVStorage` | Override KV storage |
| `vector` | `VectorStorage` | `SQLiteVectorStorage` | Override vector storage |
| `graph` | `GraphStorage` | `SQLiteGraphStorage` | Override graph storage |
| `embedder` | `Embedder` | `LocalEmbedder` | Override embedder |
| `extractor` | `LLMExtractor` | `GeminiExtractor` | Override extractor |
npm package: @flowrag/provider-anthropic
Description: 🎭 Anthropic provider for FlowRAG - entity extraction and reranking via Claude
Author: Zweer
Latest version: 0.2.3

# @flowrag/provider-anthropic

Anthropic provider for FlowRAG — entity extraction and reranking via Claude.

> Anthropic does not offer an embedding model. Use a different provider for embeddings (e.g., Local, Gemini, OpenAI, or Bedrock).

## Installation

```bash
npm install @flowrag/provider-anthropic
```

## Usage

### Extractor

```typescript
import { AnthropicExtractor } from '@flowrag/provider-anthropic';

const extractor = new AnthropicExtractor({
  model: 'claude-haiku-4-5-20251001', // default
});
```

### Reranker

```typescript
import { AnthropicReranker } from '@flowrag/provider-anthropic';

const reranker = new AnthropicReranker();
```

### Model Constants

```typescript
import { AnthropicLLMModels } from '@flowrag/provider-anthropic';

AnthropicLLMModels.CLAUDE_HAIKU_4_5;  // 'claude-haiku-4-5-20251001'
AnthropicLLMModels.CLAUDE_SONNET_4_6; // 'claude-sonnet-4-6'
AnthropicLLMModels.CLAUDE_OPUS_4_6;   // 'claude-opus-4-6'
```

## Environment Variables

```bash
ANTHROPIC_API_KEY=your-key
```

## License

MIT
npm package: @flowrag/provider-bedrock
Description: 🪨 AWS Bedrock provider for FlowRAG - embeddings, entity extraction, and reranking
Author: Zweer
Latest version: 0.5.1

# @flowrag/provider-bedrock

AWS Bedrock provider for FlowRAG — embeddings, entity extraction, and reranking.

## Installation

```bash
npm install @flowrag/provider-bedrock @aws-sdk/client-bedrock-runtime
```

## Usage

```typescript
import { BedrockEmbedder, BedrockExtractor, BedrockReranker } from '@flowrag/provider-bedrock';

const embedder = new BedrockEmbedder();   // amazon.titan-embed-text-v2:0
const extractor = new BedrockExtractor(); // anthropic.claude-haiku-4-5
const reranker = new BedrockReranker();   // amazon.rerank-v1:0
```

## Configuration

Uses standard AWS credentials (env vars, IAM role, SSO profile):

```bash
export AWS_REGION=eu-central-1
```

## License

MIT
npm package: @flowrag/provider-gemini
Description: ♊ Gemini provider for FlowRAG - embeddings, entity extraction, and reranking
Author: Zweer
Latest version: 1.5.4

# @flowrag/provider-gemini

Gemini AI provider for FlowRAG — embeddings, entity extraction, and reranking.

## Installation

```bash
npm install @flowrag/provider-gemini
```

## Usage

### Embedder

```typescript
import { GeminiEmbedder } from '@flowrag/provider-gemini';

const embedder = new GeminiEmbedder({
  apiKey: 'your-gemini-api-key', // or set GEMINI_API_KEY env var
  model: 'gemini-embedding-001', // optional, default
});

// Single embedding
const embedding = await embedder.embed('Hello world');

// Batch embeddings
const embeddings = await embedder.embedBatch(['Hello', 'World']);
```

### Extractor

```typescript
import { GeminiExtractor } from '@flowrag/provider-gemini';
import { defineSchema } from '@flowrag/core';

const extractor = new GeminiExtractor({
  apiKey: 'your-gemini-api-key', // or set GEMINI_API_KEY env var
  model: 'gemini-3-flash-preview', // optional, default
  temperature: 0.1, // optional, default
});

const schema = defineSchema({
  entityTypes: ['SERVICE', 'DATABASE'],
  relationTypes: ['USES', 'PRODUCES'],
});

const result = await extractor.extractEntities(
  'ServiceA connects to DatabaseB',
  ['ServiceC'], // known entities
  schema
);
```

## Environment Variables

```bash
GEMINI_API_KEY=your-api-key
```

## Reranker

```typescript
import { GeminiReranker } from '@flowrag/provider-gemini';

const reranker = new GeminiReranker();
```

## License

MIT
npm package: @flowrag/provider-local
Description: 🏠 Local AI provider for FlowRAG - ONNX embeddings and reranking, fully offline
Author: Zweer
Latest version: 1.5.3

# @flowrag/provider-local

Local AI provider for FlowRAG — ONNX embeddings and reranking, fully offline.

## Installation

```bash
npm install @flowrag/provider-local
```

## Usage

### Embedder

```typescript
import { LocalEmbedder } from '@flowrag/provider-local';

const embedder = new LocalEmbedder({
  model: 'Xenova/e5-small-v2', // optional, default
  dtype: 'q8', // optional: 'fp32', 'q8', 'q4'
  device: 'auto', // optional: 'auto', 'cpu', 'gpu'
});

// Single embedding
const embedding = await embedder.embed('Hello world');

// Batch embeddings
const embeddings = await embedder.embedBatch(['Hello', 'World']);
```

## Supported Models

- `Xenova/e5-small-v2` (384 dims) - Default, fast
- `Xenova/e5-base-v2` (768 dims) - Better quality
- `Xenova/e5-large-v2` (1024 dims) - Best quality
- `Xenova/all-MiniLM-L6-v2` (384 dims) - Compact
- `Xenova/all-mpnet-base-v2` (768 dims) - Good balance

## Reranker

```typescript
import { LocalReranker } from '@flowrag/provider-local';

const reranker = new LocalReranker();
// Uses Xenova/ms-marco-MiniLM-L-6-v2 cross-encoder
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `HF_HOME` | Custom cache directory for downloaded models | `node_modules/@huggingface/transformers/.cache/` |

## License

MIT
npm package: @flowrag/provider-openai
Description: 🧠 OpenAI provider for FlowRAG - embeddings, entity extraction, and reranking
Author: Zweer
Latest version: 0.3.4

# @flowrag/provider-openai

OpenAI provider for FlowRAG — embeddings, entity extraction, and reranking. Works with any OpenAI-compatible endpoint.

## Installation

```bash
npm install @flowrag/provider-openai
```

## Usage

### Embedder

```typescript
import { OpenAIEmbedder } from '@flowrag/provider-openai';

const embedder = new OpenAIEmbedder({
  model: 'text-embedding-3-small', // default
  dimensions: 1536,                // default
});
```

### Extractor

```typescript
import { OpenAIExtractor } from '@flowrag/provider-openai';

const extractor = new OpenAIExtractor({
  model: 'gpt-5-mini', // default
});
```

### Reranker

```typescript
import { OpenAIReranker } from '@flowrag/provider-openai';

const reranker = new OpenAIReranker();
```

### OpenAI-Compatible Endpoints

All classes accept a `baseURL` option for Ollama, Azure OpenAI, vLLM, Together, Groq, etc.:

```typescript
const embedder = new OpenAIEmbedder({
  baseURL: 'http://localhost:11434/v1', // Ollama
  model: 'nomic-embed-text',
  dimensions: 768,
});
```

### Model Constants

```typescript
import { OpenAIEmbeddingModels, OpenAILLMModels } from '@flowrag/provider-openai';

OpenAIEmbeddingModels.TEXT_EMBEDDING_3_SMALL; // 'text-embedding-3-small'
OpenAILLMModels.GPT_5_MINI;                  // 'gpt-5-mini'
```

## Environment Variables

```bash
OPENAI_API_KEY=your-key
```

## License

MIT
npm package: @flowrag/storage-json
Description: 📄 JSON file KV storage for FlowRAG - documents, chunks, and cache as Git-friendly files
Author: Zweer
Latest version: 1.1.4

# @flowrag/storage-json

KV storage implementation using JSON files on disk. Git-friendly, human-readable.

## Installation

```bash
npm install @flowrag/storage-json
```

## Usage

```typescript
import { JsonKVStorage } from '@flowrag/storage-json';

const kv = new JsonKVStorage({ path: './data/kv' });

await kv.set('doc:readme', { content: 'Hello world' });
const doc = await kv.get('doc:readme');
const keys = await kv.list('doc:');
await kv.delete('doc:readme');
await kv.clear();
```

## Storage Layout

```
data/kv/
├── doc:readme.json
├── chunk:readme:0.json
├── extraction:a1b2c3.json    # LLM cache
└── docHash:doc:readme.json   # Incremental indexing
```

## License

MIT
npm package: @flowrag/storage-opensearch
Description: 🔎 OpenSearch storage for FlowRAG - vector search and knowledge graph on OpenSearch
Author: Zweer
Latest version: 0.3.1

# @flowrag/storage-opensearch

OpenSearch storage for FlowRAG — vector search and knowledge graph on OpenSearch.

## Installation

```bash
npm install @flowrag/storage-opensearch @opensearch-project/opensearch
```

## Usage

```typescript
import { Client } from '@opensearch-project/opensearch';
import { OpenSearchVectorStorage, OpenSearchGraphStorage } from '@flowrag/storage-opensearch';

const client = new Client({ node: 'https://my-domain.es.amazonaws.com' });

const vector = new OpenSearchVectorStorage({ client, dimensions: 384 });
const graph = new OpenSearchGraphStorage({ client });
```

## License

MIT
npm package: @flowrag/storage-redis
Description: ⚡ Redis storage for FlowRAG - KV and vector storage on Redis Stack
Author: Zweer
Latest version: 0.4.2

# @flowrag/storage-redis

Redis storage for FlowRAG — KV and vector storage on Redis Stack.

## Installation

```bash
npm install @flowrag/storage-redis redis
```

Requires [Redis Stack](https://redis.io/docs/getting-started/install-stack/) for vector storage.

## Usage

### KV Storage

```typescript
import { createClient } from 'redis';
import { RedisKVStorage } from '@flowrag/storage-redis';

const client = createClient({ url: 'redis://localhost:6379' });
await client.connect();

const kv = new RedisKVStorage({ client });
```

### Vector Storage

```typescript
import { RedisVectorStorage } from '@flowrag/storage-redis';

const vector = new RedisVectorStorage({ client, dimensions: 384 });
```

### Preset

```typescript
import { createRedisStorage } from '@flowrag/storage-redis';

const { kv, vector } = await createRedisStorage({
  url: 'redis://localhost:6379',
  dimensions: 384,
});
```

## License

MIT
npm package: @flowrag/storage-s3
Description: ☁️ S3 KV storage for FlowRAG - store documents, chunks, and cache on Amazon S3
Author: Zweer
Latest version: 0.3.3

# @flowrag/storage-s3

S3 KV storage for FlowRAG — store documents, chunks, and cache on Amazon S3.

## Installation

```bash
npm install @flowrag/storage-s3 @aws-sdk/client-s3
```

## Usage

```typescript
import { S3Client } from '@aws-sdk/client-s3';
import { S3KVStorage } from '@flowrag/storage-s3';

const kv = new S3KVStorage({
  client: new S3Client({ region: 'eu-central-1' }),
  bucket: 'my-rag-bucket',
  prefix: 'kv/',
});

await kv.set('doc:readme', { content: 'Hello world' });
const doc = await kv.get('doc:readme');
const keys = await kv.list('doc:');
```

## License

MIT
npm package: @flowrag/storage-sqlite
Description: 🗃️ SQLite graph and vector storage for FlowRAG - knowledge graph with traversal, path finding, and vector search via sqlite-vec
Author: Zweer
Latest version: 1.5.0

# @flowrag/storage-sqlite

Graph and vector storage implementation using SQLite. Embedded, fast, versionable.

## Installation

```bash
npm install @flowrag/storage-sqlite
```

## Graph Storage

```typescript
import { SQLiteGraphStorage } from '@flowrag/storage-sqlite';

const graph = new SQLiteGraphStorage({ path: './data/graph.db' });

await graph.addEntity({ id: 'auth', name: 'Auth Service', type: 'SERVICE', description: '...', sourceChunkIds: [] });
await graph.addRelation({ id: 'r1', sourceId: 'auth', targetId: 'postgres', type: 'USES', description: '...', keywords: ['db'], sourceChunkIds: [] });

const entity = await graph.getEntity('auth');
const relations = await graph.getRelations('auth', 'out');
const path = await graph.findPath('auth', 'dashboard');
const neighbors = await graph.traverse('auth', 2);
```

## Vector Storage

Lightweight vector search via [sqlite-vec](https://github.com/asg017/sqlite-vec) — a pure-C SQLite extension with KNN support.

```typescript
import { SQLiteVectorStorage } from '@flowrag/storage-sqlite';

const vector = new SQLiteVectorStorage({
  path: './data/vectors.db',
  dimensions: 384, // must match your embedder
});

await vector.upsert([{ id: 'chunk-1', vector: [0.1, 0.2, ...], metadata: { _kind: 'chunk' } }]);
const results = await vector.search([0.1, 0.2, ...], 10, { _kind: 'chunk' });
```

This is a lightweight alternative to `@flowrag/storage-lancedb` — smaller native binaries (~2MB vs ~50MB), single `.db` file.

## License

MIT
npm package: @flowripple/sdk
Description: FlowRipple SDK
Latest version: 3.1.0

# @flowripple/sdk

The official Node.js SDK for Flowripple - a visual workflow automation platform.

## Installation

Install the package using npm:

```bash
npm install @flowripple/sdk
```

Or using yarn:

```bash
yarn add @flowripple/sdk
```

Or using pnpm:

```bash
pnpm add @flowripple/sdk
```

## Usage

First, import and initialize the FlowrippleClient with your API key:

```typescript
import { FlowrippleClient } from '@flowripple/sdk';

const client = new FlowrippleClient({
  apiKey: 'frp_your-api-key'
});
```

Then use the client to trigger workflow events:

```typescript
// Trigger a simple event
await client.trigger('user.signup', {
  userId: '123',
  email: 'user@example.com'
});

// Trigger an event with custom data
await client.trigger('order.completed', {
  orderId: 'ord_123',
  amount: 99.99,
  currency: 'USD',
  items: [
    { id: 'prod_1', name: 'T-Shirt', quantity: 2 }
  ]
});
```

## API Reference

### FlowrippleClient

#### Constructor Options

The `FlowrippleClient` constructor accepts a configuration object with the following properties:

| Option | Type | Required | Default | Description |
|--------|------|----------|---------|-------------|
| `apiKey` | string | Yes | - | Your Flowripple API Key (starts with `frp_`) |
| `baseUrl` | string | No | 'https://api.flowripple.com' | Custom API base URL |
| `silent` | boolean | No | false | If true, failed API calls return false instead of throwing errors |

#### Methods

##### `trigger(identifier: string, data?: Record<string, any>): Promise<false | void>`

Triggers a workflow by sending an event to the Flowripple API.

- `identifier`: The event identifier to trigger (e.g., 'user.signup', 'order.completed')
- `data`: Optional object containing the event data
- Returns: A promise that resolves to `void` on success, or `false` if the request fails and silent mode is enabled
- Throws: An error if the request fails and silent mode is not enabled

## Error Handling

By default, the SDK will throw errors when API requests fail. You can enable silent mode to return `false` instead:

```typescript
const client = new FlowrippleClient({
  apiKey: 'frp_your-api-key',
  silent: true
});

// This will return false instead of throwing if the request fails
const result = await client.trigger('user.signup', { userId: '123' });
if (result === false) {
  console.log('Event trigger failed');
}
```

## License

MIT
npm package: @flowrrs/create-context
Description: Simple utility to create context-bound React hooks.
Author: flowrrs
Latest version: 0.0.11

# @flowrrs/create-context

Simple utility to create context-bound React hooks.

## Install

```bash
npm install --save @flowrrs/create-context
```

## Usage

```jsx
import * as React from 'react'
import { createContextHook } from '@flowrrs/create-context'

const [FooProvider, useFooStore, FooContext] = createContextHook((providerProps) => {
  const [foo, setFoo] = React.useState('foo' + providerProps.suffix)
  return { foo, setFoo }
})

const App = () => {
  return (
    <FooProvider suffix="bar">
      <InnerApp />
    </FooProvider>
  )
}

const InnerApp = () => {
  const { foo, setFoo } = useFooStore()

  return (
    <div>
      <h1>{foo}</h1>
      <button onClick={() => setFoo(foo.toUpperCase())}>
        uppercase foo
      </button>
    </div>
  )
}
```

## License

MIT © [flowrrs](https://github.com/flowrrs)

---

This package was created using [create-react-hook](https://github.com/hermanya/create-react-hook).
npm package: @flows/js
Description: Flows JS SDK - Build native product growth experiences, your way
Latest version: 1.20.0

<p align="center">
  <a href="https://flows.sh">
    <img src="https://raw.githubusercontent.com/RBND-studio/flows-sdk/refs/heads/main/docs/avatar.png" height="96">
    <h3 align="center">Flows JavaScript SDK</h3>
  </a>
</p>

<p align="center">
  The better way to build product adoption.
</p>

<p align="center">
  <a href="https://flows.sh/docs"><strong>Documentation</strong></a> ·
  <a href="https://flows.sh/changelog"><strong>Changelog</strong></a> ·
  <a href="https://flows.sh/examples"><strong>Examples</strong></a> ·
  <a href="https://flows.sh/docs/sdk-overview"><strong>SDKs</strong></a>
</p>

## Installation

For full setup instructions, see our [Quickstart guide](https://flows.sh/docs/quickstart).

```
npm install @flows/js @flows/js-components
```

`@flows/js` SDK handles the lightweight embedding of Flows, while `@flows/js-components` provides a set of built-in components to get you started quickly. Alternatively, you can [bring your own components](https://flows.sh/docs/create-custom-components).

Call `init` and `setupJsComponents` and pass in your [Organization ID](https://app.flows.sh/r/org/settings) and [Environment](https://app.flows.sh/r/org/environments).

```js
import { init } from "@flows/js";
import { setupJsComponents } from "@flows/js-components";
import * as components from "@flows/js-components/components";
import * as tourComponents from "@flows/js-components/tour-components";

// Depending on your setup, link the CSS, copy-paste it to your codebase, or import it in your JS files
import "@flows/js-components/dist/index.css"

init({
  organizationId: "YOUR_ORGANIZATION_ID", // Find this in Settings > General
  userId: "YOUR_USER_ID", // Identify the user
  environment: "production", // Default environment
});
setupJsComponents({
  components: { ...components },
  tourComponents: { ...tourComponents },
});`
```

Add `<flows-floating-blocks>` at the end of the `<body>` to handle rendering of floating components.

```html
<body>
  <!-- Your app code -->

  <flows-floating-blocks></flows-floating-blocks>
</body>
```

## Features

Meet Flows, the flexible platform for building in-app experiences. Focus on your product, not creating one-off logic.

- Build powerful in-app experiences to drive product growth
- Embed components directly into your app
- Create onboarding, product adoption, in-app messaging, growth experiments, and more
- Bring your own UI components or use Flows' built-in components

Visit our [website](https://flows.sh) to learn more about Flows

## Get started for free

The fastest and most reliable way to get started with Flows is [signing up for free](https://app.flows.sh/signup). Your first 250 MTUs (monthly tracked users) are free every month, after which you pay based on usage. See our [pricing](https://flows.sh/pricing) for more details.

## Contributing

We ❤️ contributions big and small. If you have any ideas for improvements, either submit an issue or create a pull request.

---

Created by [rbnd.studio](https://rbnd.studio/).
npm package: @flows/react
Description: Flows React SDK – Build native product growth experiences, your way
Latest version: 1.22.0

<p align="center">
  <a href="https://flows.sh">
    <img src="https://raw.githubusercontent.com/RBND-studio/flows-sdk/refs/heads/main/docs/avatar.png" height="96">
    <h3 align="center">Flows React SDK</h3>
  </a>
</p>

<p align="center">
  The better way to build product adoption.
</p>

<p align="center">
  <a href="https://flows.sh/docs"><strong>Documentation</strong></a> ·
  <a href="https://flows.sh/changelog"><strong>Changelog</strong></a> ·
  <a href="https://flows.sh/examples"><strong>Examples</strong></a> ·
  <a href="https://flows.sh/docs/sdk-overview"><strong>SDKs</strong></a>
</p>

## Installation

For full setup instructions, see our [Quickstart guide](https://flows.sh/docs/quickstart).

```
npm install @flows/react @flows/react-components
```

`@flows/react` SDK handles the lightweight embedding of Flows, while `@flows/react-components` provides a set of built-in components to get you started quickly. Alternatively, you can [bring your own components](https://flows.sh/docs/create-custom-components).

Wrap your app with `FlowsProvider` component to wrap your application and pass in your [Organization ID](https://app.flows.sh/r/org/settings) and [Environment](https://app.flows.sh/r/org/environments).

```tsx
import { FlowsProvider } from "@flows/react";
import * as components from "@flows/react-components";
import * as tourComponents from "@flows/react-components/tour";
import "@flows/react-components/index.css";

const App = () => {
  return (
    <FlowsProvider
      organizationId="YOUR_ORGANIZATION_ID" // Find this in Settings > General
      userId="YOUR_USER_ID" // Identify the user
      environment="production" // Default environment
      components={{ ...components }}
      tourComponents={{ ...tourComponents }}
    >
      {/* Your app code here */}
    </FlowsProvider>
  );
};
```

## Features

Meet Flows, the flexible platform for building in-app experiences. Focus on your product, not creating one-off logic.

- Build powerful in-app experiences to drive product growth
- Embed components directly into your app
- Create onboarding, product adoption, in-app messaging, growth experiments, and more
- Bring your own UI components or use Flows' built-in components

Visit our [website](https://flows.sh) to learn more about Flows

## Get started for free

The fastest and most reliable way to get started with Flows is [signing up for free](https://app.flows.sh/signup). Your first 250 MTUs (monthly tracked users) are free every month, after which you pay based on usage. See our [pricing](https://flows.sh/pricing) for more details.

## Contributing

We ❤️ contributions big and small. If you have any ideas for improvements, either submit an issue or create a pull request.

---

Created by [rbnd.studio](https://rbnd.studio/).
npm package: @flows/react-components
Description: Built-in components for Flows React SDK
Latest version: 2.8.1

<p align="center">
  <a href="https://flows.sh">
    <img src="https://raw.githubusercontent.com/RBND-studio/flows-sdk/refs/heads/main/docs/avatar.png" height="96">
    <h3 align="center">Flows React Components</h3>
  </a>
</p>

<p align="center">
  The better way to build product adoption.
</p>

<p align="center">
  <a href="https://flows.sh/docs"><strong>Documentation</strong></a> ·
  <a href="https://flows.sh/changelog"><strong>Changelog</strong></a> ·
  <a href="https://flows.sh/examples"><strong>Examples</strong></a> ·
  <a href="https://flows.sh/docs/sdk-overview"><strong>SDKs</strong></a>
</p>

## Installation

For full setup instructions, see our [Quickstart guide](https://flows.sh/docs/quickstart).

```
npm install @flows/react-components
```

⚠️ This package provides a set of ready-made components for building product adoption. To use it, you also need to install the `@flows/react` package.

## Components

- [Modal](https://flows.sh/docs/components/modal)
- [Tooltip](https://flows.sh/docs/components/tooltip)
- [Hint](https://flows.sh/docs/components/hint)

Looking for more components? [Contact us](https://flows.sh/contact) or create your own custom components by following our [guide](https://flows.sh/docs/create-custom-components).

## Contributing

We ❤️ contributions big and small. If you have any ideas for improvements, either submit an issue or create a pull request.

---

Created by [rbnd.studio](https://rbnd.studio/).
npm package: @flowscripter/example-cli
Description: Simple example CLI using https://github.com/flowscripter/dynamic-cli-framework
Latest version: 1.0.9

# example-cli

[![version](https://img.shields.io/github/v/release/flowscripter/example-cli?sort=semver)](https://github.com/flowscripter/example-cli/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/example-cli/release-bun-executable.yml)](https://github.com/flowscripter/example-cli/actions/workflows/release-bun-executable.yml)
[![coverage](https://codecov.io/gh/flowscripter/example-cli/branch/main/graph/badge.svg?token=EMFT2938ZF)](https://codecov.io/gh/flowscripter/example-cli)
[![license: MIT](https://img.shields.io/github/license/flowscripter/example-cli)](https://github.com/flowscripter/example-cli/blob/main/LICENSE)

> Simple example CLI using
> [dynamic-cli-framework](https://github.com/flowscripter/dynamic-cli-framework).

<img width="600" src="./demo.svg" alt="example-cli demo screen recording">

## Binary Executable Usage

**NOTE**: The binaries are 10's of megabytes in size as the entire Bun runtime
is included.

#### MacOS

Via [Homebrew](https://brew.sh/):

`brew install flowscripter/tap/example-cli`

#### Linux

In a terminal:

`curl -fsSL https://raw.githubusercontent.com/flowscripter/example-cli/main/script/install.sh | sh`

#### Windows

Via [Winget](https://github.com/microsoft/winget-cli):

`winget install Flowscripter.example-cli`

#### Manual Install

You can download and extract the binary zip files from the
[releases](https://github.com/flowscripter/example-cli/releases) page.

## Functional Tests

Refer to [functional_tests/README.md](functional_tests/README.md)

## Development

Install dependencies:

`bun install`

Test:

`bun test`

Run:

`bun run index.ts`

> During development this can be used to validate command definitions:
>
> `DYNAMIC_CLI_FRAMEWORK_VALIDATE_ALL=1 bun run index.ts`

> During development this can be used to enable framework logging:
>
> `DYNAMIC_CLI_FRAMEWORK_DEBUG=1 bun run index.ts`

Compile binary:

`bun build index.ts --compile --outfile /tmp/example-cli`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts src/ tests/`

## Documentation

Refer to the
[dynamic-cli-framework](https://github.com/flowscripter/dynamic-cli-framework)
documentation.

## License

MIT © Flowscripter
npm package: @flowscripter/example-plugin
Description: Example plugin for the https://github.com/flowscripter/dynamic-plugin-framework
Latest version: 1.0.13

# example-plugin

[![version](https://img.shields.io/github/v/release/flowscripter/example-plugin?sort=semver)](https://github.com/flowscripter/example-plugin/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/example-plugin/release-bun-bundle.yml)](https://github.com/flowscripter/example-plugin/actions/workflows/release-bun-bundle.yml)
[![coverage](https://codecov.io/gh/flowscripter/example-plugin/branch/main/graph/badge.svg?token=EMFT2938ZF)](https://codecov.io/gh/flowscripter/example-plugin)
[![docs](https://img.shields.io/badge/docs-API-blue)](https://flowscripter.github.io/example-plugin/index.html)
[![license: MIT](https://img.shields.io/github/license/flowscripter/example-plugin)](https://github.com/flowscripter/example-plugin/blob/main/LICENSE)

> Example plugin for the
> [dynamic-plugin-framework](https://github.com/flowscripter/dynamic-plugin-framework)

## Bundled Bun Module Usage

Use the module:

```typescript
import { ExampleExtension } from "https://unpkg.com/@flowscripter/example-plugin/dist/bundle.js";

const extension = new ExampleExtension();

extension.sayHello();
```

## Development

Install dependencies:

`bun install`

Test:

`bun test`

Bundle for usage as a
[dynamic-plugin-framework](https://github.com/flowscripter/dynamic-plugin-framework)
plugin:

`bun build index.ts --outdir ./dist --entry-naming bundle.js --minify`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts src/ tests/`

Generate HTML API Documentation:

`deno doc --html --name=example-plugin index.ts`

## Documentation

### Overview

Refer to the
[dynamic-plugin-framework](https://github.com/flowscripter/dynamic-plugin-framework)
for an overview of what this example is demonstrating.

### API

Link to auto-generated API docs for the library:

[API Documentation](https://flowscripter.github.io/example-plugin/index.html)

## License

MIT © Flowscripter
npm package: @flowscripter/example-plugin-api
Description: Example plugin API for the https://github.com/flowscripter/dynamic-plugin-framework
Latest version: 1.0.8

# example-plugin-api

[![version](https://img.shields.io/github/v/release/flowscripter/example-plugin-api?sort=semver)](https://github.com/flowscripter/example-plugin-api/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/example-plugin-api/release-bun-library.yml)](https://github.com/flowscripter/example-plugin-api/actions/workflows/release-bun-library.yml)
[![coverage](https://codecov.io/gh/flowscripter/example-plugin-api/branch/main/graph/badge.svg?token=EMFT2938ZF)](https://codecov.io/gh/flowscripter/example-plugin-api)
[![docs](https://img.shields.io/badge/docs-API-blue)](https://flowscripter.github.io/example-plugin-api/index.html)
[![license: MIT](https://img.shields.io/github/license/flowscripter/example-plugin-api)](https://github.com/flowscripter/example-plugin-api/blob/main/LICENSE)

> Example plugin API for the
> [dynamic-plugin-framework](https://github.com/flowscripter/dynamic-plugin-framework)

## Bun Module Usage

Add the module:

`bun add @flowscripter/example-plugin-api`

Use the module:

```typescript
import {
  EXTENSION_POINT_1,
  ExtensionPoint1,
} from "@flowscripter/example-plugin-api";

// ExtensionPoint1 is identified by EXTENSION_POINT_1 identifier

class MyExtensionPointImplementation implements ExtensionPoint1 {
  public sayHello(): void {
    // greetings...
  }
}
```

## Development

Test:

`bun test`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts`

Generate HTML API Documentation:

`deno doc --html --name=example-plugin-api index.ts`

## Documentation

### Overview

```mermaid
classDiagram
    
   class ExtensionPoint1 {
      <<interface>>
      sayHello()
   }
```

### Framework API

Refer to the
[dynamic-plugin-framework](https://github.com/flowscripter/dynamic-plugin-framework)
for an overview of what this example is demonstrating.

### API

Link to auto-generated API docs:

[API Documentation](https://flowscripter.github.io/example-plugin-api/index.html)

## License

MIT © Flowscripter
npm package: @flowscripter/mpeg-sdl-tool
Description: ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) CLI tool
Latest version: 1.1.3

# mpeg-sdl-tool

[![version](https://img.shields.io/github/v/release/flowscripter/mpeg-sdl-tool?sort=semver)](https://github.com/flowscripter/mpeg-sdl-tool/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/mpeg-sdl-tool/release-bun-executable.yml)](https://github.com/flowscripter/mpeg-sdl-tool/actions/workflows/release-bun-executable.yml)
[![coverage](https://codecov.io/gh/flowscripter/mpeg-sdl-tool/branch/main/graph/badge.svg?token=EMFT2938ZF)](https://codecov.io/gh/flowscripter/mpeg-sdl-tool)
[![license: MIT](https://img.shields.io/github/license/flowscripter/mpeg-sdl-tool)](https://github.com/flowscripter/mpeg-sdl-tool/blob/main/LICENSE)

> ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) CLI tool

## Binary Executable Usage

#### MacOS

Via [Homebrew](https://brew.sh/):

`brew install flowscripter/tap/mpeg-sdl-tool`

#### Linux

In a terminal:

`curl -fsSL https://raw.githubusercontent.com/flowscripter/mpeg-sdl-tool/main/script/install.sh | sh`

#### Windows

Via [Winget](https://github.com/microsoft/winget-cli):

`winget install Flowscripter.mpeg-sdl-tool`

#### Manual Install

You can download and extract the binary zip files from the
[releases](https://github.com/flowscripter/mpeg-sdl-tool/releases) page.

## Functional Tests

Refer to [functional_tests/README.md](functional_tests/README.md)

## Development

`@mpeggroup/mpeg-sdl-parser` is hosted on GitHub packages, so before installing
dependencies, authentication needs to be configured. Create a GitHub classic
personal access token which has permission to read packages and then set it in
your environment:

`export NPM_GITHUB_TOKEN=<your_classic_pat>`

Install dependencies:

`bun install`

Test:

`bun test`

Run:

`bun run index.ts`

> During development this can be used to validate command definitions:
>
> `DYNAMIC_CLI_FRAMEWORK_VALIDATE_ALL=1 bun run index.ts`

> During development this can be used to enable framework logging:
>
> `DYNAMIC_CLI_FRAMEWORK_DEBUG=1 bun run index.ts`

Compile binary:

`bun build index.ts --compile --outfile /tmp/mpeg-sdl-tool`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts src/ tests/`

## Documentation

Refer to the [mpeg-sdl-parser](https://github.com/mpeggroup/mpeg-sdl-parser)
documentation.

Refer to the
[dynamic-cli-framework](https://github.com/flowscripter/dynamic-cli-framework)
documentation.

## License

MIT © Flowscripter
npm package: @flowscripter/template-bun-executable
Description: Project template for a cross-platform Bun executable with ffi native library and Bun library dependencies
Latest version: 1.1.27

# template-bun-executable

[![version](https://img.shields.io/github/v/release/flowscripter/template-bun-executable?sort=semver)](https://github.com/flowscripter/template-bun-executable/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/template-bun-executable/release-bun-executable.yml)](https://github.com/flowscripter/template-bun-executable/actions/workflows/release-bun-executable.yml)
[![coverage](https://codecov.io/gh/flowscripter/template-bun-executable/graph/badge.svg?token=dxU2NQB2DM)](https://codecov.io/gh/flowscripter/template-bun-executable)
[![license: MIT](https://img.shields.io/github/license/flowscripter/template-bun-executable)](https://github.com/flowscripter/template-bun-executable/blob/main/LICENSE)

> Project template for a cross-platform Bun executable with ffi native library
> and Bun library dependencies

## Template Usage

Create a new Bun project using this as a template:

`bun create @flowscripter/template-bun-executable`

## Binary Executable Usage

**NOTE**: The binaries are 10's of megabytes in size as the entire Bun runtime
is included.

#### MacOS

Via [Homebrew](https://brew.sh/):

`brew install flowscripter/tap/template-bun-executable`

#### Linux

In a terminal:

`curl -fsSL https://raw.githubusercontent.com/flowscripter/template-bun-executable/main/script/install.sh | sh`

#### Windows

Via [Winget](https://github.com/microsoft/winget-cli):

`winget install Flowscripter.template-bun-executable`

#### Manual Install

You can download and extract the binary zip files from the
[releases](https://github.com/flowscripter/template-bun-executable/releases)
page.

## Functional Tests

Refer to [functional_tests/README.md](functional_tests/README.md)

## Development

Install dependencies:

`bun install`

Test:

`bun test`

Run:

`bun run index.ts`

Compile binary:

`bun build index.ts --compile --outfile /tmp/template-bun-executable`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts src/ tests/`

## Documentation

### Overview

Sample mermaid diagram to test rendering in markdown:

```mermaid
classDiagram
    Foo <|-- Bar
```

## License

MIT © Flowscripter
npm package: @flowscripter/template-bun-library
Description: Project template for a Bun library
Latest version: 1.0.19

# template-bun-library

[![version](https://img.shields.io/github/v/release/flowscripter/template-bun-library?sort=semver)](https://github.com/flowscripter/template-bun-library/releases)
[![build](https://img.shields.io/github/actions/workflow/status/flowscripter/template-bun-library/release-bun-library.yml)](https://github.com/flowscripter/template-bun-library/actions/workflows/release-bun-library.yml)
[![coverage](https://codecov.io/gh/flowscripter/template-bun-library/graph/badge.svg?token=uWK0oWsBjr)](https://codecov.io/gh/flowscripter/template-bun-library)
[![docs](https://img.shields.io/badge/docs-API-blue)](https://flowscripter.github.io/template-bun-library/index.html)
[![license: MIT](https://img.shields.io/github/license/flowscripter/template-bun-library)](https://github.com/flowscripter/template-bun-library/blob/main/LICENSE)

> Project template for a Bun library

## Template Usage

Create a new Bun project using this as a template:

`bun create @flowscripter/template-bun-library`

## Bun Module Usage

Add the module:

`bun add @flowscripter/template-bun-library`

Use the module:

```typescript
import { world } from "@flowscripter/template-bun-library";

world();
```

## Development

Install dependencies:

`bun install`

Test:

`bun test`

**NOTE**: The following tasks use Deno as it excels at these and Bun does not
currently provide such functionality:

Format:

`deno fmt`

Lint:

`deno lint index.ts src/ tests/`

Generate HTML API Documentation:

`deno doc --html --name=template-bun-library index.ts`

## Documentation

### Overview

Sample mermaid diagram to test rendering in markdown:

```mermaid
classDiagram
    Foo <|-- Bar
```

### API

Link to auto-generated API docs:

[API Documentation](https://flowscripter.github.io/template-bun-library/index.html)

## License

MIT © Flowscripter