mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-15 02:20:38 +09:00
feat(openclaw): add SSE-first transport and session routing
This commit is contained in:
parent
e9ffde610b
commit
babea25649
5 changed files with 573 additions and 43 deletions
|
|
@ -16,9 +16,20 @@ export function OpenClawConfigFields({
|
|||
eff,
|
||||
mark,
|
||||
}: AdapterConfigFieldsProps) {
|
||||
const transport = eff(
|
||||
"adapterConfig",
|
||||
"streamTransport",
|
||||
String(config.streamTransport ?? "sse"),
|
||||
);
|
||||
const sessionStrategy = eff(
|
||||
"adapterConfig",
|
||||
"sessionKeyStrategy",
|
||||
String(config.sessionKeyStrategy ?? "fixed"),
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Field label="Webhook URL" hint={help.webhookUrl}>
|
||||
<Field label="Gateway URL" hint={help.webhookUrl}>
|
||||
<DraftInput
|
||||
value={
|
||||
isCreate
|
||||
|
|
@ -36,17 +47,54 @@ export function OpenClawConfigFields({
|
|||
/>
|
||||
</Field>
|
||||
{!isCreate && (
|
||||
<Field label="Webhook auth header (optional)">
|
||||
<DraftInput
|
||||
value={
|
||||
eff("adapterConfig", "webhookAuthHeader", String(config.webhookAuthHeader ?? ""))
|
||||
}
|
||||
onCommit={(v) => mark("adapterConfig", "webhookAuthHeader", v || undefined)}
|
||||
immediate
|
||||
className={inputClass}
|
||||
placeholder="Bearer <token>"
|
||||
/>
|
||||
</Field>
|
||||
<>
|
||||
<Field label="Transport">
|
||||
<select
|
||||
value={transport}
|
||||
onChange={(e) => mark("adapterConfig", "streamTransport", e.target.value)}
|
||||
className={inputClass}
|
||||
>
|
||||
<option value="sse">SSE (recommended)</option>
|
||||
<option value="webhook">Webhook</option>
|
||||
</select>
|
||||
</Field>
|
||||
|
||||
<Field label="Session strategy">
|
||||
<select
|
||||
value={sessionStrategy}
|
||||
onChange={(e) => mark("adapterConfig", "sessionKeyStrategy", e.target.value)}
|
||||
className={inputClass}
|
||||
>
|
||||
<option value="fixed">Fixed</option>
|
||||
<option value="issue">Per issue</option>
|
||||
<option value="run">Per run</option>
|
||||
</select>
|
||||
</Field>
|
||||
|
||||
{sessionStrategy === "fixed" && (
|
||||
<Field label="Session key">
|
||||
<DraftInput
|
||||
value={eff("adapterConfig", "sessionKey", String(config.sessionKey ?? "paperclip"))}
|
||||
onCommit={(v) => mark("adapterConfig", "sessionKey", v || undefined)}
|
||||
immediate
|
||||
className={inputClass}
|
||||
placeholder="paperclip"
|
||||
/>
|
||||
</Field>
|
||||
)}
|
||||
|
||||
<Field label="Webhook auth header (optional)">
|
||||
<DraftInput
|
||||
value={
|
||||
eff("adapterConfig", "webhookAuthHeader", String(config.webhookAuthHeader ?? ""))
|
||||
}
|
||||
onCommit={(v) => mark("adapterConfig", "webhookAuthHeader", v || undefined)}
|
||||
immediate
|
||||
className={inputClass}
|
||||
placeholder="Bearer <token>"
|
||||
/>
|
||||
</Field>
|
||||
</>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue