mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-15 18:30:39 +09:00
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.
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import type { AdapterConfigFieldsProps } from "../types";
|
|
import {
|
|
Field,
|
|
DraftInput,
|
|
} from "../../components/agent-config-primitives";
|
|
import { ChoosePathButton } from "../../components/PathInstructionsModal";
|
|
|
|
const inputClass =
|
|
"w-full rounded-md border border-border px-2.5 py-1.5 bg-transparent outline-none text-sm font-mono placeholder:text-muted-foreground/40";
|
|
const instructionsFileHint =
|
|
"Absolute path to a markdown file (e.g. AGENTS.md) that defines this agent's behavior. Injected into the system prompt at runtime.";
|
|
|
|
export function HermesLocalConfigFields({
|
|
isCreate,
|
|
values,
|
|
set,
|
|
config,
|
|
eff,
|
|
mark,
|
|
hideInstructionsFile,
|
|
}: AdapterConfigFieldsProps) {
|
|
if (hideInstructionsFile) return null;
|
|
return (
|
|
<Field label="Agent instructions file" hint={instructionsFileHint}>
|
|
<div className="flex items-center gap-2">
|
|
<DraftInput
|
|
value={
|
|
isCreate
|
|
? values!.instructionsFilePath ?? ""
|
|
: eff(
|
|
"adapterConfig",
|
|
"instructionsFilePath",
|
|
String(config.instructionsFilePath ?? ""),
|
|
)
|
|
}
|
|
onCommit={(v) =>
|
|
isCreate
|
|
? set!({ instructionsFilePath: v })
|
|
: mark("adapterConfig", "instructionsFilePath", v || undefined)
|
|
}
|
|
immediate
|
|
className={inputClass}
|
|
placeholder="/absolute/path/to/AGENTS.md"
|
|
/>
|
|
<ChoosePathButton />
|
|
</div>
|
|
</Field>
|
|
);
|
|
}
|