5353 TaskNotFoundError ,
5454 UnsupportedOperationError ,
5555)
56- from a2a .utils .task import apply_history_length
56+ from a2a .utils .task import (
57+ apply_history_length ,
58+ validate_history_length ,
59+ validate_page_size ,
60+ )
5761from a2a .utils .telemetry import SpanKind , trace_class
5862
5963
@@ -123,6 +127,8 @@ async def on_get_task(
123127 context : ServerCallContext | None = None ,
124128 ) -> Task | None :
125129 """Default handler for 'tasks/get'."""
130+ validate_history_length (params )
131+
126132 task_id = params .id
127133 task : Task | None = await self .task_store .get (task_id , context )
128134 if not task :
@@ -136,6 +142,10 @@ async def on_list_tasks(
136142 context : ServerCallContext | None = None ,
137143 ) -> ListTasksResponse :
138144 """Default handler for 'tasks/list'."""
145+ validate_history_length (params )
146+ if params .HasField ('page_size' ):
147+ validate_page_size (params .page_size )
148+
139149 page = await self .task_store .list (params , context )
140150 for task in page .tasks :
141151 if not params .include_artifacts :
@@ -330,6 +340,8 @@ async def on_message_send(
330340 Starts the agent execution for the message and waits for the final
331341 result (Task or Message).
332342 """
343+ validate_history_length (params .configuration )
344+
333345 (
334346 _task_manager ,
335347 task_id ,
0 commit comments