Task 5 — Интерфейсы
Phase: 1
Status: done
Owner: —
Slug: interfaces
Goal
CLI REPL, Telegram-бот, ASP.NET Core Minimal API и Astro web UI поверх одного application service и policy-слоя.
Acceptance criteria
src/hercules-web/src/lib/api.ts— добавить методы lifecycle API:evaluateSkill,deprecateSkill,rollbackSkill,undeprecateSkill,improveSkill,getDeprecatedSkills,getSkillEvaluationResultsrc/hercules-web/src/pages/skills.astro— полная страница навыков с действиями: evaluate, deprecate/rollback/undeprecate, improve (AI), кнопка создания навыкаsrc/hercules-web/src/pages/stats.astro— отображение budget (месячный лимит, daily breakdown) и audit logsrc/hercules-web/src/pages/skills.astro— модальные диалоги: create skill (name/trigger/prompt), improve skill (AI-assisted)src/agent/Telegram/TelegramBot.cs— расширить обработку: /evaluate {skillId}, /deprecate {skillId} {reason}, /rollback {skillId}, команды lifecycle-ответовsrc/agent/CLI/ConsoleUI.cs— убедиться что lifecycle команды (/skills evaluate,/skills deprecate,/skills rollback) покрыты (уже есть через SkillManager)dotnet buildHercules.csproj — 0 errors, 0 warningsdotnet buildHercules.WebApi.csproj — 0 errors, 0 warningsastro buildhercules-web — 0 errorsdotnet test— baseline passed (217+)
Scope / Likely files
src/agent/CLI/, src/agent/Telegram/, src/agent/Hercules.WebApi/, src/hercules-web/
Dependencies
- блокирует / опирается на: task_001 — core-agent-loop
- блокирует / опирается на: task_004 — multi-provider-llm
Risks / Rollback
Дрейф UX между интерфейсами; единый presentation-слой обязателен.
Implementation notes
2026-08-12
Добавлено:
src/hercules-web/src/lib/api.ts — новые TypeScript-типы и методы:
SkillEvaluationResultDto,DeprecatedSkillsDto,AuditEntryDto,AuditLogDto,BudgetDto,BudgetMonthlyDtoevaluateSkill(id)→ POST /api/skills/{id}/evaluatedeprecateSkill(id, reason)→ POST /api/skills/{id}/deprecaterollbackSkill(id)→ POST /api/skills/{id}/rollbackundeprecateSkill(id)→ POST /api/skills/{id}/undeprecateimproveSkill(id)→ POST /api/skills/{id}/improvegetDeprecatedSkills()→ GET /api/skills/deprecatedgetBudget(days)→ GET /api/budgetgetBudgetMonthly(limitUsd)→ GET /api/budget/monthlygetAudit(limit)→ GET /api/auditgetAuditByTarget(target, limit)→ GET /api/audit/{target}
src/hercules-web/src/pages/skills.astro — расширенная страница навыков:
- Кнопка “Deprecated” для показа/скрытия deprecated-навыков
- Кнопка “Оценить” → вызывает evaluateSkill, показывает PASS/FAIL + toast
- Кнопка “Deprecated” → prompt для ввода причины → deprecateSkill
- Deprecated-карточки с кнопками “Откат” и “Восстановить”
- Toast-уведомления для всех действий (ok/err)
- Оценка последнего запуска отображается на карточке навыка
src/hercules-web/src/components/StatsDashboard.astro — расширенный дашборд:
- Секция “Бюджет LLM (30 дней)” — вызовы, токены, стоимость, daily chart, месячная сводка с предупреждением о превышении лимита
- Секция “Аудит” — последние 50 событий с actor/action/target
- Refresh-кнопки для budget и audit
src/agent/Telegram/TelegramBot.cs — расширенный Telegram-бот:
/evaluate [id]— запуск оценки навыка через SkillLifecycleService/deprecate [id] [reason]— депрекация навыка/rollback [id]— откат к предыдущей версии/help— справка по всем командам- SkillLifecycleService добавлен в конструктор (PRIMARY CONSTRUCTOR)
- SkillManager регистрирует DeprecatedAt для визуального отличия deprecated-навыков в /skills
src/agent/Program.cs — добавлена DI-регистрация:
SkillLifecyclePolicy,SkillDeprecationManager,SkillEvaluationEngine,SkillLifecycleService
Validation:
dotnet buildHercules.csproj — 0 errors, 0 warningsdotnet buildHercules.WebApi.csproj — 0 errors, 0 warningsdotnet test— 254/254 passedastro buildhercules-web — 0 errors, 5 pages built
Links
- Backlog: ../backlog.md
- Roadmap (EN): ../../ROADMAP-EN.md
- Roadmap (RU): ../../ROADMAP-RU.md