feat: add Hermes Agent support#118
Conversation
5bc8d28 to
5c4b7ec
Compare
|
Thanks for the Hermes Agent support — the overall approach looks sound. Putting a discovery A few things before this can land — covering both this PR and the stacked #119: 1.
2. Confirm the Hermes CLI surface (#119).
3. Rebase needed (#118 and #119). 4. Minor (non-blocking). Happy to re-review once the rename and rebase are in. Thanks again for the contribution. |
…ujibee#4) hermes is manual-only (mode off): apply_settings and do_status short-circuit it before ever calling resolve_hooks_file, so the hermes) case was unreachable. Replace it with a comment noting the intentional absence. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5c4b7ec to
a521cd9
Compare
|
Thanks for the thorough review! Addressed all four points across #118 and #119, and rebased both onto current Pushed: #118 → 1. 2. Hermes CLI surface (#119). Verified against a real Hermes binary (v0.16.0):
3. Rebase (#118 + #119). Both rebased onto current 4. Dead Ready for re-review 🙏 |
Integrates @Fewmanism's Hermes support (#118) and spawn profile (#119), adapted to the 1.1.0 driver layout (scripts/drivers/types/<name>/) instead of the old hardcoded per-type branches and templates/ dir. - scripts/drivers/types/hermes/{type.conf,template.md,_delivery.sh}: a manual- only type (delivery_modes=off — no automatic delivery hook). The _delivery.sh plug makes apply/status/teardown no-ops so 'set off' writes nothing and never disturbs another type's watcher; cli=hermes + spawnable=yes make 'spawn hermes' work through the generic data-driven path. - delivery.sh: gate the in-session stop directive on the type actually having an automatic mode (data-driven via delivery_modes), so a manual-only type emits no AGMSG-DIRECTIVE on 'set off'. No per-type branch. - install.sh: ship the Hermes skill to ~/.hermes/skills/<name>/ and accept --agent-type hermes for the shared SKILL.md, both via agmsg_type_template_path. - tests: hermes delivery (5) + install (5) + join, and the registry invariants (now 7 built-ins; spawnable set gains hermes; no-branch guard covers hermes). Deferred: #119's --hermes-profile spawn flag. It is inherently hermes-specific and the 1.1.0 layout forbids per-type branches in spawn.sh; it needs a generic spawn-profile mechanism (manifest key or spawn plug), tracked as a follow-up. Generic 'spawn hermes <name>' (default Hermes profile, actas via boot prompt) works today. Co-authored-by: Fewmanism <lgndscntn@googlemail.com>
Summary
~/.hermes/skills/<cmd>/~/.agents/skills/<cmd>/hermesidentities injoin.shand manual-only delivery indelivery.sh/agmsgusage and manual inbox checks (mode off)Notes
Hermes Agent exposes installed skills as dynamic slash commands, so installing
~/.hermes/skills/agmsg/SKILL.mdmakes/agmsgavailable in Hermes sessions. Hermes does not have an agmsg automatic delivery hook here, sodelivery.sh set off hermesis a no-op for hooks/watchers and does not emit Claude-specific directives or stop existing Claude Code watchers for the same project.Verification
npm run testbash -n install.sh scripts/delivery.sh scripts/join.sh setup.shnode -c bin/agmsg.jsgit diff --checkbats tests(244/244)/agmsg team: test-team agent: hermes-test/agmsg send hermes-test hello from hermes e2e/agmsginbox/read