mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-17 11:20:37 +09:00
Refactor monolithic heartbeat service, AgentConfigForm, and CLI heartbeat-run into a proper adapter registry pattern. Each adapter type (process, claude-local, codex-local, http) gets its own module with server-side execution logic, CLI invocation, and UI config form. Significantly reduces file sizes and enables adding new adapters without touching core code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
910 B
TypeScript
38 lines
910 B
TypeScript
import type { AdapterConfigFieldsProps } from "../types";
|
|
import {
|
|
Field,
|
|
DraftInput,
|
|
help,
|
|
} from "../../components/agent-config-primitives";
|
|
|
|
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";
|
|
|
|
export function HttpConfigFields({
|
|
isCreate,
|
|
values,
|
|
set,
|
|
config,
|
|
eff,
|
|
mark,
|
|
}: AdapterConfigFieldsProps) {
|
|
return (
|
|
<Field label="Webhook URL" hint={help.webhookUrl}>
|
|
<DraftInput
|
|
value={
|
|
isCreate
|
|
? values!.url
|
|
: eff("adapterConfig", "url", String(config.url ?? ""))
|
|
}
|
|
onCommit={(v) =>
|
|
isCreate
|
|
? set!({ url: v })
|
|
: mark("adapterConfig", "url", v || undefined)
|
|
}
|
|
immediate
|
|
className={inputClass}
|
|
placeholder="https://..."
|
|
/>
|
|
</Field>
|
|
);
|
|
}
|