fix(acp): advertise model as SessionConfigOptionSelect on ACP 0.11+ - #81067
fix(acp): advertise model as SessionConfigOptionSelect on ACP 0.11+#81067Christopher-Schulze wants to merge 3 commits into
Conversation
1c6933f to
3a71599
Compare
3a71599 to
bd3e583
Compare
|
Rebased this existing PR onto the current main, retained the current MCP 2.x pins, kept the ACP >=0.11 migration, and regenerated uv.lock. Focused ACP verification: 36 tests passed; uv lock check passed. |
aee11f9 to
1b1117c
Compare
|
Fixed the CI metadata failure by aligning |
|
Rebased onto current
|
|
Rebased |
f2fbbc7 to
1bde66f
Compare
|
Rebased onto current For context on the two red checks from the previous head: neither is caused by this branch.
All ACP tests ( |
Keep the lazy ACP installer pin synchronized with the 0.12.0 version resolved by uv.lock so metadata validation and updates cannot downgrade the shared package.
813b6b5 to
a447eaf
Compare
What does this PR do?
Updates the Hermes ACP server to the
agent-client-protocol >= 0.11session-config-option surface. The model selector is now advertised as aSessionConfigOptionSelectinNewSessionResponse.configOptions/LoadSessionResponse.configOptions, and model changes are handled throughsession/set_config_optioninstead of the removedsession/set_modelmethod.Related Issue
Fixes #80575
Type of Change
Changes Made
acp_adapter/server.py:ModelInfo/SessionModelState/SetSessionModelResponsewithSessionConfigOptionSelect/SessionConfigSelectOptionandSetSessionConfigOptionSelectRequestsemantics._build_model_state()now returns aSessionConfigOptionSelect(id="model",type="select", grouped by provider description).new_session()/load_session()populateconfig_optionswith the model selector.set_config_option()handles the"model"config ID by resolving and applying the chosen provider/model.state.modelandstate.agent.provider.pyproject.toml: relaxedagent-client-protocol==0.9.0to>=0.11.0,<1in theacpextra (upper bound required by project dependency policy).tools/lazy_deps.py: updated thetool.acplazy pin from==0.9.0to==0.11.0so it matches the locked version.uv.lock: regenerated for the new ACP version.How to Test
uv sync --extra all --extra devuv run python -m pytest tests/acp/test_server.py tests/acp/test_named_provider_catalogs.py -qscripts/check.sh --project hermes-agent --worktree worktrees/hermes-agent/80575Checklist
Code