open-index/open-npm huggingface dataset:
npm package: @lobu/cli
Description: CLI for deploying and managing AI agents on Lobu
Author: Burak Emre
Latest version: 3.2.0

# @lobu/cli

CLI tool for initializing and managing Lobu projects.

## Quick Start

```bash
npx @lobu/cli@latest init my-bot
cd my-bot
docker compose up -d
```

## Commands

### `lobu init [name]`

Scaffold a new Lobu project with interactive prompts:

- **Project name** and **deployment mode** (embedded/Docker workers)
- **Gateway port** and optional **public URL** (for OAuth callbacks)
- **Admin password**
- **Worker network access** (isolated, allowlist, or unrestricted)
- **AI provider** selection from the skills registry + API key
- **Skills** to enable (from `config/system-skills.json`)
- **Messaging platform** (Telegram, Slack, Discord, or none)
- **Auth provider** (Owletto, custom, or none)
- **Memory plugin** configuration

**Generates:** `docker-compose.yml`, `.env`, `Dockerfile.worker`, `lobu.toml`, `IDENTITY.md`, `.gitignore`, `README.md`

## Usage

```bash
# Start services
docker compose up -d

# View logs
docker compose logs -f

# Stop services
docker compose down

# Rebuild worker after changes
docker compose build worker
```

## Worker Customization

Extend the generated `Dockerfile.worker` to add tools:

```dockerfile
FROM ghcr.io/lobu-ai/lobu-worker-base:0.1.0

# Add system packages
RUN apt-get update && apt-get install -y postgresql-client

# Add Python packages
RUN pip install pandas matplotlib

# Copy custom scripts
COPY ./scripts /workspace/scripts
```

See [custom base image docs](../worker/docs/custom-base-image.md) for using your own base image.

## License

Apache-2.0
npm package: @loc4atnt/node-red-contrib-better-sqlite
Description: A better sqlite node for Node-RED with pooling
Author: loc4atnt
Latest version: 0.1.3

node-red-contrib-better-sqlite
====================

## @loc4atnt: I made a change to fix bug and upgrade better-sqlite3 version
- use regex for query operation detecting instead of string.includes

---------

A Node-Red node to read and write a local sqlite database using [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) and [better-sqlite-pool](https://github.com/WiseLibs/better-sqlite-pool).
This package must improve performance and stability (avoid thread locking) over the standard sqlite3 module.

Install
-------

Run the following command in your Node-RED user directory - typically `~/.node-red`

    npm i --unsafe-perm @malysus/node-red-contrib-better-sqlite

Usage
-----

Allows access to a SQLite database.

SQL Query sets how the query is passed to the node.

SQL Query Via msg.topic and Fixed Statement uses the db.all operation against the configured database. 
This does allow INSERTS, UPDATES and DELETES. By its very nature it is SQL injection... so be careful out there...

SQL Type Prepared Statement also uses db.all but sanitizes parameters passed, eliminating the possibility of SQL injection.

SQL Type Batch without response uses db.exec which runs all SQL statements in the provided string. No result rows are returned.

When using Via msg.topic or Batch without response msg.topic must hold the query for the database.

When using Via msg.topic, parameters can be passed in the query using a msg.payload array. Ex:

```
msg.topic = `INSERT INTO user_table (name, surname) VALUES ($name, $surname)`
msg.payload = ["John", "Smith"]
return msg;
```

When using Normal or Prepared Statement, the query must be entered in the node config.

Pass in the parameters as an object in msg.params for Prepared Statement. Ex:
```
msg.params = {
    $id:1,
    $name:"John Doe"
}
```
Parameter object names must match parameters set up in the Prepared Statement. If you get the error SQLITE_RANGE: bind or column index out of range be sure to include $ on the parameter object key.
The SQL query for the example above could be: insert into user_table (user_id, user) VALUES ($id, $name);

Using any SQL Query, the result is returned in msg.payload

Typically the returned payload will be an array of the result rows, (or an error).

You can load SQLite extensions by inputting a msg.extension property containing the full path and filename.

The reconnect timeout in milliseconds can be changed by adding a line to `settings.js`

`betterSqliteReconnectTime: 20000,`
npm package: @loc4atnt/node-red-contrib-mqtt-auto
Description: Node group for NodeRed that maintains multiple MQTT connections and you can change connection credentials during runtime.
Author: Nham Huynh Duc
Latest version: 2.2.2-7

# node-red-contrib-mqtt-auto: FORK of [node-red-contrib-mqtt-auto](https://github.com/arifhosan/node-red-contrib-mqtt-auto) to integrate fixes and update:
- Remove the client from the list after calling close-node-by-id
- Support full protocols: ws wss mqtt mqtts

## mqtt-auto-connect

<img src="img/connects.png" width="200" alt="Conectar">

```
msg.payload = {

  "client_id": "clientid",
  "host": "locahost",
  "user": "user",
  "password": "password",
  "reconnect" : 1, // 0 No Reconect  1 AutoReconnect
  "protocol": "mqtt", // mqtt/mqtts/ws/wss
};
```


### mqtt-auto-disconnect

<img src="img/disconnect.png" width="200" alt="Conectar">


```
msg.client_id = "client_id";
```

### mqtt-auto-status

<img src="img/status.png" width="200" alt="Conectar">



### mqtt-auto-subscribe

<img src="img/subscribe.png" width="200" alt="Conectar">


```
msg.client_id = "client_id";
msg.topic = "topic";
```


### mqtt-auto-unsubscribe

<img src="img/unsubscribe.png" width="200" alt="Conectar">

```
msg.client_id = "client_id";
msg.topic = "topic";
```

### mqtt-auto-publish

<img src="img/publish.png" width="200" alt="Conectar">

```
msg.client_id = "client_id";
msg.payload = "my_message";
msg.topic = "topic";
msg.options={}; #can be empty
```
See [Mqtt documentation](https://github.com/mqttjs/MQTT.js?tab=readme-ov-file#mqttclientpublishtopic-message-options-callback)