hermes-agent/tests/agent
ethernet 48a7e137b1 Merge origin/main into ethie/oh-god (pluginify refactor reconciliation)
Reconciles the "pluginify everything" refactor (moving provider adapters,
platform adapters, and terminal backends out of core into plugins/) with
267 commits of main. main had 515 edits across 635 files; our branch moved
98 files into plugins/. The dangerous class was main editing files at OLD
paths that we relocated — handled below.

STRUCTURAL DECISIONS
- ai-gateway + vercel_sandbox: honored main's PR #33067 deletion. Dropped our
  orphaned plugins/terminals/vercel/ dir and all 3 stale vercel refs that
  survived in pyproject (workspace member, [all] entry, uv source).
- tools/lazy_deps.py: kept main's version. Our branch deleted it incompletely
  (WIP) while main has 30 live callers + active maintenance. main's intent won.
- agent/agent_runtime_helpers.py: COMBINED — main's atomic swap+rollback
  snapshot envelope wraps our pluginified registries-based anthropic imports.
- agent/credential_pool.py: took our plugin-hook indirection AND ported main's
  api_key_path_explicit OAuth-masquerade security fix INTO the anthropic
  credential_pool_hook (it was pluginified from a pre-fix base and would have
  been silently dropped otherwise).
- hermes_cli/model_switch.py, hermes_cli/models.py: took main's logic
  (cached_provider_model_ids, AI-gateway removal) then re-applied our pluginify
  import rewrites (agent.bedrock_adapter/anthropic_adapter -> registries
  namespace lookups) since those modules moved to plugins.
- tools/terminal_tool.py: took main's version (vercel_sandbox deletion) then
  restored our lazy registry resolution for modal + daytona environments
  (both moved to plugins; main's direct imports would crash at runtime).
- nix/checks.nix: kept both — our hermetic-boundary checks + main's
  messaging-variant discord.py guard.
- pyproject.toml: plugin extras as workspace members (ours) + main's new wecom
  extra; vercel removed throughout.
- uv.lock: regenerated with `uv lock` (not hand-merged); 233 packages.

VERIFICATION
- Zero conflict markers anywhere.
- Exhaustive 17-moved-module grep: no dead imports of relocated modules in core.
- Import smoke test: all hot core modules import clean.
- Targeted tests (21 files incl. credential_pool, anthropic plugin,
  run_agent, project_metadata): pass.
- 3 credential_pool security tests rewired to register the real plugin hook
  (core tests don't trigger plugin discovery): pass.
- Full suite: remaining failures are pre-existing on premerge-oh-god (telegram
  collection error: setUpModule MagicMock __code__) or environmental (matrix
  DNS/e2ee-deps, network) — NOT introduced by this merge. See PR notes.
2026-05-28 17:57:55 -04:00
..
lsp
transports Merge origin/main into ethie/oh-god (pluginify refactor reconciliation) 2026-05-28 17:57:55 -04:00
__init__.py
conftest.py wipppppppppppppppppppppppppppppppp 2026-05-28 16:44:02 -04:00
test_arcee_trinity_overrides.py
test_async_utils.py
test_auxiliary_client.py Merge origin/main into ethie/oh-god (pluginify refactor reconciliation) 2026-05-28 17:57:55 -04:00
test_auxiliary_config_bridge.py feat(plugins): add register_auxiliary_task() to PluginContext API 2026-05-23 17:49:47 -07:00
test_auxiliary_main_first.py
test_auxiliary_named_custom_providers.py wipppppppppppppppppppppppppppppppp 2026-05-28 16:44:02 -04:00
test_auxiliary_transport_autodetect.py wipppppppppppppppppppppppppppppppp 2026-05-28 16:44:02 -04:00
test_codex_cloudflare_headers.py
test_codex_responses_adapter.py fix(codex): drop transient rs_tmp reasoning replay state 2026-05-27 02:25:59 -07:00
test_codex_ttfb_watchdog.py feat(agent): buffer retry/fallback status, surface only on terminal failure (#33816) 2026-05-28 04:53:27 -07:00
test_compress_focus.py
test_compressor_historical_media.py
test_compressor_image_tokens.py
test_context_compressor.py
test_context_compressor_summary_continuity.py test: cover ci-unblocker production regressions 2026-05-27 22:14:53 -07:00
test_context_engine.py
test_context_engine_host_contract.py feat(context-engine): host contract for external context engines 2026-05-28 01:45:30 -07:00
test_context_references.py
test_copilot_acp_client.py
test_copilot_acp_deprecation.py
test_credential_pool.py Merge origin/main into ethie/oh-god (pluginify refactor reconciliation) 2026-05-28 17:57:55 -04:00
test_credential_pool_routing.py
test_crossloop_client_cache.py
test_curator.py fix: preserve skill packages during curator consolidation 2026-05-27 13:39:58 -07:00
test_curator_activity.py
test_curator_backup.py
test_curator_classification.py
test_curator_reports.py
test_custom_provider_extra_body.py
test_direct_provider_url_detection.py
test_display.py
test_display_emoji.py
test_display_todo_progress.py feat(cli): show todo progress as done/total fraction 2026-05-23 21:03:51 -07:00
test_display_tool_failure.py test(display): cover failure-suffix rendering + update scrollback test 2026-05-23 21:03:51 -07:00
test_error_classifier.py fix(agent): fallback immediately on provider content-policy blocks (#33883) 2026-05-28 07:28:24 -07:00
test_external_skills.py
test_external_skills_dirs_cache.py
test_file_safety.py fix(security): block read_file on project-local .env files 2026-05-25 03:40:47 -07:00
test_file_safety_credentials.py fix(security): block read_file on project-local .env files 2026-05-25 03:40:47 -07:00
test_file_safety_cross_profile.py fix(profiles): cross-profile soft guard on file-write tools + system-prompt hint (#31290) 2026-05-24 00:38:17 -07:00
test_gemini_cloudcode.py
test_gemini_fast_fallback.py
test_gemini_free_tier_gate.py
test_gemini_native_adapter.py
test_gemini_schema.py
test_i18n.py
test_image_gen_registry.py
test_image_routing.py
test_insights.py
test_jiter_preload.py fix(agent): preload jiter native parser 2026-05-28 00:20:11 -07:00
test_last_total_tokens.py
test_local_stream_timeout.py
test_markdown_tables.py
test_memory_provider.py feat: expose completed-turn message context to memory providers 2026-05-29 02:16:43 +05:30
test_memory_session_switch.py
test_memory_user_id.py
test_minimax_auxiliary_url.py
test_model_metadata.py Merge origin/main into ethie/oh-god (pluginify refactor reconciliation) 2026-05-28 17:57:55 -04:00
test_model_metadata_local_ctx.py
test_model_metadata_ssl.py
test_models_dev.py remove Vercel AI Gateway and Vercel Sandbox (#33067) 2026-05-27 00:43:32 -07:00
test_moonshot_schema.py
test_non_stream_stale_timeout.py fix(codex): size and propagate timeouts for Responses-API requests; lower stale defaults 2026-05-25 01:47:55 -07:00
test_nous_oauth_401_guidance.py feat(errors): actionable guidance for Nous OAuth 401s (#32082) 2026-05-25 06:06:51 -07:00
test_nous_rate_guard.py
test_onboarding.py
test_openrouter_response_cache.py
test_plugin_llm.py
test_portal_tags.py
test_prompt_builder.py remove Vercel AI Gateway and Vercel Sandbox (#33067) 2026-05-27 00:43:32 -07:00
test_prompt_caching.py
test_proxy_and_url_validation.py
test_rate_limit_tracker.py
test_redact.py fix(redact): pass web URLs through unchanged (#34029) 2026-05-28 11:32:39 -07:00
test_save_url_image.py fix(image_gen): cache xAI ephemeral URL responses to disk (#26942) (#31759) 2026-05-24 18:10:47 -07:00
test_shell_hooks.py
test_shell_hooks_consent.py
test_skill_bundles.py
test_skill_commands.py
test_skill_commands_reload.py
test_skill_utils.py
test_streaming_context_scrubber.py
test_subagent_progress.py
test_subagent_stop_hook.py
test_subdirectory_hints.py fix(subdirectory_hints): prevent loading AGENTS.md outside workspace 2026-05-25 23:17:33 -07:00
test_system_prompt_restore.py
test_think_scrubber.py
test_title_generator.py
test_tool_dispatch_helpers.py feat(security): promptware defense — shared threat patterns + memory load-time scan + tool-result delimiters (#32269) 2026-05-25 14:52:24 -07:00
test_tool_guardrails.py
test_tool_result_classification.py
test_transcription_registry.py wipppppppppppppppppppppppppppppppp 2026-05-28 16:44:02 -04:00
test_tts_registry.py wipppppppppppppppppppppppppppppppp 2026-05-28 16:44:02 -04:00
test_unsupported_parameter_retry.py
test_unsupported_temperature_retry.py
test_usage_pricing.py remove Vercel AI Gateway and Vercel Sandbox (#33067) 2026-05-27 00:43:32 -07:00
test_video_gen_registry.py
test_vision_resolved_args.py
test_vision_routing_31179.py fix(vision): route auxiliary.vision.provider=openai to api.openai.com, skip text-only main (#31452) 2026-05-24 15:01:28 -07:00