open-index/open-npm huggingface dataset:
npm package: @guiddini/react-native-epay
Description: React Native SDK for integrating Epay Guiddini, an online payment gateway in Algeria. Provides an easy-to-use WebView-based checkout experience with secure transaction handling.
Author: mr-abdellah
Latest version: 0.0.3

# @guiddini/react-native-epay

A React Native package for integrating Guiddini's ePay service into your mobile applications.

## Installation

```sh
npm install @guiddini/react-native-epay
```

## Usage

### Wrapping Your App
Before using the package, wrap your app with `GPayProvider` in your root component:

```tsx
import { GPayProvider } from "@guiddini/react-native-epay";

const App = () => {
  return (
    <GPayProvider secret_key="YOUR_SECRET_KEY" app_key="YOUR_APP_KEY">
      {/* Your App Components */}
    </GPayProvider>
  );
};

export default App;
```

### Initiating a Payment

```tsx
import { useGPay } from "@guiddini/react-native-epay";

const MyComponent = () => {
  const { initiatePayment } = useGPay();

  const handlePayment = async () => {
    try {
      const response = await initiatePayment(100);
      console.log("Payment Response:", response);
    } catch (error) {
      console.error("Payment Error:", error);
    }
  };

  return <button onClick={handlePayment}>Pay Now</button>;
};
```

### API Keys
To use the service, you need API keys: `secret_key` and `app_key`, which can be requested from [guiddini.dz](https://guiddini.dz).

## License

### Guiddini ePay License

Copyright (c) 2025 Guiddini

This software is proprietary and requires a valid subscription and API keys (`secret_key` and `app_key`) from Guiddini (https://guiddini.dz) to function. Unauthorized distribution, modification, or use without a valid account is strictly prohibited.

You are granted a non-exclusive, non-transferable, limited license to use this software only as per Guiddini's terms of service.

For licensing inquiries, please contact support@guiddini.dz.
npm package: @guideblade/webify
Description: Webify formats plain text with proper web typography.
Author: Nikolay Kulikov
Latest version: 1.0.0

# Webify

Webify formats plain text with proper web typography.
It fixes issues like incorrect quotes and dashes, prevents awkward line breaks, and supports English and Russian.

## Install

```bash
npm install @guideblade/webify
```

## Examples

Webify provides three functions: `webify()`, `createWebify()`, and `installStringWebify()`.

### Russian

#### webify()

```ts
import { webify } from '@guideblade/webify';

const text = webify('И даже то, что быть не может, однажды тоже может быть.', {
	language: 'ru',
	mode: 'html-entities',
});
console.log(text); // --> И&nbsp;даже&nbsp;то, что быть не&nbsp;может, однажды тоже может быть.
```

#### createWebify()

```ts
import { createWebify } from '@guideblade/webify';

const myWebify = createWebify({ language: 'ru', mode: 'html-entities' });
const text = myWebify('Буфер не бесконечный.');
console.log(text); // --> Буфер не&nbsp;бесконечный.
```

#### installStringWebify()

```ts
import { installStringWebify } from '@guideblade/webify';

installStringWebify({ language: 'ru', mode: 'html-entities' });
console.log(
	`Для этого мы подключаем потенциальных работодателей еще на третьем-четвертом курсе", - прокомментировал ректор...`.webify(),
); // --> Для этого мы&nbsp;подключаем потенциальных работодателей еще на&nbsp;третьем&#8209;четвертом курсе&raquo;,&nbsp;&mdash; прокомментировал ректор&hellip;
```

### English

Default mode is `unicode`, which outputs literal characters.

#### webify()

```ts
import { webify } from '@guideblade/webify';

const text = webify(`Gosh, think of the headline: "Hero cop killed by savage fox!"`, { language: 'en' });
console.log(text); // --> Gosh, think of the headline: “Hero cop killed by savage fox!”
```

#### createWebify()

```ts
import { createWebify } from '@guideblade/webify';

const myWebify = createWebify({ language: 'en' });
const text = myWebify("We shouldn't rush.");
console.log(text); // --> We shouldn’t rush.
```

#### installStringWebify()

```ts
import { installStringWebify } from '@guideblade/webify';

installStringWebify({ language: 'en' });
console.log(`I couldn't wait for you to come and clear the cupboards`.webify()); // --> I couldn’t wait for you to come and clear the cupboards
```
npm package: @guideflow/analytics
Description: Analytics, A/B testing, and event transport for GuideFlow.js
Author: John Mugabe
Latest version: 0.1.9

# @guideflow/analytics

**Analytics, event collection, and A/B testing for GuideFlow.**

[![npm version](https://img.shields.io/npm/v/@guideflow/analytics.svg)](https://www.npmjs.com/package/@guideflow/analytics)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/RealNerdZW/GuideFlow/blob/master/LICENSE)

Analytics module for [GuideFlow](https://github.com/RealNerdZW/GuideFlow). Collect tour events, forward them to popular analytics platforms, and run A/B tests with deterministic variant assignment.

## Installation

```bash
npm install @guideflow/core @guideflow/analytics
```

## Quick Start

### Collect Tour Events

```ts
import { AnalyticsCollector, PostHogTransport, WebhookTransport } from '@guideflow/analytics'

const collector = new AnalyticsCollector({
  userId: 'user-123',
  globalProperties: { plan: 'pro', version: '2.1' },
})

collector
  .addTransport(new PostHogTransport())
  .addTransport(new WebhookTransport({ url: '/api/analytics/guideflow' }))

collector.attach(gf)

// Flush buffered events (e.g. on page unload)
await collector.flush()
```

### Events Emitted

| Event | Triggered when |
|-------|---------------|
| `guideflow.tour.started` | Tour begins |
| `guideflow.tour.completed` | All steps finished |
| `guideflow.tour.abandoned` | Tour closed early |
| `guideflow.step.viewed` | Step enters viewport |
| `guideflow.step.exited` | Step dismissed (includes `dwell_ms`) |
| `guideflow.step.skipped` | Step conditionally skipped |

### A/B Testing

```ts
import { ExperimentEngine } from '@guideflow/analytics'

const engine = new ExperimentEngine('user-123')

const { value: theme } = engine.assign({
  id: 'tour-theme-q1-2025',
  variants: [
    { id: 'control',   value: 'minimal', weight: 50 },
    { id: 'treatment', value: 'bold',    weight: 50 },
  ],
})

// Assignment is deterministic — same userId always gets same variant
```

## Available Transports

| Transport | Platform |
|-----------|----------|
| `PostHogTransport` | PostHog |
| `MixpanelTransport` | Mixpanel |
| `AmplitudeTransport` | Amplitude |
| `SegmentTransport` | Segment |
| `WebhookTransport` | Any HTTP endpoint |

## Key Exports

| Export | Description |
|--------|-------------|
| `AnalyticsCollector` | Event capture & buffering |
| `ExperimentEngine` | Deterministic A/B variant assignment |
| `PostHogTransport` | PostHog transport |
| `MixpanelTransport` | Mixpanel transport |
| `AmplitudeTransport` | Amplitude transport |
| `SegmentTransport` | Segment transport |
| `WebhookTransport` | Generic webhook transport |

## Peer Dependencies

- `@guideflow/core` workspace:*

## Related Packages

- [`@guideflow/core`](https://www.npmjs.com/package/@guideflow/core) — Core engine (required)
- [`@guideflow/react`](https://www.npmjs.com/package/@guideflow/react) — React adapter
- [`@guideflow/ai`](https://www.npmjs.com/package/@guideflow/ai) — AI-powered tour generation

## License

[MIT](https://github.com/RealNerdZW/GuideFlow/blob/master/LICENSE)
npm package: @guideflow/vue
Description: GuideFlow Vue 3 adapter — composables and components
Author: John Mugabe
Latest version: 0.1.9

# @guideflow/vue

**Vue 3 composables and plugin for GuideFlow product tours.**

[![npm version](https://img.shields.io/npm/v/@guideflow/vue.svg)](https://www.npmjs.com/package/@guideflow/vue)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/RealNerdZW/GuideFlow/blob/master/LICENSE)

Vue 3 adapter for [GuideFlow](https://github.com/RealNerdZW/GuideFlow). Provides a Vue plugin and composables for building product tours.

## Installation

```bash
npm install @guideflow/core @guideflow/vue
```

## Quick Start

### Plugin Setup

```ts
// main.ts
import { createApp } from 'vue'
import { createGuideFlow } from '@guideflow/core'
import { GuideFlowPlugin } from '@guideflow/vue'
import '@guideflow/core/styles'
import App from './App.vue'

const gf = createGuideFlow()
const app = createApp(App)
app.use(GuideFlowPlugin, { instance: gf })
app.mount('#app')
```

### Using the Composable

```vue
<script setup lang="ts">
import { useTour } from '@guideflow/vue'

const { start, isActive, currentStepIndex, totalSteps } = useTour()

const flow = {
  id: 'welcome',
  initial: 'main',
  states: {
    main: {
      steps: [
        {
          id: 'step-1',
          content: { title: 'Welcome!' },
          target: '#hero',
          placement: 'bottom',
        },
      ],
      final: true,
    },
  },
}
</script>

<template>
  <button @click="start(flow)">Start Tour</button>
  <span v-if="isActive">Step {{ currentStepIndex + 1 }} of {{ totalSteps }}</span>
</template>
```

## Key Exports

| Export | Description |
|--------|-------------|
| `GuideFlowPlugin` | Vue plugin — installs GuideFlow into the app |
| `useGuideFlow()` | Access the GuideFlow instance via `inject()` |
| `useTour()` | Tour state and controls (`start`, `stop`, `next`, `prev`, `isActive`, `currentStepIndex`, `totalSteps`) |
| `GUIDEFLOW_KEY` | Injection key for manual provide/inject |

## Peer Dependencies

- `vue` ^3.0.0

## Related Packages

- [`@guideflow/core`](https://www.npmjs.com/package/@guideflow/core) — Core engine (required)
- [`@guideflow/ai`](https://www.npmjs.com/package/@guideflow/ai) — AI-powered tour generation
- [`@guideflow/analytics`](https://www.npmjs.com/package/@guideflow/analytics) — Analytics & A/B testing

## License

[MIT](https://github.com/RealNerdZW/GuideFlow/blob/master/LICENSE)
npm package: @guidekit/cli
Description: CLI tools for GuideKit SDK — init, doctor, generate-secret
Author: Riazul Islam
Latest version: 0.1.1

# @guidekit/cli

[![npm version](https://img.shields.io/npm/v/@guidekit/cli?style=flat-square)](https://www.npmjs.com/package/@guidekit/cli)

CLI tools for the GuideKit SDK. Scaffolds projects, diagnoses configuration issues, and generates signing secrets.

## Installation

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

Or use directly with `npx`:

```bash
npx @guidekit/cli <command>
```

## Commands

### `guidekit init`

Scaffolds GuideKit into your project. Detects your framework (Next.js App Router, Pages Router, or generic React) and generates:

- Token endpoint with environment variable placeholders
- Provider component wrapping your app
- `.env.local` template with required keys

```bash
npx guidekit init
```

### `guidekit doctor`

Checks your environment for common issues:

- Required environment variables are set
- Packages are installed at compatible versions
- Provider API keys are valid and reachable
- Token endpoint responds correctly

```bash
npx guidekit doctor
```

### `guidekit generate-secret`

Generates a cryptographically secure signing secret for token generation.

```bash
npx guidekit generate-secret
```

Copy the output into your `.env.local` as `GUIDEKIT_SECRET`.

## Documentation

- Full documentation: [guidekit-docs.vercel.app/docs/cli](https://guidekit-docs.vercel.app/docs/cli)
- [Main README](../../README.md)

## License

[MIT](../../LICENSE)
npm package: @guidekit/core
Description: Core engine for GuideKit SDK — DOM intelligence, LLM orchestration, context management
Author: Riazul Islam
Latest version: 0.2.0

# @guidekit/core

[![npm version](https://img.shields.io/npm/v/@guidekit/core?style=flat-square)](https://www.npmjs.com/package/@guidekit/core)

Core engine for the GuideKit SDK. Provides DOM intelligence, LLM orchestration, context management, and the typed event system that powers all GuideKit integrations.

## Installation

```bash
npm install @guidekit/core
```

## Overview

`@guidekit/core` is the foundation layer used by `@guidekit/react` and `@guidekit/vanilla`. You typically do not need to use it directly unless you are building a custom integration.

## API

### GuideKitCore

The main class that orchestrates all SDK subsystems.

```typescript
import { GuideKitCore } from '@guidekit/core';

const core = new GuideKitCore({
  tokenEndpoint: '/api/guidekit/token',
  agent: { name: 'Guide', greeting: 'Hello!' },
  options: { mode: 'text', debug: false },
});

await core.init();

// Send a text message
const response = await core.sendText('How do I reset my password?');

// Clean up
core.destroy();
```

### EventBus

Typed event system with namespace subscriptions and error isolation.

```typescript
core.events.on('status:change', (status) => {
  console.log('Status:', status);
});

core.events.on('error', (error) => {
  console.log(error.code, error.suggestion);
});
```

### Error Hierarchy

All errors extend `GuideKitError` with structured metadata:

- `code` — One of 28 canonical error codes
- `suggestion` — Actionable fix for the user
- `recoverable` — Whether the SDK can continue operating
- `docsUrl` — Link to the relevant documentation page

## Key Subsystems

- **DOM Scanner** — TreeWalker-based page model with `data-guidekit-ignore` support
- **Context Manager** — Token budgeting and truncation for LLM context windows
- **LLM Orchestrator** — Streaming responses with tool calling (Gemini (default), custom adapters via `LLMProviderAdapter`)
- **Resource Manager** — AbortController pattern and lifecycle tracking

## Documentation

- Full documentation: [guidekit-docs.vercel.app/docs](https://guidekit-docs.vercel.app/docs)
- [Main README](../../README.md)

## License

[MIT](../../LICENSE)
npm package: @guidekit/react
Description: React bindings for GuideKit SDK — Provider, hooks, and Widget
Author: Riazul Islam
Latest version: 0.2.0

# @guidekit/react

[![npm version](https://img.shields.io/npm/v/@guidekit/react?style=flat-square)](https://www.npmjs.com/package/@guidekit/react)

React bindings for the GuideKit SDK. Provides the `GuideKitProvider`, split hooks, and a Shadow DOM widget for adding an AI assistant to any React application.

## Installation

```bash
npm install @guidekit/core @guidekit/react
```

## Quick Start

```tsx
import { GuideKitProvider } from '@guidekit/react';

function App() {
  return (
    <GuideKitProvider
      tokenEndpoint="/api/guidekit/token"
      agent={{ name: 'Guide', greeting: 'Hi! How can I help?' }}
      options={{ mode: 'text' }}
    >
      <YourApp />
    </GuideKitProvider>
  );
}
```

## Hooks

```tsx
import {
  useGuideKitStatus,
  useGuideKitVoice,
  useGuideKitActions,
  useGuideKitContext,
} from '@guidekit/react';

function MyComponent() {
  const { isReady, agentState } = useGuideKitStatus();
  const { isListening, startListening, stopListening, sendText } = useGuideKitVoice();
  const { highlight, scrollToSection, startTour, navigate } = useGuideKitActions();
  const { setPageContext, registerAction } = useGuideKitContext();

  return (
    <div>
      <p>Status: {agentState.status}</p>
      <button onClick={() => sendText('Help me')}>Ask</button>
    </div>
  );
}
```

## Sub-exports

### `@guidekit/react/devtools`

Development-only component for inspecting SDK state, events, and context.

```tsx
import { GuideKitDevTools } from '@guidekit/react/devtools';
```

### `@guidekit/react/testing`

Test utilities for mocking the provider in unit tests.

```tsx
import { MockGuideKitProvider, simulateVoiceInput } from '@guidekit/react/testing';
```

## Documentation

- Full documentation: [guidekit-docs.vercel.app/docs](https://guidekit-docs.vercel.app/docs)
- [Main README](../../README.md)

## License

[MIT](../../LICENSE)
npm package: @guidekit/server
Description: Server-side utilities for GuideKit SDK — token generation, auth middleware
Author: Riazul Islam
Latest version: 0.2.0

# @guidekit/server

[![npm version](https://img.shields.io/npm/v/@guidekit/server?style=flat-square)](https://www.npmjs.com/package/@guidekit/server)

Server-side utilities for the GuideKit SDK. Provides secure token generation and validation so API keys never reach the browser.

## Installation

```bash
npm install @guidekit/server
```

## Token Generation

Create a token endpoint that the client SDK calls to obtain a short-lived session token.

```typescript
import { createSessionToken } from '@guidekit/server';

// Next.js App Router example
export async function POST() {
  const token = await createSessionToken({
    signingSecret: process.env.GUIDEKIT_SECRET!,
    llmApiKey: process.env.LLM_API_KEY!,
    sttApiKey: process.env.STT_API_KEY,
    ttsApiKey: process.env.TTS_API_KEY,
    expiresIn: '15m',
  });

  return Response.json(token);
}
```

## Token Validation

Validate an incoming token (useful for custom middleware):

```typescript
import { validateSessionToken } from '@guidekit/server';

const result = await validateSessionToken(
  bearerToken,
  process.env.GUIDEKIT_SECRET!,
);

if (result.valid) {
  console.log(result.payload);
}
```

## Secret Rotation

To rotate your signing secret with zero downtime, temporarily accept both old and new secrets:

```typescript
const token = await createSessionToken({
  signingSecret: process.env.GUIDEKIT_SECRET_NEW!,
  // ...
});
```

Generate a new secret via the CLI:

```bash
npx guidekit generate-secret
```

## Documentation

- Full documentation: [guidekit-docs.vercel.app/docs/server](https://guidekit-docs.vercel.app/docs/server)
- [Main README](../../README.md)

## License

[MIT](../../LICENSE)
npm package: @guidekit/vanilla
Description: Vanilla JS bundle for GuideKit SDK — script-tag integration
Author: Riazul Islam
Latest version: 0.1.1

# @guidekit/vanilla

[![npm version](https://img.shields.io/npm/v/@guidekit/vanilla?style=flat-square)](https://www.npmjs.com/package/@guidekit/vanilla)

Vanilla JavaScript bundle for the GuideKit SDK. Provides a script-tag integration for adding an AI assistant to any web page without React.

## Installation

### CDN (IIFE)

```html
<script src="https://unpkg.com/@guidekit/vanilla/dist/index.global.js"></script>
<script>
  GuideKit.init({
    tokenEndpoint: '/api/guidekit/token',
    agent: { name: 'Guide', greeting: 'Hello! How can I help?' },
    options: { mode: 'text' },
  });
</script>
```

### npm

```bash
npm install @guidekit/vanilla
```

```javascript
import { init, sendText, destroy } from '@guidekit/vanilla';

await init({
  tokenEndpoint: '/api/guidekit/token',
  agent: { name: 'Guide', greeting: 'Hello!' },
  options: { mode: 'text' },
});

// Send a message programmatically
await sendText('How do I get started?');

// Clean up when done
destroy();
```

## Imperative API

| Method | Description |
|--------|-------------|
| `init(config)` | Initialize the SDK and render the widget |
| `sendText(message)` | Send a text message to the assistant |
| `startVoice()` | Begin voice input (requires `@guidekit/vad`) |
| `stopVoice()` | Stop voice input |
| `destroy()` | Tear down the SDK and remove the widget |

## Documentation

- Full documentation: [guidekit-docs.vercel.app/docs/vanilla](https://guidekit-docs.vercel.app/docs/vanilla)
- [Main README](../../README.md)

## License

[MIT](../../LICENSE)