20 lines
549 B
Python
20 lines
549 B
Python
from __future__ import annotations
|
|
|
|
|
|
class HarnessError(Exception):
|
|
"""Base exception for SDK and runtime failures."""
|
|
|
|
|
|
class TransportClosedError(HarnessError):
|
|
"""Raised when the runtime subprocess exits or closes stdout."""
|
|
|
|
|
|
class JsonRpcError(HarnessError):
|
|
"""Raised when the runtime returns a JSON-RPC error response."""
|
|
|
|
def __init__(self, code: int | None, message: str, data: object | None = None) -> None:
|
|
super().__init__(message)
|
|
self.code = code
|
|
self.message = message
|
|
self.data = data
|