open-index/open-npm huggingface dataset:
npm package: @hzttt/config-portal
Description: OpenClaw visual config portal plugin (Kimi/Qwen/Feishu)
Latest version: 2026.2.26

# OpenClaw Config Portal Plugin

Visual config plugin for OpenClaw gateway settings.

## What This Portal Manages (V2)

- Provider routing (`schemaVersion: 2`)
  - Generic providers list (add/edit, no delete)
  - Primary route (`routing.primaryProviderId` + `routing.primaryModelId`)
- Feishu channel
  - Credentials + connection fields are written to `channels.feishu.accounts.<accountId>`
  - Policy fields remain at `channels.feishu` top level
- QQ channel (`qqbot`)
  - Writes to `channels.qqbot`

## API Contract

`GET /plugins/config-portal/api/config`

- Returns V2 payload:

```json
{
  "schemaVersion": 2,
  "routing": {
    "primaryProviderId": "kimi-coding",
    "primaryModelId": "kimi-k2.5-coding-preview"
  },
  "providers": [],
  "channels": {
    "feishu": {},
    "qq": {}
  }
}
```

`POST /plugins/config-portal/api/config`

- Accepts **both**:
  - V2 payload (`schemaVersion: 2`)
  - Legacy V1 payload (`activeModelProvider`, `kimi`, `qwen`, `feishu`, `qq`)
- Server normalizes input to V2 before applying.

## Write Behavior

- Providers are **upsert-only** (existing providers not present in payload are preserved).
- `agents.defaults.model.primary` is set from `routing`.
- Existing `fallbacks` are preserved.
- Feishu secrets (`appSecret`, `encryptKey`, `verificationToken`) are preserved when incoming fields are empty.
- QQ `clientSecret` is preserved when incoming field is empty.
- If QQ `appId` changes, `clientSecret` must be provided in the same save (to avoid stale secret mismatch).
- `dmPolicy="open"` requires `allowFrom` to include `"*"` (invalid payload is rejected).

## Routes

- Page: `/plugins/config-portal`
- API: `/plugins/config-portal/api/config`
- Legacy Page Alias: `/plugins/openclaw-config-portal`
- Legacy API Alias: `/plugins/openclaw-config-portal/api/config`

## Notes

- Saving writes directly to OpenClaw config file.
- Saving QQ channel changes now clears all contents under `~/clawd/qqbot-data/` (including session and known-users cache files) so QQBot reconnects with fully fresh state.
- QQ save now also writes a pending reset marker; after gateway restart, config-portal performs one startup cleanup pass to clear shutdown-time rewrites like `known-users.json`.
- Saving now also triggers a Gateway restart automatically so runtime model/channel changes take effect.
- Restart order is: daemon restart command first, then authorized in-process `SIGUSR1` fallback.
- Frontend now probes `/api/config` during restart and shows explicit success/failure status.
npm package: @hzwlxjpxm/my_vue
Description: A Vue.js project
Author: hzwlxjpxm
Latest version: 1.0.0

# my_vue

> A Vue.js project

## Build Setup

``` bash
# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
npm run unit

# run e2e tests
npm run e2e

# run all tests
npm test
```

For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
npm package: @hzwlxjpxm/my_vue1
Description: A Vue.js project
Latest version: 1.0.0

# my_vue

> A Vue.js project

## Build Setup

``` bash
# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
npm run unit

# run e2e tests
npm run e2e

# run all tests
npm test
```

For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).