ccproxy.services.interfaces¶
ccproxy.services.interfaces
¶
Service interfaces for explicit dependency injection.
This module defines protocol interfaces for core services that adapters need, enabling explicit dependency injection and removing the service locator pattern.
IRequestHandler
¶
Bases: Protocol
Protocol for request handling functionality.
Note: The dispatch_request method has been removed in favor of using plugin adapters' handle_request() method directly.
IRequestTracer
¶
Bases: Protocol
Request tracing interface.
trace_request
async
¶
Trace an outgoing request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request_id
|
str
|
Unique request identifier |
required |
method
|
str
|
HTTP method |
required |
url
|
str
|
Target URL |
required |
headers
|
dict[str, str]
|
Request headers |
required |
body
|
bytes | None
|
Request body if available |
None
|
Source code in ccproxy/services/interfaces.py
trace_response
async
¶
Trace an incoming response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request_id
|
str
|
Unique request identifier |
required |
status
|
int
|
HTTP status code |
required |
headers
|
dict[str, str]
|
Response headers |
required |
body
|
bytes | None
|
Response body if available |
None
|
Source code in ccproxy/services/interfaces.py
should_trace
¶
IMetricsCollector
¶
Bases: Protocol
Metrics collection interface.
track_request
¶
track_response
¶
track_error
¶
track_tokens
¶
Track token usage.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_tokens
|
int
|
Number of input tokens |
required |
output_tokens
|
int
|
Number of output tokens |
required |
provider
|
str | None
|
Optional provider identifier |
None
|
model
|
str | None
|
Optional model identifier |
None
|
Source code in ccproxy/services/interfaces.py
StreamingMetrics
¶
Bases: Protocol
Streaming response handler interface.
handle_stream
async
¶
Handle a streaming response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
response
|
Response
|
HTTP response object |
required |
request_context
|
RequestContext | None
|
Optional request context |
None
|
Yields:
| Type | Description |
|---|---|
AsyncIterator[bytes]
|
Response chunks |
Source code in ccproxy/services/interfaces.py
create_streaming_response
¶
Create a streaming response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
stream
|
AsyncIterator[bytes]
|
Async iterator of response chunks |
required |
headers
|
dict[str, str] | None
|
Optional response headers |
None
|
Returns:
| Type | Description |
|---|---|
Response
|
Streaming response object |
Source code in ccproxy/services/interfaces.py
handle_streaming_request
async
¶
handle_streaming_request(
method,
url,
headers,
body,
handler_config,
request_context,
client_config=None,
client=None,
)
Handle a streaming request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method
|
str
|
HTTP method |
required |
url
|
str
|
Target URL |
required |
headers
|
dict[str, str]
|
Request headers |
required |
body
|
bytes
|
Request body |
required |
handler_config
|
Any
|
Handler configuration |
required |
request_context
|
Any
|
Request context |
required |
client_config
|
dict[str, Any] | None
|
Optional client configuration |
None
|
client
|
AsyncClient | None
|
Optional HTTP client |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Deferred streaming response |
Source code in ccproxy/services/interfaces.py
NullRequestTracer
¶
NullMetricsCollector
¶
NullStreamingHandler
¶
Null implementation of streaming handler.
handle_stream
async
¶
Return empty stream.
Source code in ccproxy/services/interfaces.py
create_streaming_response
¶
Create empty response.
Source code in ccproxy/services/interfaces.py
handle_streaming_request
async
¶
handle_streaming_request(
method,
url,
headers,
body,
handler_config,
request_context,
client_config=None,
client=None,
)
Null implementation - returns a simple error response.