Skip to content

[anolisa] feat(adapter): add Hermes framework driver skeleton #1041

Description

@kongche-jbw

Component

anolisa

Problem Statement

ANOLISA currently has a built-in OpenClaw adapter driver, but no Hermes driver.
Some existing component adapters for Hermes do not follow an install <path>
model. They place or link a plugin directory under the Hermes home directory and
then call hermes plugins enable <plugin_id>. Some components also deliver
skills into the Hermes skills directory.

To make anolisa adapter enable <component> hermes a real managed lifecycle,
ANOLISA needs a Hermes framework driver skeleton with explicit resource claims
and safe enable/disable/status semantics.

Goal

Add a built-in Hermes adapter driver skeleton and manifest schema support for
Hermes-specific bundle and skill metadata.

Proposed Scope

Manifest schema

Add typed framework-specific fields under each [[adapters]] entry:

  • adapters.hermes.bundle
    • Hermes-native bundle metadata such as the plugin manifest entry file.
  • adapters.hermes.skills
    • Skill bundle metadata, initially a list of skill names or directories to
      copy from the adapter resource root.

The schema should stay declarative and should not carry executable behavior.

Hermes driver skeleton

Implement a built-in hermes driver with:

  • read-only detection for the hermes CLI and/or Hermes home directory;
  • Hermes home resolution through the driver, not through manifest-provided
    arbitrary paths;
  • plugin resource validation and bundle reading;
  • enable plan generation for --dry-run;
  • initial enable/disable/status command construction through AdapterManager
    operations;
  • receipt support with a Hermes-specific DriverPayload variant and validated
    ClaimResource entries.

The first implementation may keep some mutation paths conservative if the exact
Hermes CLI behavior is not available in CI, but the driver should establish the
trusted boundary and command semantics needed for follow-up E2E testing.

Out of Scope

  • OpenClaw skill/config support.
  • Cosh, Claude Code, Codex, Qoder CLI, or QwenCode drivers.
  • Generic framework command DSL.
  • Component-owned install/uninstall shell scripts.
  • Full real-machine Hermes E2E validation if the Hermes CLI is not available in
    CI.

Acceptance Criteria

  • DriverRegistry::builtin() registers hermes alongside openclaw.
  • ComponentManifest parses and serializes the new Hermes-specific schema.
  • adapter scan reports Hermes driver availability and detection state.
  • adapter enable <component> hermes --dry-run produces a clear plan.
  • Real enable/disable/status paths use AdapterManager-mediated operations and
    validated receipts.
  • Tests cover detection, bundle validation, receipt validation, dry-run, and
    unsupported/cleanup-failure cases.
  • All code, comments, and documentation are in English.

Related

refs #998
refs #866

Metadata

Metadata

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions