hermes-agent/tests
teknium1 efec4fcaab feat(execute_code): add json_parse, shell_quote, retry helpers to sandbox
The execute_code sandbox generates a hermes_tools.py stub module for LLM
scripts. Three common failure modes keep tripping up scripts:

1. json.loads(strict=True) rejects control chars in terminal() output
   (e.g., GitHub issue bodies with literal tabs/newlines)
2. Shell backtick/quote interpretation when interpolating dynamic content
   into terminal() commands (markdown with backticks gets eaten by bash)
3. No retry logic for transient network failures (API timeouts, rate limits)

Adds three convenience helpers to the generated hermes_tools module:

- json_parse(text) — json.loads with strict=False for tolerant parsing
- shell_quote(s) — shlex.quote() for safe shell interpolation
- retry(fn, max_attempts=3, delay=2) — exponential backoff wrapper

Also updates the EXECUTE_CODE_SCHEMA description to document these helpers
so LLMs know they're available without importing anything extra.

Includes 7 new tests (unit + integration) covering all three helpers.
2026-03-06 01:52:46 -08:00
..
agent test: comprehensive tests for model metadata + firecrawl config 2026-03-05 18:22:39 -08:00
cron test: strengthen assertions across 7 test files (batch 1) 2026-03-05 18:39:37 -08:00
fakes test: add HA integration tests with fake in-process server 2026-02-28 14:28:04 +03:00
gateway test: strengthen assertions across 7 test files (batch 1) 2026-03-05 18:39:37 -08:00
hermes_cli test: enhance session source tests and add validation for chat types 2026-02-26 00:53:57 -08:00
honcho_integration Merge PR #193: add unit tests for 5 security/logic-critical modules (batch 4) 2026-03-04 19:35:01 -08:00
integration test: add HA integration tests with fake in-process server 2026-02-28 14:28:04 +03:00
tools feat(execute_code): add json_parse, shell_quote, retry helpers to sandbox 2026-03-06 01:52:46 -08:00
__init__.py A bit of restructuring for simplicity and organization 2025-10-01 23:29:25 +00:00
conftest.py fix(tests): isolate HERMES_HOME in tests and adjust log directory for debug session 2026-03-02 04:34:21 -08:00
test_413_compression.py fix: preflight context compression + error handler ordering for model switches 2026-03-04 14:42:41 -08:00
test_auth_codex_provider.py refactor(auth): transition Codex OAuth tokens to Hermes auth store 2026-03-01 19:59:24 -08:00
test_auth_nous_provider.py Fix nous refresh token rotation failure in case where api key mint/retrieval fails 2026-03-02 17:18:15 +11:00
test_cli_init.py test: strengthen assertions across 7 test files (batch 1) 2026-03-05 18:39:37 -08:00
test_cli_provider_resolution.py Add OpenAI Codex provider runtime and responses integration (without .agent/PLANS.md) 2026-02-25 18:20:38 -08:00
test_codex_execution_paths.py fix: update mock agent signature to accept task_id after PR #419 2026-03-05 01:41:50 -08:00
test_codex_models.py Harden Codex auth refresh and responses compatibility 2026-02-25 19:27:54 -08:00
test_external_credential_detection.py refactor(auth): transition Codex OAuth tokens to Hermes auth store 2026-03-01 19:59:24 -08:00
test_flush_memories_codex.py refactor(cli): Finalize OpenAI Codex Integration with OAuth 2026-02-28 21:47:51 -08:00
test_hermes_state.py test: strengthen assertions across 7 test files (batch 1) 2026-03-05 18:39:37 -08:00
test_honcho_client_config.py fix(honcho): auto-enable when API key is present 2026-03-01 03:12:37 -05:00
test_model_tools.py test: strengthen assertions across 3 more test files (batch 2) 2026-03-05 18:46:30 -08:00
test_provider_parity.py feat(agent): add summary handling for reasoning items 2026-03-01 20:03:03 -08:00
test_run_agent_codex_responses.py refactor(cli): Finalize OpenAI Codex Integration with OAuth 2026-02-28 21:47:51 -08:00
test_run_agent.py test: strengthen assertions across 3 more test files (batch 2) 2026-03-05 18:46:30 -08:00
test_runtime_provider_resolution.py fix: prioritize OPENROUTER_API_KEY over OPENAI_API_KEY 2026-03-03 00:28:26 +03:00
test_toolset_distributions.py test: add unit tests for 8 modules (batch 2) 2026-02-26 13:54:20 +03:00
test_toolsets.py test: add unit tests for 8 untested modules 2026-02-26 13:27:58 +03:00
test_trajectory_compressor.py test: add 25 unit tests for trajectory_compressor 2026-02-28 21:28:28 +03:00