diff --git a/packages/adapters/openclaw-gateway/src/index.ts b/packages/adapters/openclaw-gateway/src/index.ts index 1bdf66f2..137cd340 100644 --- a/packages/adapters/openclaw-gateway/src/index.ts +++ b/packages/adapters/openclaw-gateway/src/index.ts @@ -36,6 +36,7 @@ Request behavior fields: - waitTimeoutMs (number, optional): agent.wait timeout override (default timeoutSec * 1000) - autoPairOnFirstConnect (boolean, optional): on first "pairing required", attempt device.pair.list/device.pair.approve via shared auth, then retry once (default true) - paperclipApiUrl (string, optional): absolute Paperclip base URL advertised in wake text +- claimedApiKeyPath (string, optional): path to the claimed API key JSON file read by the agent at wake time (default ~/.openclaw/workspace/paperclip-claimed-api-key.json) Session routing fields: - sessionKeyStrategy (string, optional): issue (default), fixed, or run diff --git a/packages/adapters/openclaw-gateway/src/server/execute.ts b/packages/adapters/openclaw-gateway/src/server/execute.ts index 8c51ef10..bcb4e06b 100644 --- a/packages/adapters/openclaw-gateway/src/server/execute.ts +++ b/packages/adapters/openclaw-gateway/src/server/execute.ts @@ -320,6 +320,12 @@ function resolvePaperclipApiUrlOverride(value: unknown): string | null { } } +const DEFAULT_CLAIMED_API_KEY_PATH = "~/.openclaw/workspace/paperclip-claimed-api-key.json"; + +function resolveClaimedApiKeyPath(value: unknown): string { + return nonEmpty(value) ?? DEFAULT_CLAIMED_API_KEY_PATH; +} + function buildPaperclipEnvForWake(ctx: AdapterExecutionContext, wakePayload: WakePayload): Record { const paperclipApiUrlOverride = resolvePaperclipApiUrlOverride(ctx.config.paperclipApiUrl); const paperclipEnv: Record = { diff --git a/ui/src/adapters/openclaw-gateway/config-fields.tsx b/ui/src/adapters/openclaw-gateway/config-fields.tsx index 19780d94..82bff3e2 100644 --- a/ui/src/adapters/openclaw-gateway/config-fields.tsx +++ b/ui/src/adapters/openclaw-gateway/config-fields.tsx @@ -150,6 +150,16 @@ export function OpenClawGatewayConfigFields({ /> + + mark("adapterConfig", "claimedApiKeyPath", v || undefined)} + immediate + className={inputClass} + placeholder="~/.openclaw/workspace/paperclip-claimed-api-key.json" + /> + +