ccproxy.api.services¶
ccproxy.api.services
¶
Services for CCProxy API.
PermissionService
¶
Service for managing permission requests without UI dependencies.
Source code in ccproxy/api/services/permission_service.py
request_permission
async
¶
Create a new permission request.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tool_name
|
str
|
Name of the tool requesting permission |
required |
input
|
dict[str, str]
|
Input parameters for the tool |
required |
Returns:
Type | Description |
---|---|
str
|
Permission request ID |
Raises:
Type | Description |
---|---|
ValueError
|
If tool_name is empty or input is None |
Source code in ccproxy/api/services/permission_service.py
get_status
async
¶
Get the status of a permission request.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request_id
|
str
|
ID of the permission request |
required |
Returns:
Type | Description |
---|---|
PermissionStatus | None
|
Status of the request or None if not found |
Source code in ccproxy/api/services/permission_service.py
get_request
async
¶
Get a permission request by ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request_id
|
str
|
ID of the permission request |
required |
Returns:
Type | Description |
---|---|
PermissionRequest | None
|
The request or None if not found |
Source code in ccproxy/api/services/permission_service.py
resolve
async
¶
Manually resolve a permission request.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request_id
|
str
|
ID of the permission request |
required |
allowed
|
bool
|
Whether to allow or deny the request |
required |
Returns:
Type | Description |
---|---|
bool
|
True if resolved successfully, False if not found or already resolved |
Raises:
Type | Description |
---|---|
ValueError
|
If request_id is empty |
Source code in ccproxy/api/services/permission_service.py
subscribe_to_events
async
¶
unsubscribe_from_events
async
¶
get_pending_requests
async
¶
Get all pending permission requests.
Returns:
Type | Description |
---|---|
list[PermissionRequest]
|
List of pending requests |
Source code in ccproxy/api/services/permission_service.py
wait_for_permission
async
¶
Wait for a permission request to be resolved.
This method efficiently blocks until the permission is resolved (allowed/denied/expired) or the timeout is reached using an event-driven approach.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request_id
|
str
|
ID of the permission request to wait for |
required |
timeout_seconds
|
int | None
|
Optional timeout in seconds. If None, uses request expiration time |
None
|
Returns:
Type | Description |
---|---|
PermissionStatus
|
The final status of the permission request |
Raises:
Type | Description |
---|---|
TimeoutError
|
If timeout is reached before resolution |
PermissionNotFoundError
|
If request ID is not found |
Source code in ccproxy/api/services/permission_service.py
get_permission_service
¶
Get the global permission service instance.