feat: Zed ACP Registry integration (salvage of #25908) - #26079
Merged
Conversation
The ACP Registry manifest (acp_registry/agent.json), the npm launcher package.json, and the launcher's HERMES_AGENT_VERSION constant must all match pyproject.toml exactly — tests/acp/test_registry_manifest.py enforces this lockstep. Without a release-script hook, the next weekly version bump fails that test until someone hand-edits four files. Extend update_version_files() to drive the ACP bump alongside __init__.py and pyproject.toml, and add tests covering the lockstep and the missing-files no-op path. Also map adam.manning@gmail.com -> am423 for the salvage commit.
Contributor
🔎 Lint report:
|
| Rule | Count |
|---|---|
invalid-argument-type |
3 |
unresolved-import |
1 |
First entries
run_agent.py:13750: [invalid-argument-type] invalid-argument-type: Argument to function `_is_oauth_token` is incorrect: Expected `str`, found `str | dict[Unknown | str, Unknown | str | dict[str, str]] | Any | ... omitted 3 union elements`
run_agent.py:7482: [invalid-argument-type] invalid-argument-type: Argument to function `build_anthropic_client` is incorrect: Expected `str`, found `str | dict[Unknown | str, Unknown | str | dict[str, str]] | Any | ... omitted 3 union elements`
acp_adapter/auth.py:40: [unresolved-import] unresolved-import: Cannot resolve imported module `acp.schema`
run_agent.py:13753: [invalid-argument-type] invalid-argument-type: Argument to function `len` is incorrect: Expected `Sized`, found `(str & ~AlwaysFalsy) | (dict[Unknown | str, Unknown | str | dict[str, str]] & ~AlwaysFalsy) | (Any & ~AlwaysFalsy) | ... omitted 3 union elements`
✅ Fixed issues (3):
| Rule | Count |
|---|---|
invalid-argument-type |
3 |
First entries
run_agent.py:13750: [invalid-argument-type] invalid-argument-type: Argument to function `_is_oauth_token` is incorrect: Expected `str`, found `str | dict[Unknown, Unknown] | Any | ... omitted 3 union elements`
run_agent.py:7482: [invalid-argument-type] invalid-argument-type: Argument to function `build_anthropic_client` is incorrect: Expected `str`, found `str | dict[Unknown, Unknown] | Any | ... omitted 3 union elements`
run_agent.py:13753: [invalid-argument-type] invalid-argument-type: Argument to function `len` is incorrect: Expected `Sized`, found `(str & ~AlwaysFalsy) | (dict[Unknown, Unknown] & ~AlwaysFalsy) | (Any & ~AlwaysFalsy) | ... omitted 3 union elements`
Unchanged: 4405 pre-existing issues carried over.
Diagnostics are surfaced as warnings — this check never fails the build.
6 tasks
1 task
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.
Salvage of #25908 by @am423 — preserves contributor authorship via cherry-pick.
Summary
Hermes is installable from Zed's official ACP Registry without hand-edited
agent_serversJSON. Adds registry-compatible manifest, terminal-setup auth method,hermes acp --version/--check/--setup, an npm launcher package that shells touvx --from 'hermes-agent[acp]==<version>' hermes-acp, and locks all three ACP-asset versions topyproject.tomlthrough the release script.Changes
build_auth_methods()always advertises terminal setup, npm launcher package + Node tests, ACP--version/--check/--setupCLI plumbing, docs.scripts/release.pynow bumpsacp_registry/agent.json,packages/hermes-agent-acp/package.json, and the launcher'sHERMES_AGENT_VERSIONconstant in lockstep withpyproject.toml. Without this hook the next weekly release would failtest_agent_json_version_matches_pyprojectuntil someone hand-edits four files. Addedtests/scripts/test_release_acp_registry.pycovering the lockstep + the missing-files no-op path.adam.manning@gmail.com → am423.Validation
schema_version: 1shape)agentclientprotocol/registry/agent.schema.jsonauthMethodsKnown follow-up (not gating this PR)
@nousresearch/hermes-agent-acp@0.13.0to npm before submitting the upstreamagentclientprotocol/registryPR. The npm package does not exist yet, so registry validation requiresSKIP_URL_VALIDATION=1until then. We'll also need to confirm the@nousresearchnpm org is claimed.Closes #25908.