You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Why
Routine drift audit of the AionUi Butler assistant (`aionui-assistant`)
against current `aioncore` source. Two of its documented endpoints were
dead (would silently fail when an agent followed the skill), and the
cron backend gained a full REST surface the butler wasn't using.
## What
**Breaking fixes (`aionui-config`)**
- `GET /api/agents` → removed; the path 404s
(`legacy_agents_endpoint_is_not_found`). The live engine list is `GET
/api/agents/management`, returning `AgentManagementRow`s with
`installed`/`status` instead of the old `available`/`handshake` shape.
`handshake`/`available` now documented as living on `POST
/api/agents/refresh`.
- `GET /api/skills/builtin-auto` → removed; the route 405s
(`builtin_auto_skill_list_get_is_not_registered`). `GET /api/skills`
already lists every skill with its source.
**New capability (`aionui-config`)**
- Added a "Scheduled tasks (cron)" section: natural-language schedule →
`POST /api/cron/jobs`, with the three `schedule` shapes
(`at`/`every`/`cron`), required/optional fields, and the
list/get/update/run-now/delete endpoints. Captured the non-obvious
contract (5-field crontab auto-prepends seconds, `created_by` is
`user|agent`, `conversation_id` always required,
`agent_config.assistant_id` required in practice,
`deny_unknown_fields`).
- Removed the stale "cron is out of scope" note; added a cron
verification step and cron to the frontmatter description for
auto-trigger.
**Doc fix (`aionui-troubleshooting`)**
- Corrected the "no REST API for crons" claim — `/api/cron/jobs` exists;
SQLite stays the diagnostic read path.
**Rule (`aionui-assistant`, all three locales)**
- Removed the "I don't create / configure scheduled tasks" disclaimer;
advertised scheduled-task creation in the Configuration intro and the
skills table. zh-CN uses full-width punctuation.
## How verified
Every change traced to source before editing:
- `crates/aionui-ai-agent/src/routes/agent.rs`,
`registry.rs::list_management_rows` (route table + field projection)
- `crates/aionui-api-types/src/agent_discovery.rs` (`AgentManagementRow`
vs `AgentMetadata`)
- `crates/aionui-extension/src/skill_routes.rs` (skill route table, the
405 test)
- `crates/aionui-cron/src/{routes.rs,service.rs,scheduler.rs,types.rs}`
+ `crates/aionui-api-types/src/cron.rs` (cron contract)
- The 404/405 assertions in `crates/aionui-app/tests/acp_e2e.rs` and
`skill_routes.rs`
## Deploy path
Asset-only change — no `.rs` modifications. Ships via `include_dir!` on
the next `aioncore` binary build.
Copy file name to clipboardExpand all lines: crates/aionui-app/assets/builtin-assistants/rules/aionui-assistant.en-US.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,12 +19,13 @@ Be proactive, helpful, and keep things easy for the user.
19
19
- Configure MCP servers
20
20
- Add an LLM model / API key, switch the default model
21
21
- Change UI settings (language, theme, font size, zoom, notifications)
22
+
- Schedule recurring or one-off tasks ("every morning at 9", "remind me in 2 hours")
22
23
23
24
**Troubleshooting (diagnose problems)**
24
25
25
26
- A conversation is stuck or errored
26
27
- A model / provider call is failing
27
-
- Why a scheduled (cron) task didn't run (I can diagnose this, but I don't create / configure scheduled tasks)
28
+
- Why a scheduled (cron) task didn't run
28
29
- An MCP server has no tools, a team member is hung
29
30
30
31
**Remote access (use it from elsewhere)**
@@ -40,7 +41,7 @@ What would you like me to help with?"
40
41
41
42
| Skill | Purpose | Nature |
42
43
| --- | --- | --- |
43
-
|**aionui-config**| Create/edit assistants, import & attach skills, configure MCP, add LLM providers & API keys, change app/UI settings |**Write** (affects the live app) |
44
+
|**aionui-config**| Create/edit assistants, import & attach skills, configure MCP, add LLM providers & API keys, change app/UI settings, create & manage scheduled tasks|**Write** (affects the live app) |
44
45
|**aionui-troubleshooting**| Inspect conversations/runtime, read aioncore logs, check provider health, cron / team / MCP status |**Read-only** diagnosis |
45
46
|**aionui-webui-public**| Set up remote access to the local AionUi and produce an external access link |**Execute** (runs commands on the user's machine, opens a connection) |
Copy file name to clipboardExpand all lines: crates/aionui-app/assets/builtin-assistants/rules/aionui-assistant.ru-RU.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,12 +19,13 @@
19
19
- Настройка серверов MCP
20
20
- Добавление модели LLM / API-ключа, смена модели по умолчанию
21
21
- Изменение настроек интерфейса (язык, тема, размер шрифта, масштаб, уведомления)
22
+
- Планирование периодических или разовых задач («каждое утро в 9», «напомни через 2 часа»)
22
23
23
24
**Диагностика (найду проблему)**
24
25
25
26
- Разговор завис или выдал ошибку
26
27
- Сбой вызова модели / провайдера
27
-
- Почему запланированная задача (cron) не выполнилась (я могу это диагностировать, но не создаю / не настраиваю запланированные задачи)
28
+
- Почему запланированная задача (cron) не выполнилась
28
29
- У сервера MCP нет инструментов, участник команды завис
29
30
30
31
**Удалённый доступ (чтобы пользоваться откуда угодно)**
@@ -40,7 +41,7 @@
40
41
41
42
| Навык | Назначение | Характер |
42
43
| --- | --- | --- |
43
-
|**aionui-config**| Создание/редактирование ассистентов, импорт и подключение навыков, настройка MCP, добавление провайдеров LLM и API-ключей, изменение настроек приложения/интерфейса |**Запись** (влияет на работающее приложение) |
44
+
|**aionui-config**| Создание/редактирование ассистентов, импорт и подключение навыков, настройка MCP, добавление провайдеров LLM и API-ключей, изменение настроек приложения/интерфейса, создание и управление запланированными задачами|**Запись** (влияет на работающее приложение) |
44
45
|**aionui-troubleshooting**| Просмотр разговоров/состояния выполнения, чтение логов aioncore, проверка здоровья провайдеров, состояние cron / команд / MCP |**Только чтение**, диагностика |
45
46
|**aionui-webui-public**| Настроить удалённый доступ к локальному AionUi и выдать внешнюю ссылку доступа |**Выполнение** (запускает команды на машине пользователя, открывает соединение) |
Configure AionUi itself through its backend API — create and edit assistants (name, avatar, system prompt, quick-start prompts, engine), import and attach skills, manage MCP servers, configure LLM providers (add/edit a model endpoint, set the API key, fetch the model list, pick the default model), and change app/UI settings (language, theme, font size, zoom, notifications). Use when the user wants you to set up an AionUi assistant, sink a skill into AionUi's skill registry, attach skills to an assistant, change an assistant's avatar or system prompt, add or configure an MCP server, add an LLM/model provider or API key, switch the default model, change the theme or language, or otherwise configure their AionUi installation. This is "Agent-assisted AionUi configuration": you act on the user's behalf via the local backend.
4
+
Configure AionUi itself through its backend API — create and edit assistants (name, avatar, system prompt, quick-start prompts, engine), import and attach skills, manage MCP servers, configure LLM providers (add/edit a model endpoint, set the API key, fetch the model list, pick the default model), change app/UI settings (language, theme, font size, zoom, notifications), and create or manage scheduled tasks (cron jobs) from a natural-language schedule. Use when the user wants you to set up an AionUi assistant, sink a skill into AionUi's skill registry, attach skills to an assistant, change an assistant's avatar or system prompt, add or configure an MCP server, add an LLM/model provider or API key, switch the default model, change the theme or language, schedule a recurring or one-off task ("every morning at 9", "remind me in 2 hours", "run this daily"), or otherwise configure their AionUi installation. This is "Agent-assisted AionUi configuration": you act on the user's behalf via the local backend.
5
5
---
6
6
7
7
> **⚠️ Platform note — read before running any command.** The shell snippets in this skill are written for **macOS / Linux** (bash/zsh). Always check which OS you are on first. On **Windows** do **not** run them verbatim — the underlying tool/CLI commands are usually cross-platform, but the surrounding shell syntax is not. Translate it to PowerShell before running:
@@ -265,7 +265,6 @@ Three sources: `builtin` (`~/.aionui/builtin-skills/`), `custom`
265
265
```bash
266
266
python3 scripts/aionui_api.py get /api/skills
267
267
python3 scripts/aionui_api.py get /api/skills/paths # where skills live on disk
268
-
python3 scripts/aionui_api.py get /api/skills/builtin-auto # auto-injected builtin skills
269
268
python3 scripts/aionui_api.py post /api/skills/info '{"skill_path":"/abs/path/to/skill-folder"}'# read a SKILL.md's name/description WITHOUT importing
270
269
```
271
270
@@ -534,15 +533,106 @@ python3 scripts/aionui_api.py put /api/settings/client '{"ui.zoomFactor": 1.0}'
534
533
535
534
## Engines (agents)
536
535
537
-
`GET /api/agents` lists the available engines (`aionrs`, `claude`, `codex`, …).
538
-
Each entry carries `enabled` (toggled on), `available` (installed & reachable),
539
-
`team_capable` (can run in a team), and a `handshake` object describing what the
|`conversation_id`| ✅ | the conversation the task is tied to — get one from `GET /api/conversations` (or create one). Even `new_conversation` jobs need this set |
601
+
|`created_by`| ✅ |`"agent"` when you create it on the user's behalf, `"user"` for a user-initiated one. **Only these two values**|
602
+
|`message` (or `prompt`) | — | the instruction sent on each run. `message` wins if both are given; with neither, the run sends an empty prompt |
603
+
|`execution_mode`| — |`"existing"` (default) reuses `conversation_id` every run; `"new_conversation"` spins up a fresh conversation each run |
604
+
|`agent_config`| — | which assistant runs the task. **In practice required for a new job**: omit it and the API 400s with *"assistant_id is required for new cron jobs"*. Pass `{"name":"<label>","assistant_id":"<id>"}`|
605
+
|`description`| — | optional longer description |
606
+
607
+
> `agent_config` is strict (`deny_unknown_fields`): only `name`, `assistant_id`,
608
+
> `cli_path`, `mode`, `model_id`, `model`, `config_options`, `workspace` are
0 commit comments