@@ -41,7 +41,9 @@ def __init__(self) -> None:
4141 self ._tasks : dict [str , StoredTask ] = {}
4242 self ._cleanup_tasks : dict [str , asyncio .Task [None ]] = {}
4343
44- async def create_task (self , task : TaskMetadata , request_id : RequestId , request : Request [Any , Any ]) -> None :
44+ async def create_task (
45+ self , task : TaskMetadata , request_id : RequestId , request : Request [Any , Any ], session_id : str | None = None
46+ ) -> None :
4547 """Create a new task with the given metadata and original request."""
4648 task_id = task .taskId
4749
@@ -61,7 +63,7 @@ async def create_task(self, task: TaskMetadata, request_id: RequestId, request:
6163 if task .keepAlive is not None :
6264 self ._schedule_cleanup (task_id , task .keepAlive / 1000.0 )
6365
64- async def get_task (self , task_id : str ) -> Task | None :
66+ async def get_task (self , task_id : str , session_id : str | None = None ) -> Task | None :
6567 """Get the current status of a task."""
6668 stored = self ._tasks .get (task_id )
6769 if stored is None :
@@ -70,7 +72,7 @@ async def get_task(self, task_id: str) -> Task | None:
7072 # Return a copy to prevent external modification
7173 return Task (** stored .task .model_dump ())
7274
73- async def store_task_result (self , task_id : str , result : Result ) -> None :
75+ async def store_task_result (self , task_id : str , result : Result , session_id : str | None = None ) -> None :
7476 """Store the result of a completed task."""
7577 stored = self ._tasks .get (task_id )
7678 if stored is None :
@@ -84,7 +86,7 @@ async def store_task_result(self, task_id: str, result: Result) -> None:
8486 self ._cancel_cleanup (task_id )
8587 self ._schedule_cleanup (task_id , stored .task .keepAlive / 1000.0 )
8688
87- async def get_task_result (self , task_id : str ) -> Result :
89+ async def get_task_result (self , task_id : str , session_id : str | None = None ) -> Result :
8890 """Retrieve the stored result of a task."""
8991 stored = self ._tasks .get (task_id )
9092 if stored is None :
@@ -95,7 +97,9 @@ async def get_task_result(self, task_id: str) -> Result:
9597
9698 return stored .result
9799
98- async def update_task_status (self , task_id : str , status : TaskStatus , error : str | None = None ) -> None :
100+ async def update_task_status (
101+ self , task_id : str , status : TaskStatus , error : str | None = None , session_id : str | None = None
102+ ) -> None :
99103 """Update a task's status."""
100104 stored = self ._tasks .get (task_id )
101105 if stored is None :
@@ -110,7 +114,7 @@ async def update_task_status(self, task_id: str, status: TaskStatus, error: str
110114 self ._cancel_cleanup (task_id )
111115 self ._schedule_cleanup (task_id , stored .task .keepAlive / 1000.0 )
112116
113- async def list_tasks (self , cursor : str | None = None ) -> dict [str , Any ]:
117+ async def list_tasks (self , cursor : str | None = None , session_id : str | None = None ) -> dict [str , Any ]:
114118 """
115119 List tasks, optionally starting from a pagination cursor.
116120
@@ -134,7 +138,7 @@ async def list_tasks(self, cursor: str | None = None) -> dict[str, Any]:
134138
135139 return {"tasks" : tasks , "nextCursor" : next_cursor }
136140
137- async def delete_task (self , task_id : str ) -> None :
141+ async def delete_task (self , task_id : str , session_id : str | None = None ) -> None :
138142 """Delete a task from storage."""
139143 if task_id not in self ._tasks :
140144 raise ValueError (f"Task with ID { task_id } not found" )
0 commit comments