* 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.
69 lines
2.0 KiB
TOML
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"
|