MCPcopy Index your code
hub / github.com/github/copilot-sdk / SessionMetadata

Class SessionMetadata

python/copilot/client.py:839–883  ·  view source on GitHub ↗

Metadata about a session

Source from the content-addressed store, hash-verified

837
838@dataclass
839class SessionMetadata:
840 """Metadata about a session"""
841
842 session_id: str # Session identifier
843 start_time: datetime # Timestamp when session was created
844 modified_time: datetime # Timestamp when session was last modified
845 is_remote: bool # Whether the session is remote
846 summary: str | None = None # Optional summary of the session
847 context: SessionContext | None = None # Working directory context
848
849 @staticmethod
850 def from_dict(obj: Any) -> SessionMetadata:
851 assert isinstance(obj, dict)
852 session_id = obj.get("sessionId")
853 start_time = obj.get("startTime")
854 modified_time = obj.get("modifiedTime")
855 is_remote = obj.get("isRemote")
856 if session_id is None or start_time is None or modified_time is None or is_remote is None:
857 raise ValueError(
858 f"Missing required fields in SessionMetadata: sessionId={session_id}, "
859 f"startTime={start_time}, modifiedTime={modified_time}, isRemote={is_remote}"
860 )
861 summary = obj.get("summary")
862 context_dict = obj.get("context")
863 context = SessionContext.from_dict(context_dict) if context_dict else None
864 return SessionMetadata(
865 session_id=str(session_id),
866 start_time=_parse_session_timestamp(start_time),
867 modified_time=_parse_session_timestamp(modified_time),
868 is_remote=bool(is_remote),
869 summary=summary,
870 context=context,
871 )
872
873 def to_dict(self) -> dict:
874 result: dict = {}
875 result["sessionId"] = self.session_id
876 result["startTime"] = self.start_time.isoformat()
877 result["modifiedTime"] = self.modified_time.isoformat()
878 result["isRemote"] = self.is_remote
879 if self.summary is not None:
880 result["summary"] = self.summary
881 if self.context is not None:
882 result["context"] = self.context.to_dict()
883 return result
884
885
886def _parse_session_timestamp(value: Any) -> datetime:

Callers 1

from_dictMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…