@@ -35,12 +35,13 @@ class FileSessionManager(RepositorySessionManager, SessionRepository):
3535
3636 """
3737
38- def __init__ (self , session_id : str , storage_dir : Optional [str ] = None ):
38+ def __init__ (self , session_id : str , storage_dir : Optional [str ] = None , ** kwargs : Any ):
3939 """Initialize FileSession with filesystem storage.
4040
4141 Args:
4242 session_id: ID for the session
4343 storage_dir: Directory for local filesystem storage (defaults to temp dir)
44+ **kwargs: Additional keyword arguments for future extensibility.
4445 """
4546 self .storage_dir = storage_dir or os .path .join (tempfile .gettempdir (), "strands/sessions" )
4647 os .makedirs (self .storage_dir , exist_ok = True )
@@ -83,7 +84,7 @@ def _write_file(self, path: str, data: dict[str, Any]) -> None:
8384 with open (path , "w" , encoding = "utf-8" ) as f :
8485 json .dump (data , f , indent = 2 , ensure_ascii = False )
8586
86- def create_session (self , session : Session ) -> Session :
87+ def create_session (self , session : Session , ** kwargs : Any ) -> Session :
8788 """Create a new session."""
8889 session_dir = self ._get_session_path (session .session_id )
8990 if os .path .exists (session_dir ):
@@ -100,7 +101,7 @@ def create_session(self, session: Session) -> Session:
100101
101102 return session
102103
103- def read_session (self , session_id : str ) -> Optional [Session ]:
104+ def read_session (self , session_id : str , ** kwargs : Any ) -> Optional [Session ]:
104105 """Read session data."""
105106 session_file = os .path .join (self ._get_session_path (session_id ), "session.json" )
106107 if not os .path .exists (session_file ):
@@ -109,7 +110,15 @@ def read_session(self, session_id: str) -> Optional[Session]:
109110 session_data = self ._read_file (session_file )
110111 return Session .from_dict (session_data )
111112
112- def create_agent (self , session_id : str , session_agent : SessionAgent ) -> None :
113+ def delete_session (self , session_id : str , ** kwargs : Any ) -> None :
114+ """Delete session and all associated data."""
115+ session_dir = self ._get_session_path (session_id )
116+ if not os .path .exists (session_dir ):
117+ raise SessionException (f"Session { session_id } does not exist" )
118+
119+ shutil .rmtree (session_dir )
120+
121+ def create_agent (self , session_id : str , session_agent : SessionAgent , ** kwargs : Any ) -> None :
113122 """Create a new agent in the session."""
114123 agent_id = session_agent .agent_id
115124
@@ -121,15 +130,7 @@ def create_agent(self, session_id: str, session_agent: SessionAgent) -> None:
121130 session_data = session_agent .to_dict ()
122131 self ._write_file (agent_file , session_data )
123132
124- def delete_session (self , session_id : str ) -> None :
125- """Delete session and all associated data."""
126- session_dir = self ._get_session_path (session_id )
127- if not os .path .exists (session_dir ):
128- raise SessionException (f"Session { session_id } does not exist" )
129-
130- shutil .rmtree (session_dir )
131-
132- def read_agent (self , session_id : str , agent_id : str ) -> Optional [SessionAgent ]:
133+ def read_agent (self , session_id : str , agent_id : str , ** kwargs : Any ) -> Optional [SessionAgent ]:
133134 """Read agent data."""
134135 agent_file = os .path .join (self ._get_agent_path (session_id , agent_id ), "agent.json" )
135136 if not os .path .exists (agent_file ):
@@ -138,7 +139,7 @@ def read_agent(self, session_id: str, agent_id: str) -> Optional[SessionAgent]:
138139 agent_data = self ._read_file (agent_file )
139140 return SessionAgent .from_dict (agent_data )
140141
141- def update_agent (self , session_id : str , session_agent : SessionAgent ) -> None :
142+ def update_agent (self , session_id : str , session_agent : SessionAgent , ** kwargs : Any ) -> None :
142143 """Update agent data."""
143144 agent_id = session_agent .agent_id
144145 previous_agent = self .read_agent (session_id = session_id , agent_id = agent_id )
@@ -149,7 +150,7 @@ def update_agent(self, session_id: str, session_agent: SessionAgent) -> None:
149150 agent_file = os .path .join (self ._get_agent_path (session_id , agent_id ), "agent.json" )
150151 self ._write_file (agent_file , session_agent .to_dict ())
151152
152- def create_message (self , session_id : str , agent_id : str , session_message : SessionMessage ) -> None :
153+ def create_message (self , session_id : str , agent_id : str , session_message : SessionMessage , ** kwargs : Any ) -> None :
153154 """Create a new message for the agent."""
154155 message_file = self ._get_message_path (
155156 session_id ,
@@ -159,15 +160,15 @@ def create_message(self, session_id: str, agent_id: str, session_message: Sessio
159160 session_dict = session_message .to_dict ()
160161 self ._write_file (message_file , session_dict )
161162
162- def read_message (self , session_id : str , agent_id : str , message_id : int ) -> Optional [SessionMessage ]:
163+ def read_message (self , session_id : str , agent_id : str , message_id : int , ** kwargs : Any ) -> Optional [SessionMessage ]:
163164 """Read message data."""
164165 message_path = self ._get_message_path (session_id , agent_id , message_id )
165166 if not os .path .exists (message_path ):
166167 return None
167168 message_data = self ._read_file (message_path )
168169 return SessionMessage .from_dict (message_data )
169170
170- def update_message (self , session_id : str , agent_id : str , session_message : SessionMessage ) -> None :
171+ def update_message (self , session_id : str , agent_id : str , session_message : SessionMessage , ** kwargs : Any ) -> None :
171172 """Update message data."""
172173 message_id = session_message .message_id
173174 previous_message = self .read_message (session_id = session_id , agent_id = agent_id , message_id = message_id )
@@ -180,7 +181,7 @@ def update_message(self, session_id: str, agent_id: str, session_message: Sessio
180181 self ._write_file (message_file , session_message .to_dict ())
181182
182183 def list_messages (
183- self , session_id : str , agent_id : str , limit : Optional [int ] = None , offset : int = 0
184+ self , session_id : str , agent_id : str , limit : Optional [int ] = None , offset : int = 0 , ** kwargs : Any
184185 ) -> list [SessionMessage ]:
185186 """List messages for an agent with pagination."""
186187 messages_dir = os .path .join (self ._get_agent_path (session_id , agent_id ), "messages" )
0 commit comments