dbbd8935e9
Model-provider discovery was filesystem-only (bundled dir, $HERMES_HOME, legacy providers/*.py). The general PluginManager scans the hermes_agent.plugins entry-point group but deliberately does NOT import kind=model-provider manifests (providers/ owns their lifecycle), so a pip-installed provider was recorded yet never called register_provider() — it never appeared in the picker, contradicting the 'Distribute via pip' docs. Add a _discover_entry_point_providers() step that scans the hermes_agent.plugins group and imports each entry, supporting both a module:func callable target and a bare self-registering module target. - Runs BEFORE filesystem plugins (lowest precedence): last-writer-wins means bundled/$HERMES_HOME profiles always override a pip provider of the same name, so a third-party package cannot hijack a first-party provider id. - Per-entry failures are isolated (logged + skipped), so one broken package can't break discovery. - Docs updated to describe the real mechanism; tests cover callable + module targets, failure isolation, and first-party precedence.