Skip to content

feat: add Hermes agent provider integration#278

Open
UbiStaff wants to merge 1 commit into
DeadWaveWave:mainfrom
UbiStaff:feat/add-hermes-agent-provider
Open

feat: add Hermes agent provider integration#278
UbiStaff wants to merge 1 commit into
DeadWaveWave:mainfrom
UbiStaff:feat/add-hermes-agent-provider

Conversation

@UbiStaff

@UbiStaff UbiStaff commented Jun 3, 2026

Copy link
Copy Markdown

Change Scope

  • Trivial / Typo
  • Small (single feature, focused PR)
  • Large (architectural, cross-cutting changes)

What Does This PR Do?

Integrate Hermes CLI as a native agent provider, alongside the existing Claude Code, Codex, OpenCode, and Gemini CLI providers.

Users can configure their Hermes CLI executable path in Settings → Agent Providers and spawn Hermes agent nodes directly on the canvas.

Modifications

  • Settings panel: new hermes provider entry with configurable executable path
  • Agent nodes on canvas: create Hermes agent nodes that launch interactive terminal sessions
  • Command modes: hermes chat (interactive), hermes chat -q <prompt> (one-shot), hermes chat --resume <id> (session resume)
  • Session auto-discovery: read session inventory from ~/.hermes/sessions/sessions.json
  • Type system: extend AgentProviderId, AgentModelCatalogSource, and all related union types
  • IPC validation gates: update all provider normalization/validation paths
  • Frontend UI: layered diamond SVG icon, teal accent color, i18n labels (EN/ZH)
  • Tests: update 3 unit suites for provider order and defaults

Delivery Checklist

  • Code builds cleanly (pnpm typecheck + pnpm build)
  • Tests pass (pnpm test)
  • Formatting / lint passes (pnpm format:check + pnpm lint)
  • Agent spawn and terminal interaction verified manually
  • No regressions introduced to existing agent providers

Add Hermes CLI as a native agent provider alongside Claude Code, Codex,
OpenCode, and Gemini CLI on the opencove canvas.

- Settings panel: new Hermes provider option with configurable executable path
- Agent nodes: create Hermes agent nodes, launching interactive terminals
- Command modes: hermes chat / chat -q <prompt> / chat --resume <id>
- Session management: auto-discover/resume from ~/.hermes/sessions/sessions.json
- Type system: extend AgentProviderId, AgentModelCatalogSource, and all unions
- IPC validation: all provider validation gates updated
- Frontend: layered diamond SVG icon + teal accent color + EN/ZH labels
- Tests: updated 3 unit test suites for provider order and defaults
@DeadWaveWave

Copy link
Copy Markdown
Owner

Hermes provider 的基础注册和 UI 接入方向没问题,但 session/runtime 链路还没闭环。现在 listAgentSessions() 对 Hermes 直接返回空;state watcher 把 Hermes 标成 JSONL,但 SessionFileResolver 没有 Hermes 分支;last assistant message extractor 也没有 Hermes 分支;locator 还会忽略 cwd,可能绑定到其他 workspace 的最新 Hermes session。建议先补完整 Hermes session catalog / file resolver / detector / extractor,并加 fixture tests 后确定本地可正常使用并不上对应UI界面使用截图再合并。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants