errors.py 660 B

1234567891011121314151617181920212223
  1. from __future__ import annotations
  2. class HarnessError(Exception):
  3. """Base exception for SDK and runtime failures."""
  4. class TransportClosedError(HarnessError):
  5. """Raised when the runtime subprocess exits or closes stdout."""
  6. class SdkProtocolError(HarnessError):
  7. """Raised when the runtime sends data outside the SDK protocol."""
  8. class JsonRpcError(HarnessError):
  9. """Raised when the runtime returns a JSON-RPC error response."""
  10. def __init__(self, code: int | None, message: str, data: object | None = None) -> None:
  11. super().__init__(message)
  12. self.code = code
  13. self.message = message
  14. self.data = data