You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Task API on RemoteAgent, over the A2A 1.0 methods: submit() (SendMessage with returnImmediately: returns as soon as the task exists), get_task() (GetTask), subscribe() (SubscribeToTask, an EventStream with the same events, caps and policy
as stream()) and list_tasks() (ListTasks, filtered by context and state,
paginated) returning the new TaskPage. Every call goes through the budget, timeout,
part policy, trace redaction and error translation of send()/stream(). These
report a task as it is, so Result.status gains submitted, working, failed, canceled and rejected for them; send()/reply() are unchanged.
RemoteAgent.reply(task_id, text, *, context_id=None): the task's context can be
passed explicitly (a task from another RemoteAgent, a restart, a store); without it
the remembered one is used, as before.
astromesh_a2a.adapters exports tool_description and PENDING_NOTE (also still in adapters._common), to build your own tool with the same safety text.
Server: create_app serves returnImmediately (the handler keeps running in the
server, still bounded by handler_timeout), GetTask, ListTasks and SubscribeToTask, scoped per caller identity like GetTask/CancelTask (tested:
another caller cannot get, list or subscribe to a task).
Ids the client sends (task_id, context_id, page_token) are checked before any
request: a str of at most 256 characters, no control characters, else ValueError
(send()/stream()/submit() still accept context_id="" as "none").
Changed
tool_description() (the default adapter tool description) also tells the model never
to answer a confirmation or approval on the user's behalf, like the Astromesh core's.
Compatibility
send() and reply() return the same statuses as in 0.1.0 (completed, input_required, auth_required) and raise as before. The new Result.status values
(submitted, working, failed, canceled, rejected) only come from the task API
(submit(), get_task(), list_tasks()).