UI nova dentro do Construtor (Hermes) — TabBar com Chat e Verificação. Verificação roda HermesBuilder::Validator (DB+runtime) e exibe resultado agrupado por categoria, com botão Refazer inline em FAIL/WARN reparáveis. Backend (porta dos checks DB do CLI bin/hermes-validate): - HermesBuilder::Validator com 22+ checks: engine, profile, port, secret, parent, unit, Brand, CaptainInbox sync (o bug que travou Juliana), pricing dry-run, Inter creds, typing/response_delay, registry MCP completo. - HermesBuilder::Repairer com 4 handlers automáticos: set_engine_hermes, sync_captain_inbox_unit, set_default_typing_delay, set_default_response_delay. - Endpoints novos: GET assistants, GET validate?slug=, POST repair. Frontend: - builder/Index.vue: wrapper com TabBar. - builder/BuilderChat.vue: extraído do Index original. - builder/BuilderVerification.vue: dropdown + Conferir agora + lista agrupada por categoria com badges + botão Refazer inline. i18n: keys em pt_BR e en sob CAPTAIN_HERMES_BUILDER.VERIFY.*. Filesystem/systemd checks ficam pro CLI hermes-validate (Rails container não enxerga /root/.hermes/profiles do host). Validado HTTP: GET /validate?slug=juliana_qnn1 → 28 PASS / 0 FAIL / 1 WARN. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
747 B
JavaScript
39 lines
747 B
JavaScript
/* global axios */
|
|
import ApiClient from '../ApiClient';
|
|
|
|
class HermesBuilder extends ApiClient {
|
|
constructor() {
|
|
super('captain/hermes_builder', { accountScoped: true });
|
|
}
|
|
|
|
fetchMessages() {
|
|
return axios.get(this.url);
|
|
}
|
|
|
|
sendMessage(text) {
|
|
return axios.post(this.url, { text });
|
|
}
|
|
|
|
start() {
|
|
return axios.post(`${this.url}/start`);
|
|
}
|
|
|
|
reset() {
|
|
return axios.delete(`${this.url}/reset`);
|
|
}
|
|
|
|
fetchAssistants() {
|
|
return axios.get(`${this.url}/assistants`);
|
|
}
|
|
|
|
validate(slug) {
|
|
return axios.get(`${this.url}/validate`, { params: { slug } });
|
|
}
|
|
|
|
repair(slug, repairId) {
|
|
return axios.post(`${this.url}/repair`, { slug, repair_id: repairId });
|
|
}
|
|
}
|
|
|
|
export default new HermesBuilder();
|