项目文件夹

文件
Claude 7f6481d2af a2a: conform to external A2A clients — well-known path + spec SSE events
The A2A gateway interoperated go-micro-to-go-micro but a real external
client (ADK, LangGraph, a2a-SDK) would not:

- Discovery: served the Agent Card at /.well-known/agent.json, but A2A
  0.3.0 discovers it at /.well-known/agent-card.json. Serve both, with
  agent-card.json canonical and agent.json a legacy alias — per-agent,
  per-skill, and at the single-agent top level.

- message/stream emitted repeated full Task snapshots. External SSE
  clients parse by `kind` and stop on `final:true`; a Task snapshot has
  neither, so they never terminate. Emit spec-shaped TaskArtifactUpdate
  (append) chunks and close with a TaskStatusUpdate final:true. The
  non-streaming and resubscribe paths also close with a terminal marker.

- A streaming error set both `result` and `error` in one JSON-RPC
  response (strict clients reject it). Emit a failed status-update
  instead — never result and error together.

Tests assert the canonical card path, the status-update/artifact-update
event shapes ending in final:true, and that no response carries both
result and error.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CmdEY7pYmV5zzwCjNJ4ykL
2026-07-12 11:40:50 +00:00
..