open-index/open-npm huggingface dataset:
npm package: @redom/store
Description: Immutable keypath store for RE:DOM
Author: Juha Lindstedt
Latest version: 1.0.0

# RE:DOM store
Immutable keypath store for RE:DOM

## Installing
```
npm i @redom/store
```

## Usage

```js
import Store from '@redom/store';

const store = new Store();

store.set('a.b.c', 'Hello RE:DOM store!');

console.log(store.get('a.b.c'));
```
npm package: @redon-web/cli
Description: redon-web command lint tools
Author: Redon
Latest version: 0.3.3

# @redon-web/cli

@redon-web 命令行工具

<br>

```bash
npm i @redon-web/cli -D
```
<a href='https://docs.npmjs.com/cli/v6/commands/npm'>npm</a> · <a href='https://yarnpkg.com'>yarn</a> · <a href='https://pnpm.js.org/en/'>pnpm</a> · <a href='https://bun.sh/'>bun</a>

## `redon` git-commit

命令行 `git commit` 提交工具

```bash
# package.json
"script":{
  "commit": "redon git-commit",
}
```

<img style="max-width: 500px" src='./assets/git-commit.png' />

<br>

## `redon` git-commit-verify

安装 `simple-git-hooks`

```bash
npm install simple-git-hooks -D
```

添加验证钩子

```bash
# package.json
"simple-git-hooks": {
  "commit-msg": "pnpm redon git-commit-verify",
}
```

`commit message` 提交验证，请遵循 [conventional-changelog 标准](https://www.conventionalcommits.org/en/v1.0.0/)

```bash
<类型>[可选 范围]: <描述>

[可选 正文]

[可选 脚注]
```

- feat: 新特性或功能
- chore: 其他不修改 src 或测试文件的提交
- fix: 缺陷修复
- docs: 文档更新
- style: 代码风格或者组件样式更新
- refactor: 代码重构，不引入新功能和缺陷修复
- perf: 性能优化
- test: 单元测试

## `redon` cleanup

删除目录或工作区下所有 `node_modules`、`dist` 和包管理 `lock` 文件（如：`package-lock.json`、`yarn.lock`、`pnpm-lock.yaml`）

```bash
# package.json
"script":{
  "commit": "redon cleanup",
}
```

## `redon` update-pkg

脚本 `ncu --deep -u` 的别名，升级包版本到最新

```bash
# package.json
"script":{
  "update-pkg": "redon update-pkg",
}
```

## `redon` init-git-hooks

初始化 `git` 钩子

```bash
# package.json
"script":{
  "init-git-hooks": "redon init-git-hooks",
}
```

## 帮助

查看帮助命令

```bash
pnpm redon -h
```
npm package: @redon2inc/strapi-plugin-refresh-token
Description: Plugin for Strapi 5 to provide refresh token functionality.
Author: Redon2 Soltuons
Latest version: 0.1.4

# 
<h1 align="center">
  Strapi5 Refresh Token plugin
</h1>

Strapi Plugin that extends the local authorization functionality to provide Refresh tokens.

## ⚠️ Compatibility with Strapi versions

- This plugin relies on Strapi5 new `documentId`. It will not work with earlier versions!
- Works with `local` provider only.

## ⚙️ Installation

To install the Strapi Refresh Token Plugin, simply run one of the following command:

```
npm install @redon2inc/strapi-plugin-refresh-token
```

```
yarn add @redon2inc/strapi-plugin-refresh-token
```

## Config

You will need to set the following environment variables:
```
 PRODUCTION_URL=value # used for cookie security if enabled
 REFRESH_JWT_SECRET=string 
 ```

This component relies on extending the `user-permissions` types. Extend it by adding the following to `./src/extensions/user-permissions/content-types/user/schema.json`

```javascript
// .. rest of schema
attributes:{
  // .. rest of attributes
  "refresh_tokens": {
      "type": "relation",
      "relation": "oneToMany",
      "target": "plugin::refresh-token.token",
      "mappedBy": "user",
      "private": true,
      "configurable": false
    }
}
// rest of code
```

Modify your plugins file  `config/plugin.ts` to have the following:


```javascript

  // ..other plugins
  'users-permissions': {
        config: {
          jwt: {
            /* the following  parameter will be used to generate:
             - regular tokens with username and password
             - refreshed tokens when using the refreshToken API
            */
            expiresIn: '2h', // This value should be lower than the refreshTokenExpiresIn below.
          },
        },
    },
  'refresh-token': {
    config: {
      refreshTokenExpiresIn: '30d', // this value should be higher than the jwt.expiresIn
      requestRefreshOnAll: false, // automatically send a refresh token in all login requests.
      refreshTokenSecret: env('REFRESH_JWT_SECRET') || 'SomethingSecret',
      cookieResponse: false, // if set to true, the refresh token will be sent in a cookie
      refreshTokenRotation: false, // forces a new Refresh token, deleting the previously used one from the db.
    },
  }
```

## API Usage:

when calling `POST`:`/api/auth/local` include the `requestRefresh` parameter:

```json
{
  "identifier":"username",
  "password":"VerySecurePassword",
  "requestRefresh": true
}
```
The API will respond with the following:
```javascript
{
  "jwt":"token...",
  "user": { /* user object */ },
  "refreshToken": "RefreshToken..."
}
```

to request a new access token use the following: 
`POST`:`/api/auth/local/refresh` with the following payload:
```json
{
  "refreshToken": "RefreshToken...",
}
```
if the Refresh token is valid, the API will return
```json
{
  "jwt": "NewAccessToken..",
  "refreshToken": "NewRefreshToken..", // only if the config.refreshTokenRotation is set to TRUE
}
```

## TODO:
- Expose API so user can clear all sessions on their own.
npm package: @redonvn/hanhchinh-redai
Description: OpenClaw plugin generated from hanhchinh.json
Author: Redon
Latest version: 0.1.7

# @redonvn/hanhchinh-redai

OpenClaw plugin generated from `redai-sdk/packages/hanhchinh-redai/hanhchinh.json`.

## Generate

```bash
npm run generate --workspace @redonvn/hanhchinh-redai
```

## Build

```bash
npm run build --workspace @redonvn/hanhchinh-redai
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/hanhchinh-redai
openclaw plugins enable hanhchinh-redai
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "hanhchinh-redai": {
        "enabled": true,
        "config": {
          "baseUrl": "https://nocodb.redai-erp.io.vn",
          "defaultToken": "replace-with-service-token",
          "defaultTokensByTelegramGroup": {
            "-1003746497233": "replace-with-service-token",
            "-1003788695781": "replace-with-service-token"
          }
        }
      }
    }
  },
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "allow": ["hanhchinh-redai"]
        }
      }
    ]
  }
}
```

Authentication is config-first. The plugin now prefers static tokens loaded from
`~/.openclaw/openclaw.json` and only falls back to a stored per-user token if no
matching config token exists. Resolution order is:

1. Group default token
2. Agent default token
3. Global `defaultToken`
npm package: @redonvn/hanhchinh-redai-attendance
Description: OpenClaw attendance-only plugin filtered from hanhchinh-redai
Author: Redon
Latest version: 0.1.2

# @redonvn/hanhchinh-redai-attendance

OpenClaw plugin exposing only the attendance-related tools from `@redonvn/hanhchinh-redai`.

## Generate

```bash
npm run generate --workspace @redonvn/hanhchinh-redai-attendance
```

## Build

```bash
npm run build --workspace @redonvn/hanhchinh-redai-attendance
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/hanhchinh-redai-attendance
openclaw plugins enable hanhchinh-redai-attendance
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "hanhchinh-redai-attendance": {
        "enabled": true,
        "config": {
          "baseUrl": "https://nocodb.redai-erp.io.vn",
          "apiKey": "YOUR_XC_TOKEN",
          "apiKeyHeader": "xc-token"
        }
      }
    }
  }
}
```
npm package: @redonvn/infodoanhnghiep-sdk
Description: InfoDoanhNghiep company lookup SDK
Author: Redon
Latest version: 0.1.5

# @redonvn/infodoanhnghiep-sdk

TypeScript SDK for InfoDoanhNghiep company lookup.

## Install

```bash
npm install @redonvn/infodoanhnghiep-sdk
```

## Usage

### Using InfoDoanhNghiepClient and InfoDoanhNghiepService

```ts
import { InfoDoanhNghiepClient, InfoDoanhNghiepService } from "@redonvn/infodoanhnghiep-sdk";

const client = new InfoDoanhNghiepClient();
const service = new InfoDoanhNghiepService(client);

const result = await service.lookup("0109165592");
console.log("Found companies:", result.totalResults);

for (const company of result.companies) {
  console.log("Name:", company.name);
  console.log("Tax Code:", company.taxCode);
  console.log("Legal Rep:", company.legalRepresentative);
  console.log("Address:", company.address);
  console.log("City:", company.city);
  console.log("Established:", company.establishedDate);
  console.log("Detail URL:", company.detailUrl);
}
```

### One-off helper

```ts
import { lookupCompany } from "@redonvn/infodoanhnghiep-sdk";

const result = await lookupCompany("0109165592");
console.log(result.companies[0].name);
// Output: CÔNG TY TNHH TRUYỀN THÔNG VÀ THƯƠNG MẠI REDON
```

## Configuration

```ts
const client = new InfoDoanhNghiepClient({
  baseUrl: "https://infodoanhnghiep.com", // Default
  timeoutMs: 10000
});
```

## Response Type

```ts
interface LookupResponse {
  companies: CompanyInfo[];
  totalResults: number;
}

interface CompanyInfo {
  name: string;                  // Tên công ty
  taxCode: string;               // Mã số thuế
  legalRepresentative: string;   // Đại diện pháp luật
  address: string;               // Địa chỉ
  city: string;                  // Tỉnh/Thành phố
  establishedDate: string;       // Ngày thành lập
  detailUrl: string;             // Link chi tiết
}
```

## API Endpoint

- **Method**: GET
- **URL**: `https://infodoanhnghiep.com/tim-kiem/auto/{maSoThue}/`
- **Description**: Search company information by tax code
npm package: @redonvn/mst-sdk
Description: MST lookup SDK
Author: Redon
Latest version: 0.1.5

# @redonvn/mst-sdk

TypeScript SDK for MST lookup.

## Install

```bash
npm install @redonvn/mst-sdk
```

## Usage

```ts
import { MstClient } from "@redonvn/mst-sdk";

const client = new MstClient();
const result = await client.lookup("0109165592");
console.log(result.message);
```

## One-off helper

```ts
import { lookupTax } from "@redonvn/mst-sdk";

const result = await lookupTax("0109165592");
console.log(result.message.short_name);
```

## Configuration

```ts
const client = new MstClient({
  baseUrl: "https://mst.8686.vn",
  timeoutMs: 10000
});
```
npm package: @redonvn/neac-verify-sdk
Description: NEAC signature verification SDK
Author: Redon
Latest version: 0.1.3

# @redonvn/neac-verify-sdk

TypeScript SDK for NEAC signature verification (Node.js).

## Install

```bash
npm install @redonvn/neac-verify-sdk
```

## Usage (Buffer)

```ts
import { verifyFile } from "@redonvn/neac-verify-sdk";
import { readFile } from "node:fs/promises";

const buffer = await readFile("./sample.pdf");
const result = await verifyFile({
  buffer,
  filename: "sample.pdf",
  mimeType: "application/pdf"
});

console.log(result.signature.status);
```

## Usage (URL)

```ts
import { verifyFile } from "@redonvn/neac-verify-sdk";

const result = await verifyFile({
  url: "https://example.com/sample.pdf"
});

console.log(result.signature.message);
```

## Custom Options

```ts
import { NeacVerifyService } from "@redonvn/neac-verify-sdk";

const service = new NeacVerifyService({
  verifyUrl: "https://neac.gov.vn/vi/Home/VerifyFileByNeac",
  timeoutMs: 20000
});

const result = await service.verifyFile({
  url: "https://example.com/sample.pdf"
});
```
npm package: @redonvn/nocodb-team-product-openclaw-plugin
Description: OpenClaw plugin generated from the NocoDB Team Product OpenAPI document
Author: Redon
Latest version: 0.1.0

# @redonvn/nocodb-team-product-openclaw-plugin

OpenClaw plugin generated from `redai-sdk/packages/nocodb-team-product-openclaw-plugin/openapi.json`.

## Generate

```bash
npm run generate --workspace @redonvn/nocodb-team-product-openclaw-plugin
```

## Build

```bash
npm run build --workspace @redonvn/nocodb-team-product-openclaw-plugin
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/nocodb-team-product-openclaw-plugin
openclaw plugins enable nocodb-team-product-openclaw-plugin
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "nocodb-team-product-openclaw-plugin": {
        "enabled": true,
        "config": {
          "baseUrl": "https://nocodb.redai-erp.io.vn",
          "defaultHeaders": {
            "xc-token": "replace-with-service-token"
          }
        }
      }
    }
  }
}
```

You can also use `bearerToken` or `apiKey` if the upstream API is configured that way, but NocoDB commonly uses the `xc-token` header.
npm package: @redonvn/open-claw-mcp-sdk
Description: Bridge MCP tools into OpenClaw plugins
Author: Redon
Latest version: 0.1.2

# open-claw-mcp-sdk

`@redonvn/open-claw-mcp-sdk` bridges MCP tool servers into OpenClaw plugin tools.

It supports:

- `stdio` MCP servers
- `http` MCP servers
- `sse` MCP servers

The package provides:

- MCP client runtime and transport handling
- schema sanitization for tool input schemas
- OpenClaw plugin factory for registering MCP tools

This SDK only bridges MCP `tools/list` and `tools/call` in v1.
npm package: @redonvn/openclaw-mcp-bridge
Description: OpenClaw plugin that exposes MCP tools
Author: Redon
Latest version: 0.1.2

# openclaw-mcp-bridge

`@redonvn/openclaw-mcp-bridge` exposes selected MCP tools as OpenClaw tools.

Example config:

```json
{
  "plugins": {
    "allow": ["mcp-bridge"],
    "entries": {
      "mcp-bridge": {
        "enabled": true,
        "config": {
          "servers": {
            "chrome-devtools": {
              "enabled": true,
              "transport": "stdio",
              "command": "npx",
              "args": ["chrome-devtools-mcp@latest"],
              "includeTools": ["navigate", "click", "evaluate_script"]
            },
            "filesystem": {
              "enabled": true,
              "transport": "stdio",
              "command": "npx",
              "args": [
                "@modelcontextprotocol/server-filesystem",
                "C:\\Users\\Acer\\.openclaw\\workspace"
              ],
              "includeTools": ["read_file", "list_directory"]
            }
          }
        }
      }
    }
  }
}
```

Each MCP tool is exposed as:

- `mcp_<serverKey>_<toolName>`

Examples:

- `mcp_chrome_devtools_navigate`
- `mcp_filesystem_read_file`
npm package: @redonvn/p03-erp-v1-frontend-sdk
Description: Frontend SDK cho Project03 ERP v1
Author: Redon
Latest version: 0.1.2

# @redonvn/p03-erp-v1-frontend-sdk

SDK frontend cơ bản cho Project03 ERP v1.

## Cài đặt

```bash
npm install @redonvn/p03-erp-v1-frontend-sdk
```

## Sử dụng

```ts
import { FrontendSdkClient } from "@redonvn/p03-erp-v1-frontend-sdk";

const client = new FrontendSdkClient({
  apiBaseUrl: "https://localhost:8443",
  accessToken: "your-token"
});

const headers = client.buildHeaders({ "x-request-id": "req-123" });
```
npm package: @redonvn/p03-erp-v1-workflow-engine-sdk
Description: Workflow engine SDK cho Project03 ERP v1
Author: Redon
Latest version: 0.1.2

# @redonvn/p03-erp-v1-workflow-engine-sdk

SDK domain cho workflow engine trong Project03 ERP v1.

## Cài đặt

```bash
npm install @redonvn/p03-erp-v1-workflow-engine-sdk
```

## Sử dụng

```ts
import { createWorkflowRunInput } from "@redonvn/p03-erp-v1-workflow-engine-sdk";

const input = createWorkflowRunInput("invoice.approve", { invoiceId: "inv-001" }, "user-123");
```
npm package: @redonvn/redai-agent
Description: OpenClaw plugin for RedAI agent user APIs
Author: Redon
Latest version: 0.1.2

# redai-agent-openclaw-plugin

Generated OpenAPI JSON files extracted from:

`F:\Redon\DuAn\project01\redai-v201-be-app\src\modules\agent\user\controllers`

Regenerate:

```bash
node ./scripts/generate-openapi.mjs
```
npm package: @redonvn/redai-ai-driver
Description: OpenClaw plugin for RedAI AI driver user APIs
Author: Redon
Latest version: 0.1.2

# @redonvn/redai-ai-driver

OpenClaw plugin cho nhóm API user của RedAI AI driver.

## Generate

```bash
npm run generate --workspace @redonvn/redai-ai-driver
```

## Build

```bash
npm run build --workspace @redonvn/redai-ai-driver
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-ai-driver
```

## Required config

```json5
{
  "plugins": {
    "entries": {
      "redai-ai-driver": {
        "enabled": true,
        "config": {
          "baseUrl": "https://api.redai.vn/api/v1",
          "bearerToken": "YOUR_JWT_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```

Nếu dùng API key:

```json5
{
  "plugins": {
    "entries": {
      "redai-ai-driver": {
        "config": {
          "baseUrl": "https://api.redai.vn/api/v1",
          "apiKey": "YOUR_API_KEY",
          "apiKeyHeader": "X-API-Key",
          "workspaceId": "YOUR_WORKSPACE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-ai-driver-sdk
Description: TypeScript SDK for RedAI AI driver user APIs
Author: Redon
Latest version: 0.1.2

# @redonvn/redai-ai-driver-sdk

TypeScript SDK cho nhóm API user của RedAI AI driver:

- `media`
- `knowledge files`
- `external templates`

## Install

```bash
npm install @redonvn/redai-ai-driver-sdk
```

## Usage

```ts
import { RedaiAiDriverClient } from "@redonvn/redai-ai-driver-sdk";

const client = new RedaiAiDriverClient({
  baseUrl: "https://api.redai.vn/api/v1",
  bearerToken: process.env.REDAI_TOKEN,
  workspaceId: process.env.REDAI_WORKSPACE_ID
});

const media = await client.media.listMyMedia({ page: 1, limit: 10 });
const templates = await client.externalTemplates.list({
  query: { page: 1, limit: 20 }
});
```
npm package: @redonvn/redai-api
Description: OpenClaw plugin generated from the RedAI OpenAPI document
Author: Redon
Latest version: 0.1.6

# @redonvn/redai-api

OpenClaw plugin generated from `redai-sdk/packages/open-claw-sdk/docs/docs-json.json`.

## What it contains

- `openclaw.plugin.json`: plugin manifest for OpenClaw discovery and config validation
- `tool-catalog.json`: generated tool catalog from the RedAI OpenAPI document
- `dist/index.js`: plugin entry used by `openclaw plugins install @redonvn/redai-api`

## Build

```bash
npm run build --workspace @redonvn/redai-api
```

## Publish

```bash
npm publish --workspace @redonvn/redai-api --access public
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-api
openclaw plugins enable redai-api
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-api": {
        "enabled": true,
        "config": {
          "baseUrl": "https://your-redai-api.example.com",
          "bearerToken": "YOUR_TOKEN"
        }
      }
    }
  },
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "allow": ["redai-api"]
        }
      }
    ]
  }
}
```

The generated tools are optional by default, so the plugin id must be allowlisted for the target agent.
npm package: @redonvn/redai-openapi-agent
Description: OpenAPI export cho nhóm API user đã chọn: Agent.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-agent

OpenClaw plugin generated from `openapi/redai/agent.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-agent
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-agent
openclaw plugins enable redai-openapi-agent
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-agent": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-business
Description: OpenAPI export cho nhóm API user đã chọn: Business.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-business

OpenClaw plugin generated from `openapi/redai/business.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-business
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-business
openclaw plugins enable redai-openapi-business
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-business": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-calendar
Description: OpenAPI export cho nhóm API user đã chọn: Calendar.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-calendar

OpenClaw plugin generated from `openapi/redai/calendar.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-calendar
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-calendar
openclaw plugins enable redai-openapi-calendar
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-calendar": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-custom-widget
Description: OpenAPI export cho nhóm API user đã chọn: Custom Widget.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-custom-widget

OpenClaw plugin generated from `openapi/redai/custom-widget.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-custom-widget
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-custom-widget
openclaw plugins enable redai-openapi-custom-widget
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-custom-widget": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-device-session
Description: OpenAPI export cho nhóm API user đã chọn: Device Session.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-device-session

OpenClaw plugin generated from `openapi/redai/device-session.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-device-session
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-device-session
openclaw plugins enable redai-openapi-device-session
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-device-session": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-generic
Description: OpenAPI export cho nhóm API user đã chọn: Generic.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-generic

OpenClaw plugin generated from `openapi/redai/generic.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-generic
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-generic
openclaw plugins enable redai-openapi-generic
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-generic": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-help-center
Description: OpenAPI export cho nhóm API user đã chọn: Help Center.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-help-center

OpenClaw plugin generated from `openapi/redai/help-center.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-help-center
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-help-center
openclaw plugins enable redai-openapi-help-center
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-help-center": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-knowledge-files
Description: OpenAPI export cho nhóm API user đã chọn: Knowledge Files.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-knowledge-files

OpenClaw plugin generated from `openapi/redai/knowledge-files.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-knowledge-files
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-knowledge-files
openclaw plugins enable redai-openapi-knowledge-files
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-knowledge-files": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-marketing
Description: OpenAPI export cho nhóm API user đã chọn: Marketing.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-marketing

OpenClaw plugin generated from `openapi/redai/marketing.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-marketing
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-marketing
openclaw plugins enable redai-openapi-marketing
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-marketing": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-marketplace
Description: OpenAPI export cho nhóm API user đã chọn: Marketplace.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-marketplace

OpenClaw plugin generated from `openapi/redai/marketplace.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-marketplace
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-marketplace
openclaw plugins enable redai-openapi-marketplace
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-marketplace": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-mcp-dynamic
Description: OpenAPI export cho nhóm API user đã chọn: Dynamic MCP.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-mcp-dynamic

OpenClaw plugin generated from `openapi/redai/mcp-dynamic.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-mcp-dynamic
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-mcp-dynamic
openclaw plugins enable redai-openapi-mcp-dynamic
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-mcp-dynamic": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-media
Description: OpenAPI export cho nhóm API user đã chọn: Media.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-media

OpenClaw plugin generated from `openapi/redai/media.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-media
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-media
openclaw plugins enable redai-openapi-media
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-media": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-models
Description: OpenAPI export cho nhóm API user đã chọn: Models.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-models

OpenClaw plugin generated from `openapi/redai/models.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-models
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-models
openclaw plugins enable redai-openapi-models
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-models": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-page-keywords
Description: OpenAPI export cho nhóm API user đã chọn: Page Keywords.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-page-keywords

OpenClaw plugin generated from `openapi/redai/page-keywords.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-page-keywords
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-page-keywords
openclaw plugins enable redai-openapi-page-keywords
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-page-keywords": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-project
Description: OpenAPI export cho nhóm API user đã chọn: Projects.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-project

OpenClaw plugin generated from `openapi/redai/project.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-project
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-project
openclaw plugins enable redai-openapi-project
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-project": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-proxy
Description: OpenAPI export cho nhóm API user đã chọn: Proxy.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-proxy

OpenClaw plugin generated from `openapi/redai/proxy.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-proxy
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-proxy
openclaw plugins enable redai-openapi-proxy
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-proxy": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-rai-job
Description: OpenAPI export cho nhóm API user đã chọn: RAI Job.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-rai-job

OpenClaw plugin generated from `openapi/redai/rai-job.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-rai-job
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-rai-job
openclaw plugins enable redai-openapi-rai-job
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-rai-job": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-router
Description: Router plugin de truy van va execute catalog RedAI OpenAPI theo co che lazy.
Author: Redon
Latest version: 0.1.1

# RedAI OpenAPI Router

Router plugin de tim module, doc metadata operation va execute lazy cho 5 nhom RedAI OpenAPI:

- `agent`
- `marketing`
- `models`
- `user`
- `workflow`

Plugin nay giam tai prompt bang cach expose mot so tool router nho thay vi dang ky hang tram operation lam tool rieng.
npm package: @redonvn/redai-openapi-storage
Description: OpenAPI export cho nhóm API user đã chọn: Storage.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-storage

OpenClaw plugin generated from `openapi/redai/storage.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-storage
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-storage
openclaw plugins enable redai-openapi-storage
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-storage": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-subscription
Description: OpenAPI export cho nhóm API user đã chọn: Subscription.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-subscription

OpenClaw plugin generated from `openapi/redai/subscription.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-subscription
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-subscription
openclaw plugins enable redai-openapi-subscription
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-subscription": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-tools
Description: OpenAPI export cho nhóm API user đã chọn: Tools.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-tools

OpenClaw plugin generated from `openapi/redai/tools.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-tools
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-tools
openclaw plugins enable redai-openapi-tools
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-tools": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-url
Description: OpenAPI export cho nhóm API user đã chọn: URL.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-url

OpenClaw plugin generated from `openapi/redai/url.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-url
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-url
openclaw plugins enable redai-openapi-url
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-url": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-user
Description: OpenAPI export cho nhóm API user đã chọn: User.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-user

OpenClaw plugin generated from `openapi/redai/user.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-user
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-user
openclaw plugins enable redai-openapi-user
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-user": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-workflow
Description: OpenAPI export cho nhóm API user đã chọn: Workflow.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-workflow

OpenClaw plugin generated from `openapi/redai/workflow.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-workflow
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-workflow
openclaw plugins enable redai-openapi-workflow
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-workflow": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openapi-wp-content-post
Description: OpenAPI export cho nhóm API user đã chọn: WP Content Post.
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openapi-wp-content-post

OpenClaw plugin generated from `openapi/redai/wp-content-post.json`.

## Build

```bash
npm run build --workspace @redonvn/redai-openapi-wp-content-post
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openapi-wp-content-post
openclaw plugins enable redai-openapi-wp-content-post
```

## Runtime config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-openapi-wp-content-post": {
        "enabled": true,
        "config": {
          "baseUrl": "https://v2.redai.vn/api",
          "bearerToken": "YOUR_TOKEN",
          "workspaceId": "YOUR_WORKSPACE_ID",
          "baseId": "YOUR_BASE_ID"
        }
      }
    }
  }
}
```
npm package: @redonvn/redai-openclaw-plugin
Description: OpenClaw plugin generated from the RedAI OpenAPI document
Author: Redon
Latest version: 0.1.1

# @redonvn/redai-openclaw-plugin

OpenClaw plugin generated from `redai-sdk/packages/open-claw-sdk/docs/docs-json.json`.

## What it contains

- `openclaw.plugin.json`: plugin manifest for OpenClaw discovery and config validation
- `tool-catalog.json`: generated tool catalog from the RedAI OpenAPI document
- `dist/index.js`: plugin entry used by `openclaw plugins install @redonvn/redai-openclaw-plugin`

## Build

```bash
npm run build --workspace @redonvn/redai-openclaw-plugin
```

## Publish

```bash
npm publish --workspace @redonvn/redai-openclaw-plugin --access public
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-openclaw-plugin
openclaw plugins enable redai-api
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-api": {
        "enabled": true,
        "config": {
          "baseUrl": "https://your-redai-api.example.com",
          "bearerToken": "YOUR_TOKEN"
        }
      }
    }
  },
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "allow": ["redai-api"]
        }
      }
    ]
  }
}
```

The generated tools are optional by default, so the plugin id must be allowlisted for the target agent.
npm package: @redonvn/redai-p03-sdk
Description: Redai P03 SDK - Low-code platform SDK for building database applications
Author: Redon Vietnam
Latest version: 1.0.3

# Redai P03 SDK

![npm version](https://img.shields.io/npm/v/@redonvn/redai-p03-sdk.svg)
![npm downloads](https://img.shields.io/npm/dm/@redonvn/redai-p03-sdk.svg)
![license](https://img.shields.io/npm/l/@redonvn/redai-p03-sdk.svg)

**Redai P03 SDK** - TypeScript/JavaScript SDK for building low-code database applications.

Developed by [Redon Vietnam](https://redon.vn) for the Redai P03 platform.

## 📦 Installation

```bash
# npm
npm install @redonvn/redai-p03-sdk

# yarn
yarn add @redonvn/redai-p03-sdk

# pnpm
pnpm add @redonvn/redai-p03-sdk
```

## 🚀 Usage

```typescript
import { Api } from '@redonvn/redai-p03-sdk';

const api = new Api({
  baseURL: 'https://your-redai-instance.com',
  headers: {
    'xc-token': 'your-api-token'
  }
});

// List tables
const tables = await api.base.list();

// Read records
const records = await api.dbTableRow.list('tableName');
```

## 📚 Documentation

- [Redai P03 Documentation](https://github.com/redonvn/redai-p03)
- [Redai P03 API Docs](https://redon.vn/docs)

## 🔧 Features

- ✅ Full TypeScript support
- ✅ Auto-generated types from API
- ✅ Works in Node.js and Browser
- ✅ Promise-based API
- ✅ Axios-powered HTTP client

## 📄 License

MIT License - See [LICENSE](LICENSE) for details.

## 🇻🇳 About Redon Vietnam

Developed and maintained by [Redon Vietnam](https://redon.vn).

---

**Available on NPM**: https://www.npmjs.com/package/@redonvn/redai-p03-sdk
npm package: @redonvn/redai-p03-sdk-v2
Description: Redai P03 SDK V2 - Next generation low-code platform SDK
Author: Redon Vietnam
Latest version: 1.0.0

# Redai P03 SDK V2

![npm version](https://img.shields.io/npm/v/@redonvn/redai-p03-sdk-v2.svg)
![npm downloads](https://img.shields.io/npm/dm/@redonvn/redai-p03-sdk-v2.svg)
![license](https://img.shields.io/npm/l/@redonvn/redai-p03-sdk-v2.svg)

**Redai P03 SDK V2** - Next generation TypeScript/JavaScript SDK for Redai P03 platform.

> 🚧 **Work in Progress** - This is the next-generation SDK currently under development.

## 📦 Installation

```bash
# npm
npm install @redonvn/redai-p03-sdk-v2

# yarn
yarn add @redonvn/redai-p03-sdk-v2

# pnpm
pnpm add @redonvn/redai-p03-sdk-v2
```

## 🚀 Getting Started

```typescript
import { Redai } from '@redonvn/redai-p03-sdk-v2';

const client = new Redai({
  endPointURL: 'https://your-redai-instance.com',
  apiKey: 'your-api-token'
});

// Get workspace
const workspace = client.workspace('workspace-id');

// List bases
const bases = await workspace.listBases();

// Get specific base
const base = workspace.base('base-id');
```

## 🆚 SDK V1 vs V2

| Feature | V1 | V2 |
|---------|----|----|
| Build Tool | TypeScript Compiler | Rslib (Rspack) |
| Module Format | CJS + ESM | ESM (Modern) |
| Bundle Size | Larger | Optimized |
| Tree Shaking | Limited | Full Support |
| Type Safety | Good | Excellent |

## 📚 Documentation

- [Migration Guide from V1](https://github.com/redonvn/redai-p03/docs/migration-v2.md)
- [Full Documentation](https://github.com/redonvn/redai-p03)

## 🔧 Development

```bash
# Install dependencies
pnpm install

# Build
pnpm build

# Watch mode
pnpm dev

# Format code
pnpm format
```

## 📄 License

MIT License - See [LICENSE](LICENSE) for details.

## 🇻🇳 About Redon Vietnam

Developed and maintained by [Redon Vietnam](https://redon.vn).

---

**Available on NPM**: https://www.npmjs.com/package/@redonvn/redai-p03-sdk-v2
npm package: @redonvn/redai-template-email
Description: OpenClaw plugin generated from template-email.json
Author: Redon
Latest version: 0.1.2

# @redonvn/redai-template-email

OpenClaw plugin generated from `redai-sdk/packages/redai-template-email-openclaw-pluglin/template-email.json`.

## Generate

```bash
npm run generate --workspace @redonvn/redai-template-email
```

## Build

```bash
npm run build --workspace @redonvn/redai-template-email
```

## Install in OpenClaw

```bash
openclaw plugins install @redonvn/redai-template-email
```

## Required config

Add runtime config in `~/.openclaw/openclaw.json`:

```json5
{
  "plugins": {
    "entries": {
      "redai-template-email": {
        "enabled": true,
        "config": {
          "baseUrl": "https://api.redai.vn/api/v1",
          "bearerToken": "YOUR_JWT_TOKEN"
        }
      }
    }
  },
  "agents": {
    "list": [
      {
        "id": "main",
        "tools": {
          "allow": ["redai-template-email"]
        }
      }
    ]
  }
}
```

If you authenticate by API key, set:

```json5
{
  "plugins": {
    "entries": {
      "redai-template-email": {
        "config": {
          "baseUrl": "https://api.redai.vn/api/v1",
          "apiKey": "YOUR_API_KEY",
          "apiKeyHeader": "X-API-Key"
        }
      }
    }
  }
}
```
npm package: @redonvn/sepay-bankhub-sdk
Description: TypeScript SDK cho SePay BankHub API v1
Author: Redon
Latest version: 0.1.2

﻿# @redonvn/sepay-bankhub-sdk

TypeScript SDK for SePay BankHub API (`/v1`).

## Install

```bash
npm install @redonvn/sepay-bankhub-sdk
```

## Quick Start

```ts
import { SepayBankHubService } from "@redonvn/sepay-bankhub-sdk";

const bankhub = new SepayBankHubService({
  sandbox: true,
  clientId: process.env.SEPAY_CLIENT_ID!,
  clientSecret: process.env.SEPAY_CLIENT_SECRET!
});

const token = await bankhub.auth.createToken();
console.log(token.access_token, token.ttl);

const companies = await bankhub.company.list({ page: 1, per_page: 20 });
console.log(companies.items.length, companies.meta.total);
```

## API Groups

- `auth.createToken`, `auth.setAccessToken`
- `linkToken.create/get/revoke`
- `company.list/details/create/update/counter`
- `bankAccount.list/details`
- `transaction.list/details/createMock`
- `merchantConfig.get/update/uploadLogo`
- `webhook.get/upsert`

## Docs Source

Crawled docs are stored in:

- `docs/CRAWLED_INDEX.md`
- `docs/sepay-dev/*.md`

Source snapshot: `https://developer.sepay.vn/llms-full.txt` (generated on 2026-03-14).