models.py 673 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import annotations
  2. from dataclasses import dataclass
  3. from typing import TypeAlias
  4. from pydantic import BaseModel
  5. JsonScalar: TypeAlias = str | int | float | bool | None
  6. JsonValue: TypeAlias = JsonScalar | dict[str, "JsonValue"] | list["JsonValue"]
  7. JsonObject: TypeAlias = dict[str, JsonValue]
  8. @dataclass(slots=True)
  9. class Notification:
  10. method: str
  11. payload: JsonObject
  12. @dataclass(slots=True)
  13. class IncomingRequest:
  14. id: str | int
  15. method: str
  16. payload: JsonObject
  17. class ServerInfo(BaseModel):
  18. name: str | None = None
  19. version: str | None = None
  20. class InitializeResponse(BaseModel):
  21. serverInfo: ServerInfo | None = None