ccproxy.core.plugins.loader¶
ccproxy.core.plugins.loader
¶
Centralized plugin loader.
Provides a single entry to discover factories, build a PluginRegistry, and
prepare MiddlewareManager based on settings. This isolates loader usage to
one place and reinforces import boundaries (core should not import concrete
plugin modules directly).
load_plugin_system
¶
Discover plugins and build a registry + middleware manager.
This function is the single entry point to set up the plugin layer for the application factory. It avoids scattering discovery/registry logic.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
Settings
|
Application settings (with plugin config) |
required |
Returns:
| Type | Description |
|---|---|
tuple[PluginRegistry, MiddlewareManager]
|
Tuple of (PluginRegistry, MiddlewareManager) |
Source code in ccproxy/core/plugins/loader.py
load_cli_plugins
¶
Load filtered plugins for CLI operations.
This function creates a lightweight plugin registry for CLI commands that: - Includes only CLI-safe plugins (marked with cli_safe = True) - Optionally includes a specific auth provider plugin if requested - Excludes heavy provider plugins that cause DuckDB locks, task manager errors, etc.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
Any
|
Application settings |
required |
auth_provider
|
str | None
|
Name of auth provider to include (e.g., "codex", "claude-api") |
None
|
allow_plugins
|
list[str] | None
|
Additional plugins to explicitly allow (beyond cli_safe ones) |
None
|
Returns:
| Type | Description |
|---|---|
PluginRegistry
|
Filtered PluginRegistry containing only CLI-appropriate plugins |