@@ -35,12 +35,13 @@ class FileSessionManager(RepositorySessionManager, SessionRepository):
35
35
36
36
"""
37
37
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 ):
39
39
"""Initialize FileSession with filesystem storage.
40
40
41
41
Args:
42
42
session_id: ID for the session
43
43
storage_dir: Directory for local filesystem storage (defaults to temp dir)
44
+ **kwargs: Additional keyword arguments for future extensibility.
44
45
"""
45
46
self .storage_dir = storage_dir or os .path .join (tempfile .gettempdir (), "strands/sessions" )
46
47
os .makedirs (self .storage_dir , exist_ok = True )
@@ -83,7 +84,7 @@ def _write_file(self, path: str, data: dict[str, Any]) -> None:
83
84
with open (path , "w" , encoding = "utf-8" ) as f :
84
85
json .dump (data , f , indent = 2 , ensure_ascii = False )
85
86
86
- def create_session (self , session : Session ) -> Session :
87
+ def create_session (self , session : Session , ** kwargs : Any ) -> Session :
87
88
"""Create a new session."""
88
89
session_dir = self ._get_session_path (session .session_id )
89
90
if os .path .exists (session_dir ):
@@ -100,7 +101,7 @@ def create_session(self, session: Session) -> Session:
100
101
101
102
return session
102
103
103
- def read_session (self , session_id : str ) -> Optional [Session ]:
104
+ def read_session (self , session_id : str , ** kwargs : Any ) -> Optional [Session ]:
104
105
"""Read session data."""
105
106
session_file = os .path .join (self ._get_session_path (session_id ), "session.json" )
106
107
if not os .path .exists (session_file ):
@@ -109,7 +110,15 @@ def read_session(self, session_id: str) -> Optional[Session]:
109
110
session_data = self ._read_file (session_file )
110
111
return Session .from_dict (session_data )
111
112
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 :
113
122
"""Create a new agent in the session."""
114
123
agent_id = session_agent .agent_id
115
124
@@ -121,15 +130,7 @@ def create_agent(self, session_id: str, session_agent: SessionAgent) -> None:
121
130
session_data = session_agent .to_dict ()
122
131
self ._write_file (agent_file , session_data )
123
132
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 ]:
133
134
"""Read agent data."""
134
135
agent_file = os .path .join (self ._get_agent_path (session_id , agent_id ), "agent.json" )
135
136
if not os .path .exists (agent_file ):
@@ -138,7 +139,7 @@ def read_agent(self, session_id: str, agent_id: str) -> Optional[SessionAgent]:
138
139
agent_data = self ._read_file (agent_file )
139
140
return SessionAgent .from_dict (agent_data )
140
141
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 :
142
143
"""Update agent data."""
143
144
agent_id = session_agent .agent_id
144
145
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:
149
150
agent_file = os .path .join (self ._get_agent_path (session_id , agent_id ), "agent.json" )
150
151
self ._write_file (agent_file , session_agent .to_dict ())
151
152
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 :
153
154
"""Create a new message for the agent."""
154
155
message_file = self ._get_message_path (
155
156
session_id ,
@@ -159,15 +160,15 @@ def create_message(self, session_id: str, agent_id: str, session_message: Sessio
159
160
session_dict = session_message .to_dict ()
160
161
self ._write_file (message_file , session_dict )
161
162
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 ]:
163
164
"""Read message data."""
164
165
message_path = self ._get_message_path (session_id , agent_id , message_id )
165
166
if not os .path .exists (message_path ):
166
167
return None
167
168
message_data = self ._read_file (message_path )
168
169
return SessionMessage .from_dict (message_data )
169
170
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 :
171
172
"""Update message data."""
172
173
message_id = session_message .message_id
173
174
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
180
181
self ._write_file (message_file , session_message .to_dict ())
181
182
182
183
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
184
185
) -> list [SessionMessage ]:
185
186
"""List messages for an agent with pagination."""
186
187
messages_dir = os .path .join (self ._get_agent_path (session_id , agent_id ), "messages" )
0 commit comments