open-index/open-npm huggingface dataset:
npm package: @genidex/logger
Description: A lightweight custom logger for Node.js applications, designed to enhance standard `console.log`, `console.warn`, and `console.error` outputs with file name and line number of the log origin.
Latest version: 1.0.4

# Logger

A lightweight custom logger for Node.js applications, designed to enhance standard `console.log`, `console.warn`, and `console.error` outputs with file name and line number of the log origin.

## ✨ Features

- Overrides built-in `console` methods to automatically display:
  - File path
  - Line and column number of the call
- Simple usage: just `require` it at the entry point of your app.
- Easy to disable via environment variable.

## 🛠 Installation

```bash
npm i @genidex/logger
```

## ⚙ Usage

Import the logger at the top of your application (e.g., in `hardhat.config.js` or any Node.js script):

```js
require('@genidex/logger');
console.log("Deploying contract...");
```

**Output:**

```bash
Deploying contract...      src/deploy/deploy.js:42:17
```

## 🔒 Environment Control

Disable the logger by setting the following environment variable:

```env
DISABLE_LOGGER=true
```

This is useful in production or when detailed logs are not needed.

## 🧪 Testing

Just run any Node.js file after requiring the logger and check the terminal output.


## 📜 License

MIT License
npm package: @genie-ai/genie-router-cli-local
Description: A genie router plugin that can be used to send input and receive output in the terminal where genie-router is started.
Author: matueranet
Latest version: 2.0.0

This is a plugin for the [https://github.com/matueranet/genie-router](genie-router)
project. It can be used to send input and receive output in the terminal where genie-router is started.

# Setup

At the plugin location ($HOME/.genie-router), type:

    npm install --save @genie-ai/genie-router-plugin-cli-local

Enable the plugin in your genie-router configuration, by creating an entry with its name.

```json
{
  "plugins": {
    "cli-local": {}
  }
}
```
npm package: @genie-ai/genie-router-plugin-api-http
Description: A genie-router plugin that provides a generic HTTP API for external clients.
Author: matueranet
Latest version: 2.0.0

# genie-router-plugin-api-http
A genie-router plugin that provides a generic HTTP API for external clients.

This is a plugin for the [https://github.com/matueranet/genie-router](genie-router)
project. It adds a HTTP endpoint to which external clients can send messages
and receive output.

# Configuration

Update the `plugins` block in the _genie-router_ configuration and add the key
`api-http`, which should be an object. This will enable the plugin. `http` should
be enabled in the genie-router configuration.

This plugin supports 3 optional configuration parameters:

- endpoint, the HTTP endpoint to listen to (defaults /api/message)
- accessToken, requires that the requests are using an _accessToken_ (Default is disabled).
- timeout, the maximum of milliseconds the process should waits for the invoked brain to respond (defaults to 5000 = 5 seconds).

## Example

```json
"api-http": {
  "endpoint": "/api/message",
  "timeout": 5000,
  "accessToken": "protection-enabled"
}
```
## Authorization

If the `accessToken` attribute is set, each request should include a `Authorization: Bearer [accessToken]` header.
Else a 401 HTTP response is returned.

# Requests / responses

The request should have be a JSON object, with at least an `input` attribute. You can optionally
include a `metadata` attribute which will be returned in the response.

```json
{
  "input": "Hello genie!",
  "metadata": {
    "internal-request-id": 5
  }
}
```

If you add the attribute `userId` and/or `sessionId` in the request metadata this
will be mapped to the internal userId and sessionId in genie-router, where they can be used
by other plugins.

The responses will contain a unique identifier for each request, in the `id` attribute.

## Valid response

```json
{
  "id": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
  "message": "How may I help you, master?",
  "metadata": {
    "internal-request-id": 5
  }
}
```

## Errors

```json
{
  "id": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
  "error": "Timeout contacting brain."
}
```
npm package: @genie-ai/genie-router-plugin-brain-mentions
Description: A genie router brain selector that selects a brain if its name is mentioned in the first words of an input. 
Author: matueranet
Latest version: 2.0.0

# genie-router-plugin-brain-mentions

A genie-router brain selector that selects a brain if its name is mentioned in the first words of an input.

This is a plugin for the [https://github.com/matueranet/genie-router](genie-router)
project. It parses the input and scans the first words for a mentioning of a specific brain
or a configured alias for a brain.

For example you can configure the plugin to recognize your custom _api.ai_ agent with the keyword
**Sam**: _Ask sam what is the current weather._ This will result into the input _what is the current
weather_ to api.ai.

# Installation

To install go to the `.genie-router` folder in your home folder (or custom configured folder) and type:

	npm install --save @genie-ai/genie-router-plugin-brain mentions`

# Configuration

To enable the plugin add the configuration key for the plugin: `brain-mentions` to the `config.json` of
_genie-router_.

## Options

### aliases (object, optional)

An object with alias names for a brain. The property of the object is the alternative name,
the value of the object should be the keyword for the brain. The default value is an empty object.

```json
{
	"aliases": {
		"sam": "api-ai",
		"speak": "echo"
	}
}
```

This configuration allows sentences such as `speak what is currently typed` to be sent to a brain of choice,
instead of the default configured brain.

### partsOfInputToCheck (integer, optional)

The number of words to check at the start of the sentence. Default value is 3

### Full example

Add the configuration to the configuration of _genie-router_,
in the `plugins` attribute.

```
{
  "brain-mentions": {
    "aliases": {
		"sam": "api-ai",
		"speak": "echo"
	},
	"partsOfInputToCheck": 3
  }
}
```
npm package: @genie-ai/genie-router-plugin-dashbot
Description: genie-router plugin that logs messages to dashbot.io.
Author: matueranet
Latest version: 3.0.0

genie-router-plugin-dashbot
===========================

This [genie-router](https://github.com/matueranet/genie-router) plugin logs all received
input and output to [dashbot.io](https://dashbot.io).

# Installation and configuration

Run `npm install matueranet/genie-router-plugin-dashbot` in your genie-router plugin
location (default is `$HOME/.genie-router`). Add an attribute `dashbot` to your `config.json`.

There is only one configuration item, the `apiKey` of the bot you configured at dashbot.io. The
apiKey can be found in your bot settings.

## Example

```
{
  "plugins": {
    "dashbot": {
      "apiKey": "<insert-key-here>"
    }
  }
}
```
npm package: @genie-ai/genie-router-plugin-dialogflow
Description: A genie router plugin that enables dialogflow as the brain for genie-router.
Author: matueranet
Latest version: 3.0.0

This is a plugin for the [https://github.com/matueranet/genie-router](genie-router)
project. It communicates with an agent configured on the [Dialogflow](https://dialogflow.com) service
to create a brain that generates a reply to the input from a client.

# Dialogflow Setup

Create an agent at dialogflow.com and set it up with intents, fulfillments, etc. Dialogflow requires
an elaborate method for setting up the Api Access, via Google Cloud Service Accounts, follow
[this guide](https://dialogflow.com/docs/reference/v2-auth-setup) to obtain a JSON file with the project.
You need a **Dialogflow API Client** service account. It is not necessary to set the environment variable as explained in the guide, this plugin will take care of that.

Legacy projects are no longer supported by this plugin. Version 2.0.0 does support Legacy projects, that
can be found [here](https://github.com/genie-ai/genie-router-plugin-dialogflow/releases/tag/2.0.0).

# Configuration

Your private API Key was generated in the Dialogflow setup step. The projectId can be obtained in your [Dialogflow Dashboard](https://console.dialogflow.com):

1. Click on the gear icon, to the right of the agent name.
2. The projectId is listed under the GOOGLE PROJECT section

At the plugin location ($HOME/.genie-router), type:

    npm install --save @genie-ai/genie-router-plugin-dialogflow


Add the Dialogflow API key for the agent to the `config.json` file of _genie-router_,
in the `plugins` attribute.

```json
{
  "dialogflow": {
    "privateKeyFile": "/path/to/file.json",
    "projectId": "<projectId>",
    "languageCode": "en"
  }
}
```

The languageCode is optional, and will default to 'en'. [Dialogflow language overview](https://dialogflow.com/docs/reference/language)
npm package: @genie-ai/genie-router-plugin-echo
Description: A genie-router plugin that exposes a brain that echoes the input received from the client.
Author: matueranet
Latest version: 2.0.0

This is an example plugin for the [https://github.com/matueranet/genie-router](genie-router)
project.

It exposes a brain that returns the input message received from a client, prefixed with ECHO.

# Installation

In your genie-router installation folder (`$HOME/.genie-router`) install the plugin by executing:

    npm install --save @genie-ai/genie-router-plugin-echo

This will install the module from the github repository. Restart genie-router to activate
it. Update your configurationto utilize the brain.
npm package: @genie-ai/genie-router-plugin-facebook-messenger
Description: A genie-router plugin that enables the use of Facebook Messenger as a client. 
Author: matueranet
Latest version: 2.0.0

A genie-router plugin that enables the use of Facebook Messenger as a client.

# Configuration

## SSL

Facebook requires that your genie-router instance listens on a https URL. There are plenty
of methods to achieve this, but here are two options:

1. Use a proxy tool like [_ngrok_](https://ngrok.io) or [_localtunnel_](https://www.npmjs.com/package/localtunnel) to get a public endpoint that supports https
2. Setup an [_apache_](http://www.apachetutor.org/admin/reverseproxies) or
[nginx](https://www.keycdn.com/support/nginx-reverse-proxy/) webserver that will act as a
[_reverse proxy_](https://en.wikipedia.org/wiki/Reverse_proxy). You can use [_letsencrypt_](https://letsencrypt.org/)
to configure a URL with https/ssl.

## Facebook

First, make sure that your genie-router installation has the `http` module enabled
and is accessible via https (facebook requires this for webhooks). One option is
to place genie-router behind a webserver (apache or nginx) via a reverse proxy. This way,
the SSL/HTTPS is handled by the webserver.

Then, follow the [Getting Started](https://developers.facebook.com/docs/messenger-platform/getting-started/app-setup)
guide to create your App and Page. Remember what you configure as the verifyToken.

Check `messages` as the webhook subscription. Configure the webhook URL as `https://<yourdomain.com>/facebook/messenger`. The verify token should be what you are
going to configure in the genie-router config.

The configuration should already be in place and genie-router restart for the verify token
to be configured and Facebook to accept the webhook URL.

## genie-router

At the plugin location ($HOME/.genie-router), type:

    npm install --save @genie-ai/genie-router-plugin-facebook-messenger

This plugin needs to be configured in the `plugins` section of _genie-router_. There are
three properties that can be configured.

- accessToken, the pageAccessToken generated by Facebook when configuring the FB app
- verifyToken, the verifyToken you configured for the webhook
- password, an optional configuration parameter, that requires users to identify themselves
with a password before they can send text to genie-router.

The password configuration attribute is optional, and can be used to require a password
before someone can send commands via Telegram. A hash of the password is stored in the
persistent storage, so that the user can be automatically granted access in a next session.
A user has to type the password anew when the password changes in the configuration.

To not require a password, simply remove the attribute or set it to null.

## Example config

```
{
  "plugins": {
    "facebook-messenger": {
        "verifyToken": "genierouter",
        "accessToken": "xxx",
        "password": "secure-4-me"
    }
  }
}
```
npm package: @genie-ai/genie-router-plugin-google-assistant
Description: Genie Router plugin to interact with the Google assistant.
Author: matueranet
Latest version: 2.0.0

This plugin is built on the excellent [google-assistant module](https://github.com/endoplasmic/google-assistant). It enables
communication with the Google Assistent via the genie-router clients.

Its configuration consists of three steps:

1. Configure a Google Cloud project
2. Install the plugin
3. Link your Google credentials

# Google Cloud Configuration

[Follow the instructions](https://developers.google.com/assistant/sdk/prototype/getting-started-other-platforms/config-dev-project-and-account) to create
a JSON file for OAuth2 permissions.

Verify using an 'official' Assistant client (Android phone, Google Home, etc), that you can use the Assistant
with your account. Google Apps accounts for example need to have it explicitly enabled.

# Install plugin

## Plugin configuration

### googleClientSecretPath

Required. This is the file path to the .json file you create by following the instruction for the enabling of the API on
Google Cloud.

### tokensStorePath

Required. The filename to store the authorization tokens that link your Google account
to the Cloud project client id.

### locale

Optional. The locale to use. Defaults to the en-US locale.

### Example

```
{
  "plugins": {
    "google-assistant": {
      "googleClientSecretPath": "<path to google client_secret...json",
      "tokensStorePath": "<path to store received google tokens.json>",
      "locale": "en-US"
    }
  }
}
```

# Link your Google credentials

The assistent requires a Google account to work. Change to your plugin location folder ($HOME/.genie-router by default).
Install the plugin by running:

    npm install --save matueranet/genie-router-plugin-google-assistant

After installation has completed, run (still in your plugin folder):

    ./node_modules/.bin/google-assistant-setup

This will start the linking process of your Google account. It will output something similar to:

```
Attempted to automatically open the URL, but if it failed, copy/paste this in your browser:
https://accounts.google.com/o/oauth2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fassistant-sdk-prototype&response_type=code&...
Paste your code: (node:996) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Exited with code 3
```

The unhandled promise rejection can be ignored. Open the URL in your browser, login and authorize the app to use your account. Copy the
code displayed, and paste it in the console and press enter. The process should continue and output: _Assistant initialized._ Next
time you run the script it should not show the URL again, but immediately echo the Assistant initialized output.

# Future improvements

- Simplify generating an accessToken for the Google account by doing an OAuth flow from the webbrowser.
npm package: @genie-ai/genie-router-plugin-rivescript
Description: A genie-router brain plugin that allows the user to use rivescript as the chat engine.
Author: matueranet
Latest version: 2.0.0

# genie-router-plugin-rivescript

A genie-router brain plugin that allows the user to use [rivescript](https://www.rivescript.com/)
as the chat engine and process input to generate a reply.

## Configuration

At the plugin location ($HOME/.genie-router), type:

    npm install --save @genie-ai/genie-router-plugin-rivescript

To enable this plugin, at an attribute called `rivescript` to the `plugins` section
of the _genie-router_ `config.json`. This plugin has one required configuration attribute: *scripts*.
This must point to a directory with one or more `.rive` scripts to load.
npm package: @genie-ai/genie-router-plugin-sentry
Description: A plugin that enables sentry.io error reporting in genie-router.
Author: matueranet
Latest version: 2.0.0

genie-router-plugin-sentry
===========================

This [genie-router](https://github.com/matueranet/genie-router) plugin monitors
for any errors occurring in the running application using [Sentry](https://sentry.io).

# Installation and configuration

Run `npm install --save matueranet/genie-router-plugin-sentry` in your genie-router plugin
location (default is `$HOME/.genie-router`). Add an attribute `sentry` to your `config.json`.

This plugin is added as a HTTP plugin, it is therefore required to have HTTP enabled
at the genie-router instance to use its functionality.

There is only one configuration item, the `dsn` of the configured project at sentry.io.

## Example

Replace the DSN value with the actual project DSN from sentry.io.

```
{
  "plugins": {
    "sentry": {
      "dsn": "https://******@sentry.io/<project>"
    }
  }
}
```
npm package: @genie-ai/genie-router-plugin-telegram-bot
Description: A genie router plugin that creates a Telegram bot to send input and receive output.
Author: matueranet
Latest version: 3.0.0

This is a plugin for the [https://github.com/matueranet/genie-router](genie-router)
project. The [Telegram bot API](https://core.telegram.org/bots/api) is used as a client for input.

# Setup

Simply follow the instructions on the Telegram bot API explanation page to acquire a token for your bot. Place that token
in your client configuration, for example:

```json
{
  "plugins": {
    "telegram-bot": {
      "token": "<token goes here>",
      "password": "genie"
    }
  }
}
```

The password configuration attribute is optional, and can be used to require a password
before someone can send commands via Telegram. A hash of the password is stored in the
persistent storage, so that the user can be automatically granted access in a next session.
A user has to type the password anew when the password changes in the configuration.

To not require a password, simply remove the attribute or set it to null.
npm package: @genie-ai/genie-router-plugin-web-client
Description: A web client for Genie Router, allows you to send messages via a webbrowser.
Author: matueranet
Latest version: 2.0.0

genie-router-plugin-web-client
==============================

This plugin offers a web interface to chat with _genie-router_. It will register itself at _/web-client/_. Optionally, by configuring `registerOnRoot` to true, it will also listen on `/`.

This plugin requires that the [http-api](https://github.com/genie-ai/genie-router-plugin-api-http) plugin is installed.

# Installation

At the plugin location ($HOME/.genie-router), type:

    npm install --save @genie-ai/genie-router-plugin-web-client

Then add `web-client: {}`, to the `plugins` section of the genie-router configuration. Optionally add
additional configuration items.

# Configuration

There are several config items, each of which are optional:

1. _endpoint_, the HTTP path on genie-router on which _genie-router-plugin api-http_ listens, defaults to _/api/message_
2. _accessToken_, if configured, the accessToken, if configured for invoking the HTTP endpoint
3. _registerOnRoot_, If the web-client endpoint must also be registered at `/`
4. _prefix_, if genie-router is configured on a subdirectory of a domain this must be the prefix to access it.
The prefix will be appended before _/web-client/_

# Room for improvement

- When/if genie-router supports it, get the _http-api_ plugin configuration via an internal API.
- Add voice input if supported in the webbrowser

# Credits

Uses the [unnamed CSS framework](http://smakosh.com/unnamed/index.html) Textballoon via [here](http://nicolasgallagher.com/pure-css-speech-bubbles/).
npm package: @genie-solutions/motif-tokens
Description: Design Tokens for Motif
Latest version: 3.3.0

# Motif Tokens

Design Tokens for the Motif Design System. 

This package is mostly useful when you need to create styling or tooling that is aligned to Motif, but cannot leverage the core Motif React library. 

If you're developing a React app, use the core Motif React library.

If you're creating something like a custom bootstrap theme, a Figma plugin, use these tokens.

Read a bit more about Design Tokens concept here:
https://spectrum.adobe.com/page/design-tokens/
https://css-tricks.com/what-are-design-tokens/

# Using the tokens in your project

## 1. Install library
The library is deployed to `npm` and installed via an npm package. [See it here](https://www.npmjs.com/package/@genie-solutions/motif-tokens).

```bash
yarn add @genie-solutions/motif-tokens

```

## 2. Transform tokens into the data you need
### SCSS:
**Use case:** I have a project that uses SCSS and I need access to Motif's tokens.

**Solution:** Utilise the exported `tokens.scss` file to access all of the vars.

```scss
// my-style.scss
@import '../node_modules/motif-tokens/tokens.scss';

article {
    background-color: $motif-color-primary;
}
```

### JavaScript:
**Use case:** I need to create style definitions in JavaScript that utilise values from the Motif Tokens.

**Solution:** import the Motif Tokens JavaScript file and "transform" the tokens into the format you need.

**Example:**

```js
// FontWeights Tokens in package
const FontWeights: { [x: string]: FontWeightToken } = {
    regular: {
        name: 'regular',
        description: 'Regular font weight used with the default text.',
        data: { weightAsString: 'Regular', weight: 400 },
    },
    // ...
};
```

```js
import { FontWeights } from 'motif-tokens';

// Take each font weight and transform them to an object
const fontWeights = () => {
  const output = {};
  FontWeights.map(({ name, value, unit }) => (output[name] = `${value}${unit}`));
  return output;
};

// Sample Output:
const fontWeights: {
    regular: 400,
    // ...
}
```

# Developing / Contributing to the tokens
## Install
1. Install dependencies

```bash
yarn install
```

2. Build the tokens

```bash
yarn build
```

# Publishing Changes
Any marge to master that will result in a new build + deploy of `@genie-solutions/motif-tokens` on NPM. You don't need to bump the version number manually, the pipeline will do that based on the `MAJOR`, `MINOR` and `PATCH` labels added to the MR.

Not all files will trigger the deploy, it's namely the following as listed in `.gitlab-ci.yml`:
```
src/**/*
yarn.lock
package.json
webpack.config.js
```
npm package: @genie-solutions/sms-calc
Description: A Utility for calculating SMS credits
Author: Genie Solutions - Gentu Team
Latest version: 1.0.15

# sms-calc

A Utility for calculating SMS credits or cost.

SMS messages can contain up to 160 characters from the GSM 03.38 character set. If any characters outside that set exist in the message it can contain up to 70 characters.
If your message is longer these limits, it will be split into multiple segments.
This library calculates the number of segments used for a given message.

## Relevant links
https://developers.messagemedia.com/how-a-single-whitespace-can-triple-your-cost/
https://frightanic.com/software-development/regex-for-gsm-03-38-7bit-character-set/
http://chadselph.github.io/smssplit/
npm package: @geniebook/core
Description: This librairy is a set of React component to help you build beautiful and accesibile apps
Author: Geniebook
Latest version: 0.0.12

# GBUI CORE

This librairy is a set of React component to help you build beautiful and accesibile apps

## Getting started

This library is based on tailwind css so to use it you need to install this library and Tailwind with the following steps.

### Install GBUI CORE

```
npm install --save @geniebook/core
```

Or alternatively with yarn :

```
yarn add @geniebook/core
```

### Install tailwind

Before using this library you need to add tailwind to your React project. [Follow this link to install it](https://tailwindcss.com/docs/installation)

#### Using Create React App

`npm install -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9 @craco/craco`
Or with yarn
`yarn -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9 @craco/craco`

Then replace in your `package.json` :

```
  {
    "scripts": {
     "start": "react-scripts start",
     "build": "react-scripts build",
     "test": "react-scripts test",
     "start": "craco start",
     "build": "craco build",
     "test": "craco test",
      "eject": "react-scripts eject"
    },
  }
```

### Theme configuration

You can import the default presets in your `tailwind.config.js` file :

```
// tailwind.config.js
module.exports = {
  presets: [
    require('@geniebook/core/tailwind-theme')
  ],
}
```

Colors that are used :

- primary : In presets : `colors.purple`
- success : In presets : `colors.green`
- error : In presets : `colors.red`
- warning : In presets : `colors.yellow`
- info : In presets : `colors.blue`
- foreground : In presets : `colors.gray[900]`
- background : In presets : `white`
- gray : In presets : `colors.gray`
- white : In presets : `white`
- black : In presets : `black`
npm package: @geniebook/gbui
Description: A simple UI kit for React projects
Author: beautyfu
Latest version: 1.0.1

# Geniebook UI

A UI library for Geniebook which can be used cross applicatiions. It contains various components, utilities, styling, etc.

## Usage

Install dependencies
```
$ yarn install
```


To run development, it using storybook as a component previewer.

```
$ yarn storybook
```

## Build

```
yarn build
```
npm package: @geniem/geniem-rules-stylelint
Description: Geniem Oy stylelint rules package
Author: Geniem Oy
Latest version: 1.0.4

# @geniem/geniem-rules-stylelint

> A shareable stylelint config for CSS used at Geniem

## Installation

```bash
npm install @geniem/geniem-rules-stylelint --save-dev
```

## Usage

If you've installed `@geniem/geniem-rules-stylelint` locally within your project, just set your `stylelint` config to `package.json`:

```json
{
    "name": "vendor/package",
    "version": "0.0.0",
    "stylelint": {
      "extends": [ "@geniem/geniem-rules-stylelint" ]
    }
}
```

If you've globally installed `@geniem/geniem-rules-stylelint` using the `-g` flag, then you'll need to use the absolute path to `@geniem/geniem-rules-stylelint` in your config e.g.

```json
{
    "name": "vendor/package",
    "version": "0.0.0",
    "stylelint": {
        "extends": [ "/absolute/path/to/@geniem/geniem-rules-stylelint" ]
    }
}
```

### Extending the config

Simply add a `"rules"` key to your config, then add your overrides and additions there.

For example, to change the `at-rule-no-unknown` rule to use its `ignoreAtRules` option, turn off the `block-no-empty` rule, and add the `unit-whitelist` rule:

```json
{
  "name": "vendor/package",
  "version": "0.0.0",
  "stylelint": {
    "extends": "@geniem/geniem-rules-stylelint",
    "rules": {
      "at-rule-no-unknown": [
        true,
        {
          "ignoreAtRules": [ "extends" ]
        }
      ],
      "block-no-empty": null,
      "unit-whitelist": [ "em", "rem", "s" ]
    }
  }
}
```

## License

Licensed under the [MIT license](http://opensource.org/licenses/MIT).
npm package: @geniemouse/prettier-config
Description: Shared Prettier configuration settings
Author: Lucy Barker
Latest version: 1.1.5

<!-- MarkdownTOC levels="2,3,4" -->

1. [Installation](#installation)
1. [Configuration](#configuration)
    1. [Overriding rules](#overriding-rules)

<!-- /MarkdownTOC -->

# `@geniemouse/prettier-config`

Keep project code formatting consistent across projects with [Prettier] and this base configuration.

## Installation

1. [Install Prettier] locally:

```shell
# Using npm:
npm install --save-dev --save-exact prettier

# Using yarn:
yarn add prettier --dev --exact
```

2. Install the _GenieMouse_ Prettier configuration package locally:

```shell
# Using npm:
npm install --save-dev @geniemouse/prettier-config

# Using yarn:
yarn add --dev @geniemouse/prettier-config
```

## Configuration

Reference the configuration package in your project's `package.json` file:

```jsonc
{
    // ...
    "prettier": "@geniemouse/prettier-config"
    // ...
}
```

**NOTE:**
This method does not offer a way to extend the shared configuration. To do that, see the "Overriding rules" section below.

### Overriding rules

If you need to override some properties from this shared configuration, import it in a `prettierrc.js` file and export the modifications:

```javascript
module.exports = {
    ...require("@geniemouse/prettier-config"),
    // Shared Prettier configuration rule overrides...
    semi: false
};
```

<!-- LINK REFERENCES -->

[prettier]: https://prettier.io
[install prettier]: https://prettier.io/docs/en/install.html
[prettier configuration file]: https://prettier.io/docs/en/configuration.html

<!-- end: LINK REFERENCES -->
npm package: @geniesoft/nest-ddd-generator
Description: NestJS 기반 DDD 모듈 생성기
Author: yjaewon
Latest version: 1.0.3

## DDD 구조 간편하게 생성하기

DDD(도메인 주도 설계) 는 각각의 기능을 담당하는 계층과 도메인들로 나뉘어져 각각의 계층별로 담당하는 부분이 명확하게 보인다는 장점을 가지고 있습니다.

하지만 이 말인 즉슨, 각각의 계층과 도메인을 구현해야 한다는 단점 또한 가지고 있습니다.

다음은 DDD에서 하나의 모듈을 구현 할 때 요구되는 파일 구조 입니다.

```bash
src
└── module
    ├── app.module.ts
    └── admin
        ├── admin.module.ts
        ├── application
        │   ├── dtos
        │   │   └── // ...
        │   ├── handlers
        │   │   └── // ...
        │   └── usecases
        │   │   └── // ...
        ├── domain
        │   ├── models
        │   │   └── // ...
        │   ├── repositories
        │   │   └── // ...
        │   └── services
        │   │   └── // ...
        ├── infra
        │   ├── mappers
        │   │   └── // ...
        │   └── repositories
        │   │   └── // ...
        └── presentation
            ├── controllers
            │   └── admin.controller.ts
            └── dtos
                ├── request
                │   └── // ...
                └── response
                    └── // ...
```

이 단점을 해결하기위해 본 모듈에서는 DDD 기본 구조를 생성해주는 CLI 기능을 제공합니다.

DDD 기본 구조를 생성하기 위해서는 다음의 명령어를 실행하면 됩니다.

```bash
$ ddd-generate

----------------------------------------------------------------
 _____  _____  _   _  _____  _____  _____  _____ ______  _____
|  __ \|  ___|| \ | ||_   _||  ___|/  ___||  _  ||  ___||_   _|
| |  \/| |__  |  \| |  | |  | |__  \ `--. | | | || |_     | |
| | __ |  __| | . ` |  | |  |  __|  `--. \| | | ||  _|    | |
| |_\ \| |___ | |\  | _| |_ | |___ /\__/ /\ \_/ /| |      | |
 \____/\____/ \_| \_/ \___/ \____/ \____/  \___/ \_|      \_/

----------------------------------------------------------------

Nest-DDD Module Generator

모듈 생성 규칙
 * 모듈명은 한글 및 특수문자를 포함할 수 없습니다.
 * 이미 사용중인 모듈명은 사용할 수 없습니다.
 * 모듈명은 kebab-case로 자동 변환됩니다.
   ex) TestApplication -> test-application

생성된 모듈이 저장될 경로를 입력하세요 (default: src/module):
```

이후, 원하시는 모듈명을 입력하신 뒤 사용하시면 됩니다.
npm package: @genifi/genifi-aggregator-sdk
Description: Official TypeScript SDK for Genifi Aggregator API
Author: Genifi
Latest version: 1.5.4

### Genifi Aggregator-SDK

The Genifi Aggregator-SDK is a powerful software development kit designed to facilitate seamless integration with the Genifi Aggregator platform. This SDK provides developers with the necessary tools and libraries to interact with the Genifi Aggregator API, enabling them to build applications that can efficiently manage and aggregate data from various sources.

### Features
- Easy-to-use interface for interacting with the Genifi Aggregator API
- Comprehensive documentation and examples
- Fetching and interacting with genifi platform in a seamless manner

### Contributing

```js

// installing the dependencies
pnpm install

// compiling the sdk

pnpm build

// updating the changelog

pnpm changeset

// syncing the version

pnpm changeset version

// publishing the sdk

pnpm publish
```



© 2025 Genifi Inc. All rights reserved

---
npm package: @genii/guidance
Description: Template guidance documents for the orchestrator system
Latest version: 1.0.5

# @genii/guidance

Template guidance documents and documentation for the orchestrator system.

## Overview

The guidance system provides structured documents that define an AI agent's identity, behavior, and capabilities. These documents are loaded by the orchestrator and used to configure agents.

## Guidance Folder Structure

```
guidance/
├── SOUL.md              # Core identity and values
├── INSTRUCTIONS.md      # Behavioral guidelines
├── tasks/               # Task definitions
│   └── *.md
├── skills/              # Skill bundles
│   └── skill-name/
│       ├── README.md
│       └── artifacts/
└── memories/            # Persistent storage
    ├── *.md             # Markdown memories
    └── .system/         # JSON state
        └── *.json
```

## Documents

### SOUL.md

The soul document defines the agent's core identity, values, and personality. This is the most fundamental document and shapes all agent behavior.

See [docs/soul.md](./docs/soul.md) for detailed documentation.

### INSTRUCTIONS.md

The instructions document provides specific behavioral guidelines, constraints, and operating procedures for the agent.

See [docs/instructions.md](./docs/instructions.md) for detailed documentation.

### Tasks

Tasks are specific goals or objectives that can be assigned to an agent. Each task is a markdown file in the `tasks/` directory.

See [docs/tasks.md](./docs/tasks.md) for detailed documentation.

### Skills

Skills are reusable capabilities that can be loaded by an agent. Each skill is a directory containing a README.md and optional artifacts.

See [docs/skills.md](./docs/skills.md) for detailed documentation.

### Memories

The memory system provides persistent storage for agents to maintain state across sessions.

See [docs/memories.md](./docs/memories.md) for detailed documentation.

## Templates

The `templates/` directory contains starter templates for creating your own guidance documents:

- `templates/SOUL.md` - Template soul document
- `templates/INSTRUCTIONS.md` - Template instructions
- `templates/tasks/example-task.md` - Example task definition
- `templates/skills/example-skill/README.md` - Example skill

## Usage

1. Copy the templates to your project's guidance directory
2. Customize the documents for your use case
3. Configure the orchestrator to use your guidance path

```typescript
import { createCoordinator, createPiAdapter } from "@genii/orchestrator";

const coordinator = createCoordinator({
  adapter: createPiAdapter({ provider: "anthropic", model: "claude-3-5-sonnet-20241022" }),
  defaultGuidancePath: "./my-guidance",
});

await coordinator.start();

const agent = await coordinator.spawn({
  guidancePath: "./my-guidance",
  task: "example-task",
  input: { message: "Hello!" },
  tools: myToolRegistry,
});
```
npm package: @geninhocell/eslint-config
Description: ESLint configuration used by geninhocell.
Author: geninhocell@gmail.com
Latest version: 1.2.4

# geninhocell ESLint config

## Whats included?

- Standard config base;
- React plugin;
- React Native plugin;
- React Hooks plugin;
- JSX a11y plugin;
- @typescript-eslint plugin;
- Prettier;

## Install the dependencies

```sh
$ npm i -D eslint @geninhocell/eslint-config
```

## Setup react

1. Create a `.eslintrc.json` file extending the config:
```json
{
  "extends": "@geninhocell/eslint-config/react"
}
```

## Setup react-native

1. Create a `.eslintrc.json` file extending the config:
```
{
  "extends": "@geninhocell/eslint-config/native"
}
```

## Setup NodeJS

1. Create a `.eslintrc.json` file extending the config:
```
{
  "extends": "@geninhocell/eslint-config/node"
}
```

> You can also use a `.eslintrc.js` instead of JSON if you prefer.

## License

[License MIT](https://andreasonny.mit-license.org/2019) © Andrea SonnY
npm package: @geniosoy/react-cl-audio-player-nocss
Description: react-cl-audio-player React component
Author: Cezar Luiz
Latest version: 2.3.6

# react-cl-audio-player

A simple audio player with ReactJS and CSS3.

This is a modify version of react-cl-audio-player package (https://github.com/cezarsmpio/react-cl-audio-player) to suport NEXTJS Global CSS import

Inspiration: [Thanks Rovane Durso](https://dribbble.com/shots/998479-Music)

## TODO

* ~~shuffle~~
* ~~mute/unmute~~
* ~~repeat song~~
* ~~cover~~
* ~~play/pause song~~
* ~~prev/next song~~
* Drag n Drop of the songs
* Better volume control
* List of the songs
* Drag of the progress bar


## Demo & Examples

Live demo: http://cezarsmpio.github.io/react-cl-audio-player/

To run it on your local environment:

#### Using yarn
```
yarn install
yarn start
yarn build // to build
```

#### Using npm
```
npm install
npm run start
npm run build // to build
```

Then open [`localhost:3000`](http://localhost:3000).


## Installation


```
npm install react-cl-audio-player --save
```


## Usage

```javascript
import AudioPlayer from 'react-cl-audio-player';

<AudioPlayer
  songs={songs}
  autoplay
/>
```

### Properties

```javascript
propTypes = {
  songs: PropTypes.array.isRequired,
  autoplay: PropTypes.bool,
  onTimeUpdate: PropTypes.func,
  onEnded: PropTypes.func,
  onError: PropTypes.func,
  onPlay: PropTypes.func,
  onPause: PropTypes.func,
  onPrevious: PropTypes.func,
  onNext: PropTypes.func,
};
```

Songs model:

```javascript
const songs = [
  {
    url: 'path/to/mp3',
    cover: 'path/to/jpeg',
    artist: {
      name: 'Metallica',
      song: 'Fuel'
    }
  },
  {
    url: 'path/to/your/mp3',
    artist: {
      name: 'X Japan',
      song: 'Art of Life'
    }
  }
];

// Then call
<CLAudioPlayer
  songs={songs}
  autoplay
/>
```

#### CSS classes
* .no-height - A helper class for songs without covers
* .player-container
* .player-cover
* .artist-info
* .artist-name
* .artist-song-name
* .player-progress-container
* .player-progress-value
* .player-options
* .player-buttons
* .player-btn
* .player-btn i (.fa .fa-play .fa-pause .fa-volume .fa-volume-off .fa-forward .fa-backward .fa-repeat .fa-random)
* .player-btn.big.medium.small.active.volume:disabled
* .player-controls

PS: react-cl-audio-player uses font-awesome, the used classes are:

```
.fa .fa-play .fa-pause .fa-volume .fa-volume-off .fa-forward .fa-backward .fa-repeat .fa-random
```

Don't forget to import it into your project or feel free to use your own icons.

### Notes

Works perfectly in Chrome, Firefox, Safari and IE.

Version 2.0 was rewritten.

## License

MIT License.

Made with :heart: