Open
Conversation
Register amp-acp (https://github.com/tao12345666333/amp-acp) as a known ACP provider alongside Goose, Claude Code, and Codex. - Add Amp to KNOWN_ACP_PROVIDERS in the desktop discovery module - Add amp-acp to default_agent_args in both sprout-acp and desktop - Add 'Running with Amp' section to the sprout-acp README Amp-Thread-ID: https://ampcode.com/threads/T-019d4e6c-6235-76b4-aaf3-63baf10304d0 Co-authored-by: Amp <amp@ampcode.com>
Collaborator
@akuttig-block sorry for the delay here. I also hadn't set up amp yet, so this was a good excuse to. It seems like with amp installed, but no |
Replace exact-match agent_supports_mode() with resolve_mode_id() that tries the canonical ACP wire string first, then falls back to known aliases (e.g. amp-acp advertises "bypass" instead of "bypassPermissions"). Fully backwards compatible — existing agents that use the standard wire strings match on the first check and never hit the alias path. Amp-Thread-ID: https://ampcode.com/threads/T-019d4e6c-6235-76b4-aaf3-63baf10304d0 Co-authored-by: Amp <amp@ampcode.com>
AcpError::Protocol covers both real transport corruption and clean JSON-RPC error responses (e.g. -32601 'Method not found'). When an agent like amp-acp doesn't implement session/set_config_option, the error was treated as fatal, causing an infinite respawn loop. Move Protocol out of the fatal arm so it falls through to the warn-and-continue path. The harness falls back to per-tool auto-approval, which is the correct behavior. Amp-Thread-ID: https://ampcode.com/threads/T-019d4e6c-6235-76b4-aaf3-63baf10304d0 Co-authored-by: Amp <amp@ampcode.com>
amp-acp implements session/set_mode (with modeId param) instead of session/set_config_option (with configId 'mode'). The harness now tries set_config_option first (Claude-style), and if the agent returns a method-not-found error, falls back to set_mode (amp-acp style). This fixes the (blocked-on-user) issue where amp-acp agents never received the bypass mode and prompted for permissions. Amp-Thread-ID: https://ampcode.com/threads/T-019d4e6c-6235-76b4-aaf3-63baf10304d0 Co-authored-by: Amp <amp@ampcode.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Register amp-acp as a known ACP provider alongside Goose, Claude Code, and Codex, and fix permission mode handling to work across different ACP adapters.
Changes
Amp provider support
desktop/src-tauri/src/managed_agents/discovery.rs— AddAmptoKNOWN_ACP_PROVIDERSwith commandamp-acpand avatar URL; addamp-acptodefault_agent_args()crates/sprout-acp/src/config.rs— Addamp-acptodefault_agent_args()match arm; update doc commentcrates/sprout-acp/README.md— Add "Running with Amp" section with install and usage instructions; list amp-acp in supported agentsPermission mode compatibility
crates/sprout-acp/src/pool.rs— Replace exact-matchagent_supports_mode()withresolve_mode_id()that tries the canonical ACP wire string first (e.g.bypassPermissions), then falls back to known aliases (e.g. amp-acp advertisesbypassinstead). Fully backwards compatible — existing agents match on the first check.crates/sprout-acp/src/pool.rs— DemoteAcpError::Protocolfrom fatal to warn-and-continue inapply_permission_mode(). JSON-RPC error responses like-32601 Method not foundwere incorrectly treated as transport errors, causing an infinite respawn loop.crates/sprout-acp/src/acp.rs+pool.rs— Addsession/set_modeRPC method and fall back to it whensession/set_config_optionis unsupported. amp-acp implementssetSessionMode(newer ACP method) instead ofset_config_option(Claude-style), which was the root cause of agents getting stuck in(blocked-on-user)state.Install
Usage
The desktop app auto-discovers
amp-acpif it's on PATH.