session_store.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from typing import Any, Protocol
  2. from agent_lab.domain.messages import ChatMessage, TokenUsage
  3. class SessionStore(Protocol):
  4. def create_session(
  5. self,
  6. *,
  7. title: str,
  8. config: dict[str, Any],
  9. session_id: str | None = None,
  10. ) -> str:
  11. ...
  12. def ensure_session(
  13. self,
  14. session_id: str | None,
  15. *,
  16. title: str,
  17. config: dict[str, Any],
  18. ) -> str:
  19. ...
  20. def list_sessions(self) -> list[dict[str, Any]]:
  21. ...
  22. def get_session(self, session_id: str) -> dict[str, Any] | None:
  23. ...
  24. def next_turn_index(self, session_id: str) -> int:
  25. ...
  26. def start_turn(
  27. self,
  28. session_id: str,
  29. *,
  30. turn_index: int,
  31. user_message: str,
  32. ) -> None:
  33. ...
  34. def complete_turn(self, session_id: str, *, turn_index: int) -> None:
  35. ...
  36. def append_message(
  37. self,
  38. session_id: str,
  39. *,
  40. turn_index: int,
  41. message: ChatMessage,
  42. ) -> None:
  43. ...
  44. def append_messages(
  45. self,
  46. session_id: str,
  47. *,
  48. turn_index: int,
  49. messages: list[ChatMessage],
  50. ) -> None:
  51. ...
  52. def append_audit(
  53. self,
  54. session_id: str,
  55. *,
  56. event: str,
  57. details: dict[str, Any],
  58. turn_index: int | None = None,
  59. round_index: int | None = None,
  60. ) -> None:
  61. ...
  62. def append_usage(
  63. self,
  64. session_id: str,
  65. *,
  66. turn_index: int,
  67. round_index: int,
  68. usage: TokenUsage,
  69. ttft_ms: int | None,
  70. elapsed_ms: int,
  71. ) -> None:
  72. ...
  73. def list_messages(self, session_id: str) -> list[dict[str, Any]]:
  74. ...
  75. def list_audit_logs(self, session_id: str) -> list[dict[str, Any]]:
  76. ...
  77. def usage_summary(self, session_id: str) -> dict[str, Any]:
  78. ...