feat(setup): add Hermes Agent hook integration#49
Conversation
Add Hermes Agent as a setup target using its native shell hook surface. The installer writes a mnemon skill, deploys Hermes-specific hook scripts, and patches ~/.hermes/config.yaml for session start, pre-LLM recall injection, post-response nudges, and optional session finalization guidance. The YAML patcher preserves unrelated Hermes config, replaces prior mnemon hook entries idempotently, and eject removes the owned skill, hooks, config entries, and transient state. Validation: go test ./internal/setup ./cmd, go build -o mnemon ., scripts/check_bilingual_sync.sh, and manual setup/eject smoke checks with an isolated HOME.
|
'...it intentionally does not close the issue because a Hermes MemoryProvider/plugin path may still be worth tracking separately.' could you flesh out a bit more what you were expecting here please? |
|
Sure. This PR covers the standard Mnemon integration path: hook + skill, using Hermes' native hook and skill surfaces. I kept #2 open because the issue also surfaced another interesting direction: a Hermes That seems like a valid alternative for users who want Mnemon to behave more like a first-class Hermes memory backend. I haven't looked deeply enough yet to say whether that should become an official path, and it has different tradeoffs from the hook approach, especially around automatic memory writes vs. Mnemon's LLM-supervised writeback model. So I'd rather keep the issue open for now and evaluate that separately. |
|
@elessarrr just adding an explicit mention here so this doesn't get lost: #49 (comment) |
|
Thanks for clarifying, @Grivn. This PR covers my original proposal; glad it shipped. I’ll step back for now and keep an eye on issues in case an interesting opportunity to contribute comes up. |
Summary
Adds
mnemon setup --target hermesusing Hermes Agent's native shell hook surface instead of a MemoryProvider adapter.hermesor~/.hermes~/.hermes/skills/mnemon/SKILL.md~/.hermes/agent-hooks/mnemon/~/.hermes/config.yamlforon_session_start,pre_llm_call,post_llm_call, and optionalon_session_finalizeThis is one native-hook implementation path for #2; it intentionally does not close the issue because a Hermes MemoryProvider/plugin path may still be worth tracking separately.
Validation
go test ./internal/setup ./cmdgo build -o mnemon .bash scripts/check_bilingual_sync.shgit diff --checkHOMEsmoke test formnemon setup --target hermes --yesHOMEsmoke test formnemon setup --eject --target hermes --yesNote:
go test ./...still fails in existing harness UI/read tests that depend on real project lifecycle fixture data (TestPagesRenderRealData,TestLoadRealProjectRendersData); those failures are unrelated to this change.