Repository navigation
Conversation
|
The following comment was made by an LLM, it may be inaccurate: No duplicate PRs found. (The search only returned the current PR #33748 itself and one unrelated PR about LLM command-approval classifier. There are no other open PRs addressing the same MCP elicitation boolean approvals feature.) |
b54b292 to
69ceccf
Compare
69ceccf to
9e33259
Compare
|
This is great but does it require your full stack of changes from #23066? |
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Issue for this PR
Refs #23066
Refs #28567
Type of change
What does this PR do?
Adds the first MCP elicitation path for TUI sessions. The MCP client now handles
elicitation/createform requests for flat boolean schemas during tool calls, stores pending requests, emits asked/replied events, and exposes instance HTTP/SDK endpoints for the TUI.The TUI renders a human approval prompt with the requesting server name and distinct accept, decline, and cancel actions. Unsupported schemas, URL mode, auth probe clients, timeouts, and disconnect cleanup return
cancelso tool calls do not wait forever.This slice does not add URL mode, broader JSON Schema form types, web UI, desktop UI, or model-callable approval tools.
How did you verify your code works?
bun run typecheckcd packages/opencode && bun test --timeout 30000 test/mcp/elicitation.test.ts test/mcp/lifecycle.test.ts test/mcp/oauth-auto-connect.test.ts test/mcp/oauth-browser.test.ts test/server/httpapi-mcp-elicitation.test.ts test/server/httpapi-mcp-oauth.test.tscd packages/tui && bun test --timeout 30000 test/cli/cmd/tui/sync.test.tsxbun run --filter @opencode-ai/tui typecheckbun run --cwd packages/opencode buildelicitation-demo_request_approval, confirmed the TUI prompt rendered with the server name and checkbox label, accepted the prompt, and verified the MCP tool returned{"action":"accept","content":{"allowDemo":false}}.git diff --checkScreenshots / recordings
Live TUI prompt from the dev build:
Manual round trip after accepting the prompt:
Checklist