open-index/open-npm huggingface dataset:
npm package: @kulkul/asos-crawler
Description: Easily use to crawl assos.com detail product by list of product url
Author: kulkultech
Latest version: 0.0.1

# asos.com scraper

[![Made in Indonesia](https://made-in-indonesia.github.io/made-in-indonesia.svg)](https://github.com/made-in-indonesia/made-in-indonesia)

Easily use to crawl assos.com detail product by list of product url

## Install it

    $ npm install @kulkul/asos-crawler

## Input

```
{
  "inputs": [
    {
      "url": "https://www.asos.com/prd/14031451"
    },
    {
      "url": "https://www.asos.com/prd/14084626"
    }
  ]
}
```

## Output

```json
[
  {
    "url": "https://www.asos.com/prd/14084626",
    "title": "ASOS DESIGN chest harness bag in black with slogan print",
    "price": "£20.00",
    "createdAt": "2020-05-27T16:16:12.921Z",
    "nominal": 20,
    "currency": "£",
    "productId": "14084626"
  },
  {
    "url": "https://www.asos.com/prd/14031451",
    "title": "Nike Plus mini swoosh boyfriend t-shirt in pale pink",
    "price": "£20.00",
    "createdAt": "2020-05-27T16:16:13.673Z",
    "nominal": 20,
    "currency": "£",
    "productId": "14031451"
  }
]
```
npm package: @kulkul/tinyurl-client
Description: TinyURL JavaScript client
Author: kulkultech
Latest version: 1.0.8

# TinyURL JavaScript Client

[![Contact me on Codementor](https://cdn.codementor.io/badges/contact_me_github.svg)](https://www.codementor.io/amappuji?utm_source=github&utm_medium=button&utm_term=amappuji&utm_campaign=github)
[![Made in Indonesia](https://made-in-indonesia.github.io/made-in-indonesia.svg)](https://github.com/made-in-indonesia/made-in-indonesia)
[![Build Status](https://travis-ci.org/kulkultech/tinyurl-client.svg?branch=master)](https://travis-ci.org/kulkultech/tinyurl-client)

Easily use TinyURL in your browser.

# Getting Started

1. Install it

        $ npm install @kulkul/tinyurl-client

2. Use it

```javascript
import shortenUrl from "@kulkul/tinyurl-client";

shortenUrl("https://kulkul.tech").then((result) => {
    console.log({ result }); // https://tinyurl.com/<random-slug>
});
```

## Important Note on Custom Aliases

**Custom aliases are no longer supported.** The underlying TinyURL API endpoint used by this client does not support custom aliases. Any alias parameter provided will be ignored, and a random slug will be generated instead.

```javascript
import shortenUrl from "@kulkul/tinyurl-client";

// Alias parameter is deprecated and will be ignored
shortenUrl("https://kulkul.tech", "my-custom-alias").then((result) => {
    console.log({ result }); // https://tinyurl.com/<random-slug> (NOT my-custom-alias)
});
```
npm package: @kulor/cookie-store
Description: A polyfill for the Cookie Store API
Author: Mark
Latest version: 4.0.0-next.1

# `cookie-store`

[![Build Status](https://travis-ci.org/markcellus/cookie-store.svg?branch=master)](https://travis-ci.org/markcellus/cookie-store)
[![npm version](https://badge.fury.io/js/cookie-store.svg)](https://www.npmjs.com/package/cookie-store)

A ponyfill to allow use of the [Cookie Store API](https://wicg.github.io/cookie-store/) in modern browsers that don't support it natively, including IE11. Also compatible with TypeScript.

:warning: **EXPERIMENTAL:** _The Cookie Store API is not a W3C standard yet and the final implementation may differ from the current API of this project._

## Installation

To ensure the most up-to-date compatibility with browsers, we recommend that you install version 4 of the package with the `next` flag:

```sh
npm install cookie-store@next
```

## Basic Example

```js
// import polyfill and declare types
import { cookieStore } from 'cookie-store';

// set a cookie
await cookieStore.set('forgive', 'me');
// get a cookie
const foo = await cookieStore.get('forgive');
console.log(foo); // { name: 'forgive', value: 'me' }

// set another cookie
await cookieStore.set('forget', 'it');

// get multiple cookies
const cookies = await cookieStore.getAll();
console.log(cookies); // [{ name: 'forgive', value: 'me' }, { name: 'forget', value: 'it' }]

// delete a cookie
await cookieStore.delete('forget');
```

## Development

### Tests

Before running tests, you'll need to add the following entry to your `/etc/hosts` file on your machine:

```
127.0.0.1    foo.bar.localhost
```

Then run `npm test`
npm package: @kulorlab/kulor-develop
Description: Kulor is an UI design language for React components.
Author: Anuchit Joe Boonsom
Latest version: 0.0.23-develop
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Kulor

Kulor is an UI design language for React components.

# We need

Text component for on bg
npm package: @kulorlab/soul-dev
Description: My first react typescript package
Author: Anuchit Joe Boonsom
Latest version: 0.0.1-dev
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# my-react-typescript-package

[![NPM version][npm-image]][npm-url]
[![Build][github-build]][github-build-url]
![npm-typescript]
[![License][github-license]][github-license-url]

This repo is the example of the article ["How to create and publish React Typescript npm package with demo and automated build"](https://medium.com/@igaponov/how-to-create-and-publish-react-typescript-npm-package-with-demo-and-automated-build-80c40ec28aca).

You can clone it and step by step create your own NPM package and publish it.

It is simple React counter.

[**Live Demo**](https://gapon2401.github.io/my-react-typescript-package/)

## Installation:

```bash
npm install my-react-typescript-package --save-dev
```

or

```bash
yarn add -D my-react-typescript-package
```

## Usage :

Add `MyCounter` to your component:

```js
import React from 'react'
import ReactDOM from 'react-dom/client'
import { MyCounter } from 'my-react-typescript-package'

const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
root.render(
    <React.StrictMode>
        <div>
            <h2>Default counter</h2>
            <MyCounter />
        </div>
        <hr />
        <div>
            <h2>Counter with predefined value</h2>
            <MyCounter value={5} />
        </div>
    </React.StrictMode>,
)

```

[npm-url]: https://www.npmjs.com/package/my-react-typescript-package
[npm-image]: https://img.shields.io/npm/v/my-react-typescript-package
[github-license]: https://img.shields.io/github/license/gapon2401/my-react-typescript-package
[github-license-url]: https://github.com/gapon2401/my-react-typescript-package/blob/master/LICENSE
[github-build]: https://github.com/gapon2401/my-react-typescript-package/actions/workflows/publish.yml/badge.svg
[github-build-url]: https://github.com/gapon2401/my-react-typescript-package/actions/workflows/publish.yml
[npm-typescript]: https://img.shields.io/npm/types/my-react-typescript-package
npm package: @kult/cli
Description: ClI tool for managing Kult core applications
Author: Michael Kriel
Latest version: 1.1.0

# @kult/cli

<div align="center">

[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![GitHub Issues](https://img.shields.io/github/issues/michael616kriel/kult-cli.svg)](https://github.com/michael616kriel/kult-cli/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/michael616kriel/kult-cli.svg)](https://github.com/michael616kriel/kult-cli/pulls)
![CI](https://github.com/michael616kriel/kult-cli/actions/workflows/ci.yml/badge.svg)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)
[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)

</div>

Kult cli is toolkit for configuring and bootstrapping Kult applications.

Have a look at our [docs](https://michael616kriel.github.io/kult-docs/) for more information.

## Installation

yarn:

```
yarn add @kult/cli
```

NPM:

```
npm i @kult/cli
```

## Usage

```bash
kult
```

## Built Using <a name = "built_using"></a>

- [Chalk](https://www.npmjs.com/package/chalk)
- [Figlet](https://www.npmjs.com/package/figlet)
- [Handlebars](https://handlebarsjs.com/)
- [Prompts](https://www.npmjs.com/package/prompts)

## Community

- [Discord](https://discord.gg/dRwGqHvE)

## Authors <a name = "authors"></a>

- [@michael616kriel](https://github.com/michael616kriel) - Idea & Initial work

See also the list of [contributors](https://github.com/michael616kriel/kult-cli/contributors) who participated in this project.
npm package: @kult/graphql
Description: <div align="center">
Author: Michael Kriel
Latest version: 1.3.0

# @kult/graphql
<div align="center">

[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![GitHub Issues](https://img.shields.io/github/issues/michael616kriel/kult-graphql.svg)](https://github.com/michael616kriel/kult-graphql/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/michael616kriel/kult-graphql.svg)](https://github.com/michael616kriel/kult-graphql/pulls)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)

</div>

Graphql plugin for [@kult/core](https://michael616kriel.github.io/kult-core/)

Have a look at our [docs](https://michael616kriel.github.io/kult-docs/) for more information.

## Installation

yarn:

```bash label="bash"
yarn add @kult/graphql
```

NPM:

```bash label="bash"
npm i @kult/graphql
```

## Usage

Create a `schema.graphql` in your `src` directory:

```typescript label="./src/app/config/plugins.ts"
type Query {
  hello: String
}

type Mutation {
  sayHello: String
}
```

Register the plugin in `./src/app/config/plugins.ts`

```typescript label="./src/app/config/plugins.ts"
import KultGraphqlPlugin from '@kult/graphql';

export default {
  plugins: [KultGraphqlPlugin],
};
```

Define your queries and mutations using the `@Query` and `@Mutation` decorators:

```typescript label="./src/app/config/plugins.ts"
import { Application, ControllerBase, Controller } from '@kult/core';
import { Mutation, Query } from '@kult/graphql';

@Controller('/users')
class UserController extends ControllerBase {
  constructor(app: Application) {
    super(app);
  }

  @Query()
  hello() {
    return 'hello world';
  }

  @Mutation()
  sayHello() {
    return 'hello world';
  }
}

export default UserController;
```

### Environment Variables

Ensure this port is different than your server's port

```bash label=".env"
GRAPHQL_PORT=3001
```
## Community

- [Discord](https://discord.gg/dRwGqHvE)

## Authors <a name = "authors"></a>

- [@michael616kriel](https://github.com/michael616kriel) - Idea & Initial work

See also the list of [contributors](https://github.com/michael616kriel/kult-graphql/contributors) who participated in this project.
npm package: @kulti/adapter-claude
Description: Claude Code hook adapter for Kulti consciousness streaming
Latest version: 1.0.0

# @kulti/adapter-claude

Claude Code hook adapter for [Kulti](https://kulti.club) consciousness streaming.

Replaces the legacy `scripts/kulti-stream-hook.sh` bash script. No Python dependency required.

## How It Works

Claude Code fires lifecycle hooks (PreToolUse, PostToolUse, etc.) by piping JSON to stdin. This adapter reads that JSON, classifies the tool event using `@kulti/stream-core`, and POSTs to the Kulti state server.

## Setup

### 1. Build

```bash
npm run build:packages   # from repo root
```

### 2. Configure Claude Code

In your project's `.claude/settings.json`:

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|Write|Edit|Read|Grep|Glob|Task|WebFetch|WebSearch",
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/packages/kulti-adapter-claude/dist/index.js\"",
            "timeout": 2
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/packages/kulti-adapter-claude/dist/index.js\"",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/packages/kulti-adapter-claude/dist/index.js\"",
            "timeout": 5
          }
        ]
      }
    ],
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/packages/kulti-adapter-claude/dist/index.js\"",
            "timeout": 2
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/packages/kulti-adapter-claude/dist/index.js\"",
            "timeout": 2
          }
        ]
      }
    ]
  }
}
```

### 3. Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `KULTI_STATE_SERVER` | `http://localhost:8766` | State server URL |
| `KULTI_AGENT_ID` | `nex` | Your agent ID on Kulti |
| `KULTI_STREAM_ENABLED` | `1` | Set to `0` to disable |

## Supported Hooks

| Hook | What It Streams |
|------|-----------------|
| `PreToolUse` | Thought: what tool is about to run |
| `PostToolUse` | Code content (Write/Edit) or terminal output (Bash) |
| `UserPromptSubmit` | User's prompt as a "prompt" thought |
| `Stop` | "Turn complete" evaluation thought |
| `SubagentStart` | Subagent spawned notification |
| `SubagentStop` | Subagent finished notification |

## Capability

| Feature | Supported |
|---------|-----------|
| Thoughts | Per-tool |
| Code | Per-file write/edit |
| Terminal | Per-command |
| Status | Session lifecycle |

## License

MIT
npm package: @kulti/adapter-codex
Description: Codex CLI notify adapter for Kulti consciousness streaming
Latest version: 1.0.0

# @kulti/adapter-codex

Codex CLI notify adapter for [Kulti](https://kulti.club) consciousness streaming.

## How It Works

Codex CLI has a `notify` config option that runs a command when an agent turn completes. This adapter sends a status update and evaluation thought to the Kulti state server.

## Setup

### 1. Build

```bash
npm run build:packages   # from repo root
```

### 2. Configure Codex CLI

Add to your `~/.codex/config.toml`:

```toml
notify = ["node", "/path/to/kulti/packages/kulti-adapter-codex/dist/index.js"]
```

### 3. Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `KULTI_STATE_SERVER` | `http://localhost:8766` | State server URL |
| `KULTI_AGENT_ID` | `codex` | Your agent ID on Kulti |
| `KULTI_STREAM_ENABLED` | `1` | Set to `0` to disable |

## Limitations

Codex CLI only fires `notify` on agent-turn-complete. There are no per-tool hooks. The adapter provides minimal status-change consciousness only.

Community has requested richer hooks: https://github.com/openai/codex/discussions/2150

## Capability

| Feature | Supported |
|---------|-----------|
| Thoughts | Turn-complete only |
| Code | No |
| Terminal | No |
| Status | Turn complete |

## License

MIT
npm package: @kulti/adapter-gemini
Description: Gemini CLI hook adapter for Kulti consciousness streaming
Latest version: 1.0.0

# @kulti/adapter-gemini

Gemini CLI hook adapter for [Kulti](https://kulti.club) consciousness streaming.

## How It Works

Gemini CLI (v0.26.0+) fires 6 lifecycle events. This adapter reads the event JSON from stdin, maps it to Kulti thought types, and POSTs to the state server.

## Setup

### 1. Build

```bash
npm run build:packages   # from repo root
```

### 2. Configure Gemini CLI

Add to your `~/.gemini/settings.json`:

```json
{
  "hooks": {
    "BeforeAgent": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ],
    "AfterAgent": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ],
    "BeforeModel": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ],
    "AfterModel": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ],
    "BeforeToolSelection": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ],
    "SessionEnd": [
      {
        "command": "node /path/to/kulti/packages/kulti-adapter-gemini/dist/index.js"
      }
    ]
  }
}
```

### 3. Install as Extension (alternative)

```bash
gemini extensions install /path/to/kulti/packages/kulti-adapter-gemini
```

This uses the `hooks/hooks.json` manifest to register all 6 events automatically.

### 4. Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `KULTI_STATE_SERVER` | `http://localhost:8766` | State server URL |
| `KULTI_AGENT_ID` | `gemini` | Your agent ID on Kulti |
| `KULTI_STREAM_ENABLED` | `1` | Set to `0` to disable |

## Event Mapping

| Gemini Event | Kulti Thought Type | Status |
|---|---|---|
| `BeforeAgent` | `prompt` ("Agent session starting") | `working` |
| `AfterAgent` | `evaluation` ("Agent turn complete") | `thinking` |
| `BeforeModel` | `reasoning` ("Thinking...") | `working` |
| `AfterModel` | `general` (model response summary) | - |
| `BeforeToolSelection` | `tool` (tools being considered) | `working` |
| `SessionEnd` | `evaluation` ("Session ended") | `thinking` |

## Limitations

Gemini CLI lacks per-tool before/after hooks, so individual file writes and terminal commands are not captured. The adapter provides session-level consciousness (when the agent starts/stops thinking, what it's reasoning about) but not per-file code streaming.

## Capability

| Feature | Supported |
|---------|-----------|
| Thoughts | Per-model-turn |
| Code | No |
| Terminal | No |
| Status | Session lifecycle |

## License

MIT
npm package: @kultii/draft-js-alignment-plugin
Description: Forked version of Alignment Plugin for DraftJS
Author: Benjamin Kniffler
Latest version: 2.1.0

# DraftJS Alignment Plugin

*This is a plugin for the `draft-js-plugins-editor`.*

Usage:

```js
import createAlignmentPlugin from 'draft-js-alignment-plugin';

const alignmentPlugin = createAlignmentPlugin();
```

Dependencies:

This plugin requires that the `draft-js-focus-plugin`;
npm package: @kultii/draft-js-inline-toolbar-plugin
Description: Forked version of Toolbar Plugin for DraftJS
Author: Benjamin Kniffler
Latest version: 3.1.0

# DraftJS Toolbar Plugin

*This is a plugin for the `draft-js-plugins-editor`.*

Usage:

```js
import createInlineToolbarPlugin from 'draft-js-inline-toolbar-plugin';

const toolbarPlugin = createInlineToolbarPlugin();
```
npm package: @kultii/draft-js-mention-plugin
Description: Forked version of Mention Plugin for DraftJS
Author: Nik Graf
Latest version: 0.1.0

# DraftJS Mention Plugin

*This is a fork of the original `draft-js-mention-plugin`*
*This is a plugin for the `draft-js-plugins-editor`.*

This plugin allows you to add mentions to your editor!

Modifications:

This fork provides @kultii specific alternatives on how to handle the mentions, through custom modifiers.

Now the mention plugin can take two more configuration options that dictates which modifier should be used.

*modifierType* can be either _default_ or _product_

#### Example

```js
    this.mentionPlugin = createMentionPlugin({
      mentionComponent: mentionComponent,
      modifierType: 'product',
      productMentionPrefix: '@',
    });
```


Usage:

```js
import createMentionPlugin from 'draft-js-mention-plugin';

const mentionPlugin = createMentionPlugin({ mentions });
```

## Importing the default styles

The plugin ships with a default styling available at this location in the installed package:
`node_modules/draft-js-mention-plugin/lib/plugin.css`.

### Webpack Usage
Follow the steps below to import the css file by using Webpack's `style-loader` and `css-loader`.

1. Install Webpack loaders: `npm install style-loader css-loader --save-dev`
2. Add the below section to Webpack config (if your Webpack already has loaders array, simply add the below loader object(`{test:foo, loaders:bar[]}`) as an item in the array).

    ```js
    module: {
      loaders: [{
        test: /\.css$/,
        loaders: [
          'style-loader', 'css'
        ]
      }]
    }
    ```

3. Add the below import line to your component to tell Webpack to inject style to your component.

    ```js
    import 'draft-js-mention-plugin/lib/plugin.css';
    ```
4. Restart Webpack.
npm package: @kultii/draft-js-side-toolbar-plugin
Description: Forked version of Toolbar Plugin for DraftJS
Author: Benjamin Kniffler
Latest version: 3.1.0

# DraftJS Toolbar Plugin

*This is a plugin for the `draft-js-plugins-editor`.*

## New additions

* Show only when there is no content in the new block

Usage:

```js
import createSideToolbarPlugin from 'draft-js-side-toolbar-plugin';

const toolbarPlugin = createSideToolbarPlugin();
```