mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-11-06 05:17:15 +00:00
The public list `hermes plugins validate` checks plugin imports against was a hardcoded frozenset inside hermes_cli/plugin_validate_private_imports.py, with no page that showed it to plugin authors. Move the list, unchanged (89 entries), into hermes_cli/data/plugin_api.json (already shipped as package data via `data/*.json`) and load it once in the validator. scripts/gen_plugin_api_docs.py renders website/docs/developer-guide/plugins/public-api.md from the same file, and a test fails when the page is stale. Validate output is unchanged for the same inputs.
132 lines
4.9 KiB
JSON
132 lines
4.9 KiB
JSON
{
|
|
"_comment": [
|
|
"The modules and names a plugin may import from Hermes core. `hermes plugins validate` warns on any other",
|
|
"Hermes import (hermes_cli/plugin_validate_private_imports.py), and scripts/gen_plugin_api_docs.py renders",
|
|
"website/docs/developer-guide/plugins/public-api.md from this file.",
|
|
"A `module` entry allows the module and its non-underscore names; `module:Name` allows that one name.",
|
|
"Harvested from the Hermes-module imports in the developer-guide and plugin docs, what PluginContext hands",
|
|
"out, and the names those pages tell authors to call, raise, return or subclass. Re-harvest when they change."
|
|
],
|
|
"groups": [
|
|
{
|
|
"source": "developer-guide / plugins docs",
|
|
"entries": [
|
|
"agent.account_usage",
|
|
"agent.acp_client",
|
|
"agent.browser_provider",
|
|
"agent.context_engine",
|
|
"agent.credential_pool",
|
|
"agent.delegation_backends",
|
|
"agent.delegation_provider",
|
|
"hermes_cli.auth_model_picker:prompt_model_selection",
|
|
"hermes_cli.auth:resolve_external_process_provider_credentials",
|
|
"hermes_cli.model_setup",
|
|
"agent.image_gen_provider",
|
|
"agent.memory_manager",
|
|
"agent.memory_provider",
|
|
"agent.secret_scope",
|
|
"agent.secret_sources.base",
|
|
"agent.subagent_lifecycle",
|
|
"agent.terminal_env_provider",
|
|
"agent.transports",
|
|
"agent.transports.chat_completions",
|
|
"agent.video_gen_provider",
|
|
"agent.web_search_provider",
|
|
"cli",
|
|
"gateway.config",
|
|
"gateway.platform_registry",
|
|
"gateway.platforms._shared",
|
|
"gateway.platforms.base",
|
|
"gateway.platforms.event",
|
|
"gateway.platforms.helpers",
|
|
"gateway.status",
|
|
"hermes_cli.auth_oauth_pkce_plugin",
|
|
"hermes_cli.config",
|
|
"hermes_cli.plugin_events",
|
|
"hermes_cli.plugin_provider_requests",
|
|
"hermes_constants",
|
|
"hermes_platform",
|
|
"hermes_state",
|
|
"plugins.plugin_storage",
|
|
"plugins.plugin_utils",
|
|
"pm",
|
|
"providers",
|
|
"providers.base",
|
|
"tools.browser_supervisor",
|
|
"tools.browser_supervisor_capture",
|
|
"tools.computer_use.backend",
|
|
"tools.registry"
|
|
]
|
|
},
|
|
{
|
|
"source": "PluginContext (hermes_cli/plugins.py)",
|
|
"entries": [
|
|
"agent.context_references",
|
|
"agent.plugin_llm",
|
|
"agent.transcription_provider",
|
|
"agent.tts_provider",
|
|
"cron.execution_identity",
|
|
"hermes_cli.dashboard_auth",
|
|
"hermes_cli.platform_actions",
|
|
"hermes_cli.plugins:PluginContext",
|
|
"hermes_cli.plugins_ledger:PluginRegistration",
|
|
"hermes_cli.plugins_state:PluginState"
|
|
]
|
|
},
|
|
{
|
|
"source": "prose in memory-provider / model-provider / terminal-environment plugin pages (tools.environments:BaseEnvironment is the package's `__all__` re-export)",
|
|
"entries": [
|
|
"agent.runtime_cwd:resolve_agent_cwd",
|
|
"agent.usage_pricing:CostResult",
|
|
"hermes_cli.auth_constants:AuthError",
|
|
"tools.environments.base:BaseEnvironment",
|
|
"tools.environments:BaseEnvironment",
|
|
"utils:atomic_json_write",
|
|
"utils:read_json_or_empty"
|
|
]
|
|
},
|
|
{
|
|
"source": "adding-platform-adapters.md § Public helpers for platform plugins",
|
|
"entries": [
|
|
"gateway.platforms.access_policy_mixin:OwnAccessPolicyMixin",
|
|
"tools.approval:resolve_gateway_approval",
|
|
"tools.approval:resolve_gateway_approval_card",
|
|
"tools.clarify_gateway:get_pending",
|
|
"tools.clarify_gateway:resolve_gateway_clarify",
|
|
"tools.clarify_gateway:mark_awaiting_text",
|
|
"tools.clarify_gateway:SKIPPED",
|
|
"tools.url_safety:is_safe_url",
|
|
"tools.url_safety:create_ssrf_safe_async_client",
|
|
"gateway.platforms._http_client_limits:platform_httpx_limits",
|
|
"hermes_cli.gateway_setup_wizard:print_setup_header",
|
|
"hermes_cli.gateway_setup_wizard:confirm_reconfigure",
|
|
"hermes_cli.gateway_setup_wizard:offer_home_channel",
|
|
"hermes_cli.gateway_setup_wizard:save_env_values",
|
|
"hermes_cli.gateway_setup_wizard:prompt_csv",
|
|
"hermes_cli.setup:prompt",
|
|
"hermes_cli.setup:prompt_choice",
|
|
"hermes_cli.setup:prompt_yes_no",
|
|
"hermes_cli.cli_output"
|
|
]
|
|
},
|
|
{
|
|
"source": "plugins/index.md § Read the skill catalog",
|
|
"entries": [
|
|
"tools.skills_tool:find_all_skills",
|
|
"tools.skills_tool:sort_skills",
|
|
"tools.skills_tool:skill_search_dirs",
|
|
"tools.skills_tool:locate_skill",
|
|
"tools.skills_tool:skill_lookup_path_error",
|
|
"tools.skills_sync:dir_hash",
|
|
"tools.skill_usage:read_skill_name"
|
|
]
|
|
},
|
|
{
|
|
"source": "plugins/index.md § platform plugins: read session identity through the task-local context",
|
|
"entries": [
|
|
"gateway.session_context:get_session_env"
|
|
]
|
|
}
|
|
]
|
|
}
|