API Reference#

All public symbols are importable from cpex.framework:

from cpex.framework import Plugin, hook, PluginManager, PluginConfig, ...

Core#

SymbolDescription
PluginBase class for all plugins
hookDecorator to bind a method to one or more hook types
PluginManagerOrchestrates plugin lifecycle and hook execution
get_plugin_managerGet or initialize the singleton plugin manager

Configuration#

SymbolDescription
PluginConfigPlugin configuration model (frozen)
PluginModeExecution mode enum: SEQUENTIAL, TRANSFORM, AUDIT, CONCURRENT, FIRE_AND_FORGET, DISABLED
OnErrorError handling enum: FAIL, IGNORE, DISABLE
PluginConditionConditions for when a plugin should execute
ConfigLoaderLoads plugin configuration from YAML files
PluginLoaderDiscovers and instantiates plugin classes

Context#

SymbolDescription
GlobalContextShared context across all plugins (request ID, user, tenant, server, state, metadata)
PluginContextPer-plugin context that persists across hooks within a request lifecycle
PluginContextTableType alias: dict[str, PluginContext]

Results & Errors#

SymbolDescription
PluginPayloadBase class for all hook payloads (frozen)
PluginResultGeneric result from plugin hook processing
PluginViolationPolicy violation with reason, description, code, and details
PluginErrorException for errors internal to a plugin
PluginViolationErrorException wrapping a PluginViolation
PluginErrorModelPydantic model for plugin error details

Tool Hooks#

SymbolDescription
ToolHookTypeEnum: TOOL_PRE_INVOKE, TOOL_POST_INVOKE
ToolPreInvokePayloadPayload for tool_pre_invoke (name, args)
ToolPreInvokeResultResult type for tool_pre_invoke
ToolPostInvokePayloadPayload for tool_post_invoke (name, result)
ToolPostInvokeResultResult type for tool_post_invoke

Prompt Hooks#

SymbolDescription
PromptHookTypeEnum: PROMPT_PRE_FETCH, PROMPT_POST_FETCH
PromptPrehookPayloadPayload for prompt_pre_fetch (prompt_id, args)
PromptPrehookResultResult type for prompt_pre_fetch
PromptPosthookPayloadPayload for prompt_post_fetch (prompt_id, result)
PromptPosthookResultResult type for prompt_post_fetch

Resource Hooks#

SymbolDescription
ResourceHookTypeEnum: RESOURCE_PRE_FETCH, RESOURCE_POST_FETCH
ResourcePreFetchPayloadPayload for resource_pre_fetch (uri, metadata)
ResourcePreFetchResultResult type for resource_pre_fetch
ResourcePostFetchPayloadPayload for resource_post_fetch (uri, content)
ResourcePostFetchResultResult type for resource_post_fetch

Agent Hooks#

SymbolDescription
AgentHookTypeEnum: AGENT_PRE_INVOKE, AGENT_POST_INVOKE
AgentPreInvokePayloadPayload for agent_pre_invoke (agent_id, messages, tools, model, system_prompt, parameters)
AgentPreInvokeResultResult type for agent_pre_invoke
AgentPostInvokePayloadPayload for agent_post_invoke (agent_id, messages, tool_calls)
AgentPostInvokeResultResult type for agent_post_invoke

HTTP Hooks#

SymbolDescription
HttpHookTypeEnum: HTTP_PRE_REQUEST, HTTP_POST_REQUEST, HTTP_AUTH_RESOLVE_USER, HTTP_AUTH_CHECK_PERMISSION
HttpPreRequestPayloadPayload for http_pre_request (path, method, client_host, client_port, headers)
HttpPreRequestResultResult type for http_pre_request
HttpPostRequestPayloadPayload for http_post_request (extends pre-request with response_headers, status_code)
HttpPostRequestResultResult type for http_post_request
HttpAuthResolveUserPayloadPayload for http_auth_resolve_user (credentials, headers)
HttpAuthResolveUserResultResult type for http_auth_resolve_user
HttpAuthCheckPermissionPayloadPayload for http_auth_check_permission (user_email, permission, resource_type, …)
HttpAuthCheckPermissionResultResult type for http_auth_check_permission
HttpAuthCheckPermissionResultPayloadResult payload with granted/reason fields
HttpHeaderPayloadHTTP headers dict wrapper

Hook Registry#

SymbolDescription
HookRegistrySingleton registry mapping hook types to payload/result classes
get_hook_registryGet the global HookRegistry instance
HookPayloadPolicyDefines which payload fields plugins may modify

External Plugins#

SymbolDescription
ExternalPluginServerMCP-compatible server for hosting external plugins
MCPClientConfigClient-side MCP transport configuration
MCPServerConfigServer-side MCP configuration
TransportTypeEnum: SSE, HTTP, STDIO, STREAMABLEHTTP, GRPC

Observability#

SymbolDescription
ObservabilityProviderProtocol for injecting tracing into the plugin pipeline

Utilities#

SymbolDescription
get_attrSafe nested attribute access utility