Conversation
…ugins validate passes `hermes plugins validate` fails at HEAD with `capability probe: import failed: No module named 'eth_abi'` because clawmes/delegation/encoding.py imports eth_abi/eth_utils at module level and is reached from `import clawmes` (commands.delegation -> compiler). Hermes never auto-installs plugin dependencies and the probe imports the plugin bare, so the whole plugin failed to load wherever eth-abi is absent. - encoding.py: thin abi_encode()/keccak() wrappers import lazily; call sites unchanged. SEL_* selectors become the literal precomputed values (each == selector(sig); pinned by tests/delegation/test_encoding.py). - plugin.yaml: declare python_dependencies (mirrors pyproject + eth-abi). tests/delegation/test_encoding.py + test_compiler.py: 53 passed.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
hermes plugins validatefails at HEAD withcapability probe: import failed: No module named 'eth_abi':clawmes/delegation/encoding.pyimportseth_abi/eth_utilsat module level and is reached fromimport clawmes(commands.delegation → compiler), so the plugin cannot load wherever those packages are missing. Hermes never auto-installs plugin dependencies and the validate probe imports the module in a bare environment, so this also blocks catalog CI.This PR turns the two imports into thin lazy
abi_encode()/keccak()wrappers (all call sites unchanged), replaces the six module-levelSEL_*computations with their precomputed literal values (each equalsselector(<sig>); four are already pinned bytests/delegation/test_encoding.py, all six re-verified againsteth_utils.keccak), and declarespython_dependenciesinplugin.yamlmirroringpyproject.toml(pluseth-abi, which is imported directly).tests/delegation/test_encoding.py+test_compiler.py: 53 passed before and after.Before:
capability probe: import failed: No module named 'eth_abi'→ After:ok: true(register() ran in isolation) in both a full Hermes venv and a bare Python 3.11 Hermes install.With this merged,
hermes plugins validatepasses and Hermes maintainers can list the plugin in the plugin catalog at the merged commit (see NousResearch/hermes-agent#112292 for the sweep).