What's missing
The ACP adapter handles text prompt content only. initialize advertises promptCapabilities{image:false, audio:false, embeddedContext:false}, and session/prompt flattening keeps only type:"text" blocks (dropping the rest).
Validated (independent cross-check):
handleInitialize advertises image/audio/embeddedContext false (internal/adapter/acp/agent.go).
flattenPrompt keeps only b.Type == "text"; contentBlock models only Type+Text (agent.go, internal/adapter/acp/types.go).
Proposed approach
Accept image/audio (and embedded-resource) ContentBlocks in session/prompt and advertise the capability. Requires domain support for non-text prompt content — mecatl's prompt path is text-only end-to-end today, so this is larger than an adapter change, and low value unless the configured provider consumes images. Likely the lowest-priority of the remaining items.
Part of ACP Phase 3 long-tail (docs/adr/0001-acp-adapter.md).
What's missing
The ACP adapter handles text prompt content only.
initializeadvertisespromptCapabilities{image:false, audio:false, embeddedContext:false}, andsession/promptflattening keeps onlytype:"text"blocks (dropping the rest).Validated (independent cross-check):
handleInitializeadvertises image/audio/embeddedContext false (internal/adapter/acp/agent.go).flattenPromptkeeps onlyb.Type == "text";contentBlockmodels onlyType+Text(agent.go,internal/adapter/acp/types.go).Proposed approach
Accept image/audio (and embedded-resource) ContentBlocks in
session/promptand advertise the capability. Requires domain support for non-text prompt content — mecatl's prompt path is text-only end-to-end today, so this is larger than an adapter change, and low value unless the configured provider consumes images. Likely the lowest-priority of the remaining items.Part of ACP Phase 3 long-tail (
docs/adr/0001-acp-adapter.md).