Skip to content

feat(cli-tools): add all Hermes Agent auxiliary model roles - #8543

Merged
diegosouzapw merged 3 commits into
diegosouzapw:release/v3.8.49from
leszek3737:hermes_auxiliary
Jul 26, 2026
Merged

diegosouzapw merged 3 commits into
diegosouzapw:release/v3.8.49from
leszek3737:hermes_auxiliary

Conversation

@leszek3737

@leszek3737 leszek3737 commented Jul 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Extend the Hermes Agent role catalog from 7 to 18 slots to match the full
auxiliary.* set in Hermes Agent config.yaml.

Changes

  • src/lib/cli-helper/config-generator/hermes-agent.ts — HERMES_AGENT_ROLES 7 → 18 entries
  • src/app/(dashboard)/dashboard/cli-code/components/HermesAgentToolCard.tsx — UI card HERMES_ROLES 7 → 18 entries
  • src/i18n/messages/en.json — +22 i18n keys (hermesRoleMcp … hermesRoleBackgroundReviewDesc)
  • src/i18n/messages/pl.json — +22 i18n keys (Polish)

New roles: mcp, title_generation, memory_query_rewrite, tts_audio_tags,
triage_specifier, kanban_decomposer, profile_describer, goal_judge,
curator, monitor, background_review.

Backend generator (generateHermesAgentConfig), reader (getCurrentHermesAgentRoles),
and API route are generic on auxiliary. — no backend logic changes needed.

Tests

  • tests/unit/cli-helper/config-generator.test.ts — 26/26 pass (no changes needed;
    tests exercise the generic generator, not the role catalog)
  • npm run lint — clean
  • Prettier — clean

Checklist

  • Tests pass (node --import tsx/esm --test tests/unit/cli-helper/config-generator.test.ts)
  • Linting passes (npm run lint)
  • No new production logic — data-only change (role catalog + i18n)

Extend HERMES_AGENT_ROLES from 7 to 18 slots to match the full
auxiliary.* set in Hermes Agent config.yaml:

- add: mcp, title_generation, memory_query_rewrite, tts_audio_tags,
  triage_specifier, kanban_decomposer, profile_describer, goal_judge,
  curator, monitor, background_review
- reorder: web_extract before compression (match upstream docs)

Backend generator/reader are generic on auxiliary.<role> — only the
role catalog, UI card, and i18n (en + pl) needed updating.
@leszek3737
leszek3737 requested a review from diegosouzapw as a code owner July 25, 2026 08:23
The 22 new en.json keys landed only in pl.json, breaking the vi and pt-BR
key-parity guards. Adds the same keys with real translations (no placeholder
strings), keeping both parity assertions exact.

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
@diegosouzapw

Copy link
Copy Markdown
Owner

Babysit summary

@diegosouzapw

Copy link
Copy Markdown
Owner

Thanks for this — verified the backend/UI role-id lists line up 1:1 (18/18, same order) and that generateHermesAgentConfig/getCurrentHermesAgentRoles are indeed fully generic on auxiliary.<role>, so no backend logic change was needed as you noted. Also confirmed the vi/pt-BR parity guards pass after your second commit, and the i18n-ui-coverage gate (80% threshold) passes for the remaining locales via fallback, consistent with how this project handles partial-locale i18n additions.

One gap worth closing before this lands: the existing test exports HERMES_AGENT_ROLES with expected roles in tests/unit/cli-helper/config-generator.test.ts only asserts 4 of the original ids (default, delegation, vision, approval) and wasn't extended to cover any of the 11 new roles. Since this is a change to production code under src/lib/, could you add either:

  • assertions for the new role ids in that test, or
  • a single assertion that diffs the backend HERMES_AGENT_ROLES id list against the UI HERMES_ROLES id list in HermesAgentToolCard.tsx,

so a future edit that adds/renames a role in one file but not the other fails CI instead of shipping silently? Should be a small, mechanical addition on top of what's already here.

…d UI

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
@diegosouzapw
diegosouzapw merged commit 2614e8a into diegosouzapw:release/v3.8.49 Jul 26, 2026
5 checks passed
@diegosouzapw

Copy link
Copy Markdown
Owner

Thanks @leszek3737 — merged into release/v3.8.49 via the local merge-train (validated as one combined tree: full test:unit + test:vitest 274/274 on the 32-core box, tip d4b9ce6016). Your commit keeps its authorship. 🚀

@diegosouzapw diegosouzapw mentioned this pull request Jul 28, 2026
@leszek3737
leszek3737 deleted the hermes_auxiliary branch July 30, 2026 00:25
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…zapw#8543)

* feat(cli-tools): add all Hermes Agent auxiliary model roles

Extend HERMES_AGENT_ROLES from 7 to 18 slots to match the full
auxiliary.* set in Hermes Agent config.yaml:

- add: mcp, title_generation, memory_query_rewrite, tts_audio_tags,
  triage_specifier, kanban_decomposer, profile_describer, goal_judge,
  curator, monitor, background_review
- reorder: web_extract before compression (match upstream docs)

Backend generator/reader are generic on auxiliary.<role> — only the
role catalog, UI card, and i18n (en + pl) needed updating.

* fix(i18n): translate the 12 new Hermes auxiliary roles into vi and pt-BR

The 22 new en.json keys landed only in pl.json, breaking the vi and pt-BR
key-parity guards. Adds the same keys with real translations (no placeholder
strings), keeping both parity assertions exact.

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>

* test(cli-helper): guard HERMES role catalog parity between backend and UI

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

---------

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…zapw#8543)

* feat(cli-tools): add all Hermes Agent auxiliary model roles

Extend HERMES_AGENT_ROLES from 7 to 18 slots to match the full
auxiliary.* set in Hermes Agent config.yaml:

- add: mcp, title_generation, memory_query_rewrite, tts_audio_tags,
  triage_specifier, kanban_decomposer, profile_describer, goal_judge,
  curator, monitor, background_review
- reorder: web_extract before compression (match upstream docs)

Backend generator/reader are generic on auxiliary.<role> — only the
role catalog, UI card, and i18n (en + pl) needed updating.

* fix(i18n): translate the 12 new Hermes auxiliary roles into vi and pt-BR

The 22 new en.json keys landed only in pl.json, breaking the vi and pt-BR
key-parity guards. Adds the same keys with real translations (no placeholder
strings), keeping both parity assertions exact.

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>

* test(cli-helper): guard HERMES role catalog parity between backend and UI

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

---------

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants