Add GitHub Copilot CLI ACP provider#8113
Conversation
|
Thanks for this — the implementation is clean and follows the existing One thing worth noting for the longer term: we already have a declarative provider system (see The goal would be an
With that, adding a new ACP provider would be a JSON file rather than a new Rust source file and a new Not asking you to do this now — it is a non-trivial refactor and this PR is a fine incremental step. Just flagging it as the direction we would want to head so future ACP providers do not keep adding to the per-provider boilerplate. |
|
@DOsinga Do you think that it is worth opening a PR to keep this in mind for the future? |
|
I don't know, I think we should close this and do the custom provider thing for acp /cc @codefromthecrypt ? |
|
agree declarative would be a good move forward and was the original intent (once we find all the various flags and mappings). It might be stable enough to do that now. @vincenzopalazzo do you mind pasting into the desc actual output of the providers test |
|
ps I audited copilot manually and it seems to be fairly capable at a glance anyway. Not perfect but up there with cursor where ACP is a part of the standard binary and basic functionality works. |
|
fwiw definitely need to look at that providers.rs test and actually running it, while the below is vibed, the agent isn't thrilled ;) Just breeze through these if anything is legit Here's what needs to change in the PR based on my runtime testing: Critical bugs
Likely issues
Nits
|
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
65b9876 to
47a077f
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 47a077f889
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Don't run tests with ACP_CURRENT_MODEL, as gemini sets "auto-gemini-3" even when the user | ||
| // has no access to the Preview Release Channel, resulting in "Requested entity was not found." | ||
| // See https://github.com/google-gemini/gemini-cli/issues/22803 | ||
| ProviderTestConfig::with_agentic_provider("gemini-acp", "auto-gemini-2.5", "gemini") |
There was a problem hiding this comment.
Use a registered provider ID in gemini ACP test
This test will fail on machines that actually have the gemini binary installed, because the skip gate passes and create_with_named_model("gemini-acp", ...) is executed, but the registry setup in crates/goose/src/providers/init.rs does not register a gemini-acp provider (only GeminiCliProvider, i.e. gemini-cli). That makes the new test deterministically error with Unknown provider: gemini-acp in environments where it runs instead of being skipped.
Useful? React with 👍 / 👎.
|
@codefromthecrypt this is the output of the command, but IDK if this is what you are looking for |
|
@vincenzopalazzo yeah basically we need to know if the provider succeeds for someone. I'll take a look at reproducing this. |
|
added this to replace it. thanks for the help, but we should really only raise PRs we have access to test #8154 |
Summary
copilot-acpprovider that wires GitHub Copilot CLI's native--acpmode intoAcpProviderCOPILOT_CLI_COMMAND, and cover it in the agentic provider test matrixCloses #8104
Test plan
source bin/activate-hermit && cargo fmtsource bin/activate-hermit && cargo test -p goose --test providers test_copilot_acp_provider -- --nocapturesource bin/activate-hermit && cargo clippy --all-targets -- -D warningssource bin/activate-hermit && cargo run -p goose-cli --bin goose -- run --no-session --provider copilot-acp --model current -t "Say hello in one short sentence."goose runprobe withGOOSE_MODE=approveandGOOSE_MODE=chatto verify Copilot ACP accepts those session modesReview notes
copilot -pprompt wrapperauto,approve, andchat, and failures occur later as Copilot quota errors rather than ACP wiring errors