mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-14 03:30:19 +00:00
47b6f3503a
* ✨ feat(hermes): implement hermes agent chain logic Replace the broken HTTP gateway approach with direct CLI spawn (matching openclaw's architecture). Hermes chat -q --quiet outputs session_id + response to stdout — we capture it and relay via sendAutoNotify/sendDoneSignal, no buildNotifyProtocol injection needed. - heteroTask (CLI): spawn hermes chat -q --quiet [--resume <id>], capture stdout, persist session_id to ~/.lobehub/hermes-sessions.json per topicId, kill concurrent same-topic tasks by PID before spawning - GatewayConnectionCtr (desktop): mirror CLI logic, store hermes session IDs in-memory hermesSessionMap, remove unused HTTP gateway helpers - getAgentProfile: implement hermes profile fetch via `hermes profile list` + SOUL.md description parsing - checkPlatformCapability: fix hermes check to use `hermes --version` instead of non-existent HTTP /health endpoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * 🐛 fix(hermes): fix CodeQL incomplete sanitization and tilde path expansion - readHermesSoulDescription: loop comment-stripping regex until stable to prevent residual `<!--` from malformed/nested sequences (CodeQL High) - getHermesProfilePath: expand leading `~` via os.homedir() before fs.join in case hermes profile show returns a tilde-prefixed path (CLI + desktop) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * 🐛 fix(hermes): strip residual angle brackets to satisfy CodeQL sanitization check After stripping HTML comments, add .replaceAll(/[<>]/g, '') inside the loop to ensure no partial `<!--` delimiters survive, resolving the CodeQL 'Incomplete multi-character sanitization' High warning. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ✨ feat(platform-agent): enable Hermes + add Amp/OpenCode as coming-soon platforms - Enable Hermes in CreatePlatformAgent (remove from COMING_SOON_PLATFORMS) - Add Amp and OpenCode to REMOTE_HETEROGENEOUS_AGENT_CONFIGS (coming-soon disabled) - Extend RemoteHeterogeneousAgentType and HeterogeneousProviderConfig.type - Use isRemoteHeterogeneousType() in HeterogeneousAgentStatusCard to future-proof remote agent detection guard (removes hardcoded openclaw/hermes check) - Export isRemoteHeterogeneousType from heterogeneous-agents/client entrypoint - Broaden agentType to string in device-gateway-client (AgentRunRequestMessage, dispatchAgentRun) so new remote types pass without package updates - Add i18n keys for amp/opencode platform descriptions (en-US, zh-CN) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * 🐛 fix(test): add isRemoteHeterogeneousType to heterogeneous-agents/client mock --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>