feat: add Hermes Agent adapter (hermes_local)
Adds support for Hermes Agent (https://github.com/NousResearch/hermes-agent) as a managed employee in Paperclip companies. Hermes Agent is a full-featured AI agent by Nous Research with 30+ native tools, persistent memory, session persistence, 80+ skills, MCP support, and multi-provider model access. Changes: - Add 'hermes_local' to AGENT_ADAPTER_TYPES (packages/shared) - Add @nousresearch/paperclip-adapter-hermes dependency (server) - Register hermesLocalAdapter in the adapter registry (server) The adapter package is maintained at: https://github.com/NousResearch/hermes-paperclip-adapter
This commit is contained in:
@@ -30,6 +30,7 @@ export const AGENT_ADAPTER_TYPES = [
|
|||||||
"pi_local",
|
"pi_local",
|
||||||
"cursor",
|
"cursor",
|
||||||
"openclaw_gateway",
|
"openclaw_gateway",
|
||||||
|
"hermes_local",
|
||||||
] as const;
|
] as const;
|
||||||
export type AgentAdapterType = (typeof AGENT_ADAPTER_TYPES)[number];
|
export type AgentAdapterType = (typeof AGENT_ADAPTER_TYPES)[number];
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
"@paperclipai/adapter-opencode-local": "workspace:*",
|
"@paperclipai/adapter-opencode-local": "workspace:*",
|
||||||
"@paperclipai/adapter-pi-local": "workspace:*",
|
"@paperclipai/adapter-pi-local": "workspace:*",
|
||||||
"@paperclipai/adapter-openclaw-gateway": "workspace:*",
|
"@paperclipai/adapter-openclaw-gateway": "workspace:*",
|
||||||
|
"@nousresearch/paperclip-adapter-hermes": "github:NousResearch/hermes-paperclip-adapter",
|
||||||
"@paperclipai/adapter-utils": "workspace:*",
|
"@paperclipai/adapter-utils": "workspace:*",
|
||||||
"@paperclipai/db": "workspace:*",
|
"@paperclipai/db": "workspace:*",
|
||||||
"@paperclipai/shared": "workspace:*",
|
"@paperclipai/shared": "workspace:*",
|
||||||
|
|||||||
@@ -45,6 +45,14 @@ import {
|
|||||||
import {
|
import {
|
||||||
agentConfigurationDoc as piAgentConfigurationDoc,
|
agentConfigurationDoc as piAgentConfigurationDoc,
|
||||||
} from "@paperclipai/adapter-pi-local";
|
} from "@paperclipai/adapter-pi-local";
|
||||||
|
import {
|
||||||
|
execute as hermesExecute,
|
||||||
|
testEnvironment as hermesTestEnvironment,
|
||||||
|
} from "@nousresearch/paperclip-adapter-hermes/server";
|
||||||
|
import {
|
||||||
|
agentConfigurationDoc as hermesAgentConfigurationDoc,
|
||||||
|
models as hermesModels,
|
||||||
|
} from "@nousresearch/paperclip-adapter-hermes";
|
||||||
import { processAdapter } from "./process/index.js";
|
import { processAdapter } from "./process/index.js";
|
||||||
import { httpAdapter } from "./http/index.js";
|
import { httpAdapter } from "./http/index.js";
|
||||||
|
|
||||||
@@ -111,6 +119,15 @@ const piLocalAdapter: ServerAdapterModule = {
|
|||||||
agentConfigurationDoc: piAgentConfigurationDoc,
|
agentConfigurationDoc: piAgentConfigurationDoc,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const hermesLocalAdapter: ServerAdapterModule = {
|
||||||
|
type: "hermes_local",
|
||||||
|
execute: hermesExecute,
|
||||||
|
testEnvironment: hermesTestEnvironment,
|
||||||
|
models: hermesModels,
|
||||||
|
supportsLocalAgentJwt: false,
|
||||||
|
agentConfigurationDoc: hermesAgentConfigurationDoc,
|
||||||
|
};
|
||||||
|
|
||||||
const adaptersByType = new Map<string, ServerAdapterModule>(
|
const adaptersByType = new Map<string, ServerAdapterModule>(
|
||||||
[
|
[
|
||||||
claudeLocalAdapter,
|
claudeLocalAdapter,
|
||||||
@@ -119,6 +136,7 @@ const adaptersByType = new Map<string, ServerAdapterModule>(
|
|||||||
piLocalAdapter,
|
piLocalAdapter,
|
||||||
cursorLocalAdapter,
|
cursorLocalAdapter,
|
||||||
openclawGatewayAdapter,
|
openclawGatewayAdapter,
|
||||||
|
hermesLocalAdapter,
|
||||||
processAdapter,
|
processAdapter,
|
||||||
httpAdapter,
|
httpAdapter,
|
||||||
].map((a) => [a.type, a]),
|
].map((a) => [a.type, a]),
|
||||||
|
|||||||
Reference in New Issue
Block a user