Commit: 20fee56
Date: October 20, 2025 at 8:13 AM
Executor invokes an ADK agent and translates session.Events to a2a.Events according to the following rules:
- If the input doesn't reference any `Task`, produce a `TaskStatusUpdateEvent` with `TaskStateSubmitted`.
- Right before `runner.Runner` invocation, produce `TaskStatusUpdateEvent` with `TaskStateWorking`.
- For every `session.Event` produce a `TaskArtifactUpdateEvent{Append=true}` with transformed parts.
- After the last `session.Event` is processed produce an empty `TaskArtifactUpdateEvent{Append=true}` with `LastChunk=true`, if at least one artifact update was produced during the run.
- If there was an `LLMResponse` with non-zero error code, produce a `TaskStatusUpdateEvent` with `TaskStateFailed`.
Else if there was an `LLMResponse` with long-running tool invocation, produce a `TaskStatusUpdateEvent` with `TaskStateInputRequired`.
Else produce a `TaskStatusUpdateEvent` with `TaskStateCompleted`.
There's no `TaskAuthRequiredState` production rules at the moment, because A2A assumes an Agent is still executing while waiting for auth credentials. A proper integration will require more research and planning.
Powered by ChangeCrab