Files
community-plugins/9router-control/plugin.toml
T
weinguyenandGitHub 2f760f6103 Add 9Router control plugin (#291)
* Add 9Router panel plugin

This commit introduces the initial version of the 9Router panel plugin.
It provides a Noctalia panel to manage 9Router model combos directly
from the bar, without requiring the web dashboard.

Key features:
- List, create, rename, and delete model combos.
- Reorder models within a combo via drag-and-drop.
- Change combo routing kind (fallback, round-robin, fusion).
- Search and filter combos.
- Supports 9Router dashboard authentication via CLI token or password.

Includes a bar widget showing connection status, a full UI panel,
and a background service to interact with the 9Router REST API.
Translations for English and Vietnamese are included.

* Rename 9Router Panel to 9Router Control

Update plugin IDs, IPC commands, and internal references.

* Quote shell args in service commands

Add shell_quote() for URLs, bodies, and file paths passed to
noctalia.runAsync. Declare required external commands in plugin.toml
and document them in the README.
2026-08-08 15:13:03 -04:00

69 lines
2.0 KiB
TOML

id = "weinguyen/9router-control"
name = "9Router Control"
version = "0.1.0"
plugin_api = 3
author = "weinguyen"
license = "MIT"
icon = "route"
description = "Manage 9Router model combos from the Noctalia bar — list, reorder chains, edit routing without the web dashboard."
tags = ["ai", "productivity", "development", "network", "bar", "panel"]
dependencies = ["cat", "curl", "cut", "sha256sum", "sleep"]
# ── User settings ─────────────────────────────────────────────────────────────
[[setting]]
key = "server_host"
type = "string"
default = "127.0.0.1"
label_key = "settings.server_host.label"
description_key = "settings.server_host.description"
[[setting]]
key = "server_port"
type = "double"
default = 20128
label_key = "settings.server_port.label"
description_key = "settings.server_port.description"
[[setting]]
key = "data_dir"
type = "string"
default = "~/.9router"
label_key = "settings.data_dir.label"
description_key = "settings.data_dir.description"
[[setting]]
key = "language"
type = "select"
default = "auto"
label_key = "settings.language.label"
description_key = "settings.language.description"
options = [
{ value = "auto", label_key = "settings.language.options.auto" },
{ value = "en", label_key = "settings.language.options.en" },
{ value = "vi", label_key = "settings.language.options.vi" },
]
[[setting]]
key = "debug_logging"
type = "bool"
default = false
label_key = "settings.debug_logging.label"
description_key = "settings.debug_logging.description"
# ── Entries ───────────────────────────────────────────────────────────────────
[[widget]]
id = "widget"
entry = "widget.luau"
[[panel]]
id = "panel"
entry = "panel.luau"
open_near_click = true
placement = "floating"
width = 520
height = 680
[[service]]
id = "service"
entry = "service.luau"