hermes-agent/tests
teknium1 ba4821d68f
feat: BackSearch plugin — point-in-time web search/fetch (General Reasoning)
Adds a bundled backend plugin (plugins/backsearch/) with two check_fn-gated
tools, backsearch and backfetch, backed by BackSearch from General Reasoning
(https://search.openreward.ai). Every request carries an as_of date; search
returns only documents crawled on or before it, and fetch returns the article
text as archived at that time — forecasting backtests, quant research loops,
RL environments, and reproducible benchmarks.

- plugins/backsearch/: plugin.yaml (kind: backend, auto-loads), tools.py
  (handlers, schemas, 402/401/404 typed errors, as_of validation, fetch
  text cap), __init__.py (registers into the 'backsearch' toolset)
- toolsets.py: backsearch toolset entry
- hermes_cli/tools_config.py: hermes tools row + TOOL_CATEGORIES setup flow,
  default-off with OPENREWARD_API_KEY auto-enable (mirrors x_search/HASS)
- hermes_cli/config.py: OPENREWARD_API_KEY in OPTIONAL_ENV_VARS
- docs: tools-reference, toolsets-reference, built-in-plugins
- tests/plugins/test_backsearch_plugin.py: 32 tests, real imports, httpx
  stubbed
2026-07-24 22:20:50 -07:00
..
acp feat(acp): list named custom providers in the ACP model selector 2026-07-24 15:57:30 -07:00
acp_adapter
…
agent fix(desktop): quote persisted @image: paths so spaced paths render 2026-07-24 21:20:52 -05:00
ci
…
cli test: cover custom endpoint key storage and model-list persistence 2026-07-24 21:12:59 -05:00
computer_use
…
cron fix: update heartbeat test stubs to accept workdir kwarg 2026-07-24 15:55:39 -07:00
dashboard
…
docker
…
e2e
…
fakes
…
fixtures/plugins/example-dashboard/dashboard
…
gateway fix(relay): normalize forwarded Discord interactions to leading-slash commands (#71048) 2026-07-25 13:29:36 +10:00
hermes_cli fix(update): stop `hermes update` stalling for minutes on a large state.db 2026-07-24 21:39:32 -07:00
hermes_state
…
honcho_plugin fix(honcho): default device-code poll interval to 5s when AS omits it 2026-07-24 07:53:12 -07:00
integration
…
manual
…
openviking_plugin fix(openviking): cool down failed refreshes and publish conn identity atomically 2026-07-24 13:00:53 +05:30
plugins feat: BackSearch plugin — point-in-time web search/fetch (General Reasoning) 2026-07-24 22:20:50 -07:00
providers
…
run_agent test: update credential-refresh tests for retire-not-close contract 2026-07-24 16:04:48 -07:00
scripts feat(linter): detect subprocess text=True without explicit encoding= 2026-07-24 11:45:57 -07:00
secret_sources
…
skills fix(skills): read OOXML parts as bytes and form JSON as UTF-8 in office skill scripts 2026-07-24 17:10:39 -07:00
state fix(compression): recover rotated session lineage 2026-07-24 16:00:34 -07:00
stress
…
tools fix(checkpoints): require positive volume-attachment evidence before orphan classification 2026-07-24 19:10:34 -07:00
tui_gateway feat(desktop): crash-survivable in-flight turn journal 2026-07-24 23:31:55 -05:00
website
…
__init__.py
…
conftest.py feat(slack): bridge slack.ignored_channels through the YAML→env config path 2026-07-23 12:01:24 -07:00
run_interrupt_test.py
…
test_account_usage.py
…
test_atomic_replace_symlinks.py
…
test_background_review_list_shapes.py
…
test_background_review_session_isolation.py
…
test_base_url_hostname.py
…
test_batch_runner_checkpoint.py
…
test_bitwarden_secrets.py
…
test_cli_file_drop.py
…
test_cli_manual_compress.py test(cli): prove /compress type-ahead queue-drain; map contributor email 2026-07-23 07:24:46 -07:00
test_cli_skin_integration.py
…
test_code_skew.py
…
test_command_secret_source.py
…
test_copilot_initiator.py
…
test_credential_file_permissions.py harden(slack): CDN-allowlist inbound file URLs, DNS-pin token downloads, widen token-file perms warning 2026-07-23 11:44:43 -07:00
test_ctx_halving_fix.py
…
test_delegate_cascade_49148.py
…
test_dispatch_session_id.py
…
test_empty_model_fallback.py
…
test_empty_session_hygiene.py
…
test_env_loader_applied_homes.py
…
test_env_loader_op_bootstrap.py
…
test_env_loader_secret_sources.py
…
test_evidence_store.py
…
test_fast_safe_load.py
…
test_fts_cjk_bigram.py
…
test_gateway_streaming_nested_config.py
…
test_get_tool_definitions_cache_isolation.py
…
test_hermes_bootstrap.py test(install): add UTF-8 regression guard for skills_sync child path 2026-07-24 17:10:39 -07:00
test_hermes_constants.py
…
test_hermes_home_profile_warning.py
…
test_hermes_logging.py
…
test_hermes_state.py fix(sessions): export delegate cascade before deletion 2026-07-25 09:30:44 +05:30
test_hermes_state_compression_locks.py fix(compression): prefer psutil.pid_exists for lease liveness probe; add same-pid self-reclaim guard 2026-07-23 16:21:19 -07:00
test_hermes_state_wal_fallback.py test(state): cover SQLite WAL-reset version gate and doctor probe 2026-07-23 17:32:38 +05:30
test_honcho_client_concurrency.py
…
test_honcho_client_config.py
…
test_honcho_session_context.py
…
test_honcho_startup_fail_open.py
…
test_install_autostash_conflict_recovery.py
…
test_install_diverged_update.py
…
test_install_lockfile_churn.py
…
test_install_no_initial_commit.py
…
test_install_ps1_ascii_only.py
…
test_install_ps1_native_stderr_eap.py
…
test_install_ps1_node_path_for_npm.py
…
test_install_ps1_python_fallback_venv.py
…
test_install_ps1_uv_powershell_host.py
…
test_install_ps1_web_server_syntax_probe.py
…
test_install_sh_browser_install.py
…
test_install_sh_install_method_stamp.py
…
test_install_sh_node_global_prefix.py
…
test_install_sh_pythonpath_sanitization.py
…
test_install_sh_root_fhs_uv_python_path.py
…
test_install_sh_setup_wizard_tty_probe.py
…
test_install_sh_symlink_stomp.py
…
test_install_sh_termux_network_prereqs.py
…
test_install_unmerged_index.py
…
test_ipv4_preference.py
…
test_iron_proxy.py Reapply "Merge pull request #30179 from NousResearch/feat/iron-proxy" 2026-07-24 09:49:00 -07:00
test_iron_proxy_cli.py Reapply "Merge pull request #30179 from NousResearch/feat/iron-proxy" 2026-07-24 09:49:00 -07:00
test_iron_proxy_e2e.py Reapply "Merge pull request #30179 from NousResearch/feat/iron-proxy" 2026-07-24 09:49:00 -07:00
test_lazy_session_regressions.py fix(desktop): persist @image: refs instead of the vision-enrichment text 2026-07-24 21:20:52 -05:00
test_lint_config.py
…
test_live_system_guard_self_test.py
…
test_mcp_serve.py
…
test_mini_swe_runner.py
…
test_minimax_model_validation.py
…
test_minimax_oauth.py
…
test_minisweagent_path.py
…
test_model_forces_max_completion_tokens.py
…
test_model_picker_scroll.py
…
test_model_tools.py
…
test_model_tools_async_bridge.py
…
test_ollama_num_ctx.py
…
test_onepassword_secrets.py
…
test_output_cap_parsing.py
…
test_packaging_build_guard.py
…
test_packaging_metadata.py
…
test_plugin_skills.py
…
test_plugin_utils.py
…
test_process_loop_event_loop_warning.py
…
test_profile_isolation_runtime.py
…
test_project_metadata.py
…
test_pty_keepalive_ws.py
…
test_pty_session.py
…
test_retry_utils.py
…
test_run_tests_parallel.py
…
test_sanitize_tool_error.py
…
test_search_slow_query_log.py
…
test_session_workspace_binding.py
…
test_slack_thread_require_mention.py
…
test_slash_worker_watchdog.py
…
test_sql_injection.py
…
test_sqlite_wal_reset_gate.py test(runtime): cover managed SQLite cutover (E-949) 2026-07-24 16:00:03 -07:00
test_stale_utils_module_import.py
…
test_state_db_malformed_repair.py
…
test_subprocess_home_isolation.py
…
test_telegram_polling_progress_ptb.py
…
test_termux_all_extra_compat.py
…
test_timezone.py
…
test_tini_shim.py
…
test_toolset_distributions.py
…
test_toolsets.py docs(xai): clarify x_search vs xurl routing without schema cross-refs 2026-07-23 21:06:47 -07:00
test_trajectory_compressor.py fix(compaction): skip compression when it can't reduce tokens 2026-07-23 16:21:03 -07:00
test_trajectory_compressor_async.py
…
test_transform_llm_output_hook.py
…
test_transform_tool_result_hook.py
…
test_tui_entry_mcp_owner.py
…
test_tui_gateway_loop_noise.py
…
test_tui_gateway_queue_on_busy.py
…
test_tui_gateway_server.py fix(gateway): deliver the first message when the deferred agent build outlives 30s (#63078) 2026-07-24 21:40:08 -07:00
test_tui_gateway_ws.py
…
test_tui_mcp_late_refresh.py
…
test_utils_truthy_values.py
…
test_wal_checkpoint_strategy.py
…
test_web_server.py
…
test_web_server_sessiondb_eventloop.py
…
test_windows_subprocess_no_window_flags.py fix(cron): respect the platform-conditional decode design in _run_job_script + taskkill kwarg snapshot 2026-07-24 11:45:57 -07:00
test_yaml_indent_consistency_31999.py
…
test_yuanbao_integration.py
…
test_yuanbao_markdown.py
…
test_yuanbao_pipeline.py
…
test_yuanbao_proto.py
…
test_yuanbao_reconnect_set_active.py
…
test_yuanbao_shutdown.py
…