Skip to content

[FEATURE]: Enable question tool for ACP clients (Zed, etc.) #13752

@Leoyzen

Description

@Leoyzen

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Problem

When using OpenCode with ACP (Agent Client Protocol) compatible editors like Zed, the AI assistant cannot ask questions to the user. Questions get silently dropped, blocking interactive workflows.

Background

The question tool was previously disabled for ACP mode in PR #11379 due to issues with specific clients. However, this blanket disable causes a regression:

  • AI cannot ask clarifying questions ("Which test framework should I use?")
  • Users cannot make choices from predefined options
  • Flows requiring user input cannot complete

Current Behavior

AI: I'll create a test file for you. Which framework would you prefer?
[User sees nothing - question is silently ignored]
AI: [proceeds with random/default choice]

Expected Behavior

AI: I'll create a test file for you. Which framework would you prefer?
[Zed shows native permission dialog with options]
User selects "Vitest"
AI: [proceeds with Vitest test file]

Proposed Solution

Enable question support for ACP clients by mapping question events to the existing request_permission flow. This approach:

  1. Works immediately with existing ACP clients (no protocol changes)
  2. Uses native UI - clients display questions through their permission dialog UI
  3. Is future-proof - can migrate to ACP's upcoming Elicitation spec(RFD: Add Elicitation specification for structured user input agentclientprotocol/agent-client-protocol#376) later without breaking changes

Implementation

  1. Add "acp" to the QuestionTool client whitelist
  2. Implement question.asked event handler in ACP Agent
  3. Map question options to PermissionOption format
  4. Add "Cancel" option for dismissal

Scope

In scope:

  • Single-select questions (most common use case)
  • Mapping to native permission UI
  • Cancellation support

Out of scope (future work):

  • Text input questions
  • Multi-select questions
  • Custom form layouts

These limitations will be addressed when ACP's Elicitation specification (PR #376) is finalized.

Verification

Tests included in PR:

  • Question triggers permission request
  • Option mapping works correctly
  • Selection resolves to correct answer
  • Cancellation properly rejects

Related

Metadata

Metadata

Assignees

Labels

discussionUsed for feature requests, proposals, ideas, etc. Open discussion

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions