Commit 794c21a
authored
feat(assistant): expand AionUi assistant into a butler with remote-access (#481)
## What
Builds on the merged #474 (`aionui-assistant`). Reframes that built-in
into the **AionUi Butler** — a single one-stop assistant for managing
AionUi itself across three areas: **configuration, diagnosis, and remote
access** — and adds the new opt-in skill the remote-access flow relies
on.
## Changes
- **New built-in skill `aionui-webui-public`**
(`builtin-skills/aionui-webui-public/SKILL.md`, opt-in at the root, not
`auto-inject/`): walks a non-technical user through exposing their local
WebUI to the internet via a Cloudflare quick tunnel. Verified end-to-end
— self-installs `cloudflared` cross-platform (direct GitHub-release
binary, no package manager), forces `--protocol http2` to dodge the
QUIC/HTTP-530 trap, verifies the public URL returns 200 before handing
it over, and explains the ephemeral-link limitations. Deliberately
distinct from `aionui-webui-setup` (manual LAN / Tailscale / server
config via the settings UI); this one produces a one-click public link
via an automatic tunnel.
- **`assistants.json`** — `aionui-assistant` entry: attach
`aionui-webui-public` to `enabled_skills`; rename to "AionUi Butler"
across `name_i18n` (en/zh/ru/uk; zh-CN is `AionUi管家`); refresh
description and quick-start prompts to include remote access; normalize
zh-CN punctuation to full-width.
- **`rules/aionui-assistant.{en-US,zh-CN,ru-RU}.md`** — retitle to
Butler; add a third capability block (remote access) to the
self-introduction; add **Mode 5: Remote access** with a hard
plain-language rule (never expose jargon like tunnel / cloudflared /
port to remote-access users); tighten the cron wording so the assistant
only *diagnoses* why a scheduled task didn't run and does **not**
create/configure scheduled tasks.
No `.rs` / schema changes — purely additive assets, same pattern as
#474. No new preset id (reuses `aionui-assistant`), so
`preset-id-whitelist.json` is unchanged.
## Verification
- `cargo test -p aionui-assistant -p aionui-extension` — all pass.
- `just check` (migration-check + lint + fmt-check + test) — exit 0.
- Built `aioncore` and ran it in a local AionUi dev instance; confirmed
via REST: `aionui-assistant` shows `name=AionUi管家`,
`enabled_skills=[aionui-config, aionui-troubleshooting,
aionui-webui-public]`, rule content loads, and `aionui-webui-public` is
registered with `source=builtin`.
## Companion frontend check
Reuses the existing `aionui-assistant` id, so the legacy→backend
migration whitelist needs no change. The display **name** changed
(Assistant → Butler); if the AionUi frontend hard-codes the old name
anywhere (or snapshots the assistant list), a small sync may be needed —
to be verified on the iOfficeAI/AionUi side.1 parent b9bcad9 commit 794c21a
5 files changed
Lines changed: 286 additions & 88 deletions
File tree
- crates/aionui-app/assets
- builtin-assistants
- rules
- builtin-skills/aionui-webui-public
Lines changed: 24 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1048 | 1048 | | |
1049 | 1049 | | |
1050 | 1050 | | |
1051 | | - | |
| 1051 | + | |
1052 | 1052 | | |
1053 | | - | |
1054 | | - | |
1055 | | - | |
1056 | | - | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
1057 | 1057 | | |
1058 | | - | |
| 1058 | + | |
1059 | 1059 | | |
1060 | | - | |
1061 | | - | |
1062 | | - | |
1063 | | - | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
1064 | 1064 | | |
1065 | 1065 | | |
1066 | 1066 | | |
1067 | 1067 | | |
1068 | 1068 | | |
1069 | | - | |
| 1069 | + | |
| 1070 | + | |
1070 | 1071 | | |
1071 | 1072 | | |
1072 | 1073 | | |
1073 | 1074 | | |
1074 | 1075 | | |
1075 | 1076 | | |
| 1077 | + | |
1076 | 1078 | | |
1077 | | - | |
1078 | | - | |
| 1079 | + | |
1079 | 1080 | | |
1080 | 1081 | | |
1081 | 1082 | | |
1082 | 1083 | | |
| 1084 | + | |
1083 | 1085 | | |
1084 | | - | |
1085 | | - | |
| 1086 | + | |
1086 | 1087 | | |
1087 | 1088 | | |
1088 | | - | |
1089 | | - | |
1090 | | - | |
1091 | | - | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
1092 | 1093 | | |
1093 | 1094 | | |
1094 | 1095 | | |
| 1096 | + | |
1095 | 1097 | | |
1096 | | - | |
1097 | | - | |
| 1098 | + | |
1098 | 1099 | | |
1099 | 1100 | | |
1100 | 1101 | | |
| 1102 | + | |
1101 | 1103 | | |
1102 | | - | |
1103 | | - | |
| 1104 | + | |
1104 | 1105 | | |
1105 | 1106 | | |
1106 | 1107 | | |
| |||
Lines changed: 34 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
30 | 35 | | |
31 | 36 | | |
32 | 37 | | |
33 | 38 | | |
34 | | - | |
| 39 | + | |
35 | 40 | | |
36 | 41 | | |
37 | 42 | | |
38 | 43 | | |
39 | 44 | | |
| 45 | + | |
40 | 46 | | |
41 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
42 | 51 | | |
43 | | - | |
| 52 | + | |
44 | 53 | | |
45 | 54 | | |
46 | 55 | | |
| |||
101 | 110 | | |
102 | 111 | | |
103 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
104 | 130 | | |
105 | 131 | | |
106 | 132 | | |
107 | 133 | | |
108 | 134 | | |
109 | 135 | | |
110 | 136 | | |
| 137 | + | |
111 | 138 | | |
112 | 139 | | |
113 | 140 | | |
| |||
0 commit comments