Upgrades hermes-paperclip-adapter from 0.1.1 to ^0.2.0 and wires in all new
capabilities introduced in v0.2.0:
Server
- Upgrade hermes-paperclip-adapter 0.1.1 -> ^0.2.0 (pending PR#10 merge)
- Wire listSkills + syncSkills from hermes-paperclip-adapter/server
- Add detectModel to hermesLocalAdapter (reads ~/.hermes/config.yaml)
- Add detectAdapterModel() function + /adapters/:type/detect-model route
- Export detectAdapterModel from server/src/adapters/index.ts
Types
- Add optional detectModel? to ServerAdapterModule in adapter-utils
UI
- Add hermes-paperclip-adapter ^0.2.0 to ui/package.json (for /ui exports)
- New ui/src/adapters/hermes-local/ — config fields + UI adapter module
- Register hermesLocalUIAdapter in UI adapter registry
- New HermesIcon (caduceus SVG) for adapter pickers
- AgentConfigForm: detect-model button, creatable model input, preserve
adapter-agnostic fields (env, promptTemplate) when switching adapter type
- NewAgentDialog + OnboardingWizard: add Hermes to adapter picker
- Agents, OrgChart, InviteLanding, NewAgent, agent-config-primitives: add
hermes_local label + enable in adapter sets
- AgentDetail: smarter run summary excerpt extraction
- RunTranscriptView: improved Hermes stdout rendering
NOTE: requires hermes-paperclip-adapter@0.2.0 on npm.
Blocked on NousResearch/hermes-paperclip-adapter#10 merging.
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import type { UIAdapterModule } from "./types";
|
|
import { claudeLocalUIAdapter } from "./claude-local";
|
|
import { codexLocalUIAdapter } from "./codex-local";
|
|
import { cursorLocalUIAdapter } from "./cursor";
|
|
import { geminiLocalUIAdapter } from "./gemini-local";
|
|
import { hermesLocalUIAdapter } from "./hermes-local";
|
|
import { openCodeLocalUIAdapter } from "./opencode-local";
|
|
import { piLocalUIAdapter } from "./pi-local";
|
|
import { openClawGatewayUIAdapter } from "./openclaw-gateway";
|
|
import { processUIAdapter } from "./process";
|
|
import { httpUIAdapter } from "./http";
|
|
|
|
const uiAdapters: UIAdapterModule[] = [
|
|
claudeLocalUIAdapter,
|
|
codexLocalUIAdapter,
|
|
geminiLocalUIAdapter,
|
|
hermesLocalUIAdapter,
|
|
openCodeLocalUIAdapter,
|
|
piLocalUIAdapter,
|
|
cursorLocalUIAdapter,
|
|
openClawGatewayUIAdapter,
|
|
processUIAdapter,
|
|
httpUIAdapter,
|
|
];
|
|
|
|
const adaptersByType = new Map<string, UIAdapterModule>(
|
|
uiAdapters.map((a) => [a.type, a]),
|
|
);
|
|
|
|
export function getUIAdapter(type: string): UIAdapterModule {
|
|
return adaptersByType.get(type) ?? processUIAdapter;
|
|
}
|
|
|
|
export function listUIAdapters(): UIAdapterModule[] {
|
|
return [...uiAdapters];
|
|
}
|