components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 60000\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        lockoutMs\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 300000\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        exemptLoopback\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"      }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    tailscale\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      mode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"off\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // off | serve | funnel\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      resetOnExit\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" false\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    controlUi\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      enabled\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      basePath\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"/openclaw\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // root: \\\"dist/control-ui\\\",\"\n            })\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // allowInsecureAuth: false,\"\n            })\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // dangerouslyDisableDeviceAuth: false,\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    remote\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      url\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"ws://gateway.tailnet:18789\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      transport\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"ssh\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // ssh | direct\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      token\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"your-token\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // password: \\\"your-password\\\",\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    trustedProxies\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"10.0.0.1\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"    // Optional. Default false.\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    allowRealIpFallback\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" false\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    tools\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // Additional /tools/invoke HTTP denies\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      deny\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"browser\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"      // Remove tools from the default HTTP deny list\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      allow\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"gateway\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsx(Accordion, {\n      title: \"Gateway field details\",\n      id: \"gateway-field-details\",\n      children: _jsxs(_components.ul, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"mode\"\n          }), \": \", _jsx(_components.code, {\n            children: \"local\"\n          }), \" (run gateway) or \", _jsx(_components.code, {\n            children: \"remote\"\n          }), \" (connect to remote gateway). Gateway refuses to start unless \", _jsx(_components.code, {\n            children: \"local\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"port\"\n          }), \": single multiplexed port for WS + HTTP. Precedence: \", _jsx(_components.code, {\n            children: \"--port\"\n          }), \" \u003e \", _jsx(_components.code, {\n            children: \"OPENCLAW_GATEWAY_PORT\"\n          }), \" \u003e \", _jsx(_components.code, {\n            children: \"gateway.port\"\n          }), \" \u003e \", _jsx(_components.code, {\n            children: \"18789\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"bind\"\n          }), \": \", _jsx(_components.code, {\n            children: \"auto\"\n          }), \", \", _jsx(_components.code, {\n            children: \"loopback\"\n          }), \" (default), \", _jsx(_components.code, {\n            children: \"lan\"\n          }), \" (\", _jsx(_components.code, {\n            children: \"0.0.0.0\"\n          }), \"), \", _jsx(_components.code, {\n            children: \"tailnet\"\n          }), \" (Tailscale IP only), or \", _jsx(_components.code, {\n            children: \"custom\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.strong, {\n            children: \"Auth\"\n          }), \": required by default. Non-loopback binds require a shared token/password. Onboarding wizard generates a token by default.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"auth.mode: \\\"none\\\"\"\n          }), \": explicit no-auth mode. Use only for trusted local loopback setups; this is intentionally not offered by onboarding prompts.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"auth.mode: \\\"trusted-proxy\\\"\"\n          }), \": delegate auth to an identity-aware reverse proxy and trust identity headers from \", _jsx(_components.code, {\n            children: \"gateway.trustedProxies\"\n          }), \" (see \", _jsx(_components.a, {\n            href: \"/gateway/trusted-proxy-auth\",\n            children: \"Trusted Proxy Auth\"\n          }), \").\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"auth.allowTailscale\"\n          }), \": when \", _jsx(_components.code, {\n            children: \"true\"\n          }), \", Tailscale Serve identity headers can satisfy Control UI/WebSocket auth (verified via \", _jsx(_components.code, {\n            children: \"tailscale whois\"\n          }), \"); HTTP API endpoints still require token/password auth. This tokenless flow assumes the gateway host is trusted. Defaults to \", _jsx(_components.code, {\n            children: \"true\"\n          }), \" when \", _jsx(_components.code, {\n            children: \"tailscale.mode = \\\"serve\\\"\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"auth.rateLimit\"\n          }), \": optional failed-auth limiter. Applies per client IP and per auth scope (shared-secret and device-token are tracked independently). Blocked attempts return \", _jsx(_components.code, {\n            children: \"429\"\n          }), \" + \", _jsx(_components.code, {\n            children: \"Retry-After\"\n          }), \".\", \"\\n\", _jsxs(_components.ul, {\n            children: [\"\\n\", _jsxs(_components.li, {\n              children: [_jsx(_components.code, {\n                children: \"auth.rateLimit.exemptLoopback\"\n              }), \" defaults to \", _jsx(_components.code, {\n                children: \"true\"\n              }), \"; set \", _jsx(_components.code, {\n                children: \"false\"\n              }), \" when you intentionally want localhost traffic rate-limited too (for test setups or strict proxy deployments).\"]\n            }), \"\\n\"]\n          }), \"\\n\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"tailscale.mode\"\n          }), \": \", _jsx(_components.code, {\n            children: \"serve\"\n          }), \" (tailnet only, loopback bind) or \", _jsx(_components.code, {\n            children: \"funnel\"\n          }), \" (public, requires auth).\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"remote.transport\"\n          }), \": \", _jsx(_components.code, {\n            children: \"ssh\"\n          }), \" (default) or \", _jsx(_components.code, {\n            children: \"direct\"\n          }), \" (ws/wss). For \", _jsx(_components.code, {\n            children: \"direct\"\n          }), \", \", _jsx(_components.code, {\n            children: \"remote.url\"\n          }), \" must be \", _jsx(_components.code, {\n            children: \"ws://\"\n          }), \" or \", _jsx(_components.code, {\n            children: \"wss://\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"gateway.remote.token\"\n          }), \" is for remote CLI calls only; does not enable local gateway auth.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"trustedProxies\"\n          }), \": reverse proxy IPs that terminate TLS. Only list proxies you control.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"allowRealIpFallback\"\n          }), \": when \", _jsx(_components.code, {\n            children: \"true\"\n          }), \", the gateway accepts \", _jsx(_components.code, {\n            children: \"X-Real-IP\"\n          }), \" if \", _jsx(_components.code, {\n            children: \"X-Forwarded-For\"\n          }), \" is missing. Default \", _jsx(_components.code, {\n            children: \"false\"\n          }), \" for fail-closed behavior.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"gateway.tools.deny\"\n          }), \": extra tool names blocked for HTTP \", _jsx(_components.code, {\n            children: \"POST /tools/invoke\"\n          }), \" (extends default deny list).\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"gateway.tools.allow\"\n          }), \": remove tool names from the default HTTP deny list.\"]\n        }), \"\\n\"]\n      })\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"openai-compatible-endpoints\",\n      children: \"OpenAI-compatible endpoints\"\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Chat Completions: disabled by default. Enable with \", _jsx(_components.code, {\n          children: \"gateway.http.endpoints.chatCompletions.enabled: true\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Responses API: \", _jsx(_components.code, {\n          children: \"gateway.http.endpoints.responses.enabled\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Responses URL-input hardening:\", \"\\n\", _jsxs(_components.ul, {\n          children: [\"\\n\", _jsx(_components.li, {\n            children: _jsx(_components.code, {\n              children: \"gateway.http.endpoints.responses.maxUrlParts\"\n            })\n          }), \"\\n\", _jsx(_components.li, {\n            children: _jsx(_components.code, {\n              children: \"gateway.http.endpoints.responses.files.urlAllowlist\"\n            })\n          }), \"\\n\", _jsx(_components.li, {\n            children: _jsx(_components.code, {\n              children: \"gateway.http.endpoints.responses.images.urlAllowlist\"\n            })\n          }), \"\\n\"]\n        }), \"\\n\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"multi-instance-isolation\",\n      children: \"Multi-instance isolation\"\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Run multiple gateways on one host with unique ports and state dirs:\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"3\",\n      language: \"shellscript\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"shellscript\",\n        children: _jsxs(_components.code, {\n          language: \"shellscript\",\n          numberOfLines: \"3\",\n          children: [_jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"OPENCLAW_CONFIG_PATH\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#D32F2F\",\n                \"--shiki-dark\": \"#F97583\"\n              },\n              children: \"=\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"~/.openclaw/a.json\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#6F42C1\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" \\\\\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"OPENCLAW_STATE_DIR=~/.openclaw-a \\\\\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"openclaw \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"gateway\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" --port\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#F8F8F8\"\n              },\n              children: \" 19001\"\n            })]\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Convenience flags: \", _jsx(_components.code, {\n        children: \"--dev\"\n      }), \" (uses \", _jsx(_components.code, {\n        children: \"~/.openclaw-dev\"\n      }), \" + port \", _jsx(_components.code, {\n        children: \"19001\"\n      }), \"), \", _jsx(_components.code, {\n        children: \"--profile \u003cname\u003e\"\n      }), \" (uses \", _jsx(_components.code, {\n        children: \"~/.openclaw-\u003cname\u003e\"\n      }), \").\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"See \", _jsx(_components.a, {\n        href: \"/gateway/multiple-gateways\",\n        children: \"Multiple Gateways\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"hooks\",\n      children: \"Hooks\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"28\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"28\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  hooks\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    enabled\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    token\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"shared-secret\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    path\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"/hooks\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    maxBodyBytes\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 262144\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    defaultSessionKey\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"hook:ingress\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    allowRequestSessionKey\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" false\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    allowedSessionKeyPrefixes\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"hook:\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    allowedAgentIds\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"hooks\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"main\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    presets\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"gmail\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    transformsDir\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"~/.openclaw/hooks/transforms\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    mappings\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"      {\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        match\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"path\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"gmail\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        action\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"agent\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        agentId\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"hooks\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        wakeMode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"now\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        name\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"Gmail\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        sessionKey\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"hook:gmail:{{messages[0].id}}\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        messageTemplate\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"From: {{messages[0].from}}\\\\nSubject: {{messages[0].subject}}\\\\n{{messages[0].snippet}}\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        deliver\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        channel\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"last\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        model\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"openai/gpt-5.2-mini\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"      }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    ]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Auth: \", _jsx(_components.code, {\n        children: \"Authorization: Bearer \u003ctoken\u003e\"\n      }), \" or \", _jsx(_components.code, {\n        children: \"x-openclaw-token: \u003ctoken\u003e\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.p, {\n      children: _jsx(_components.strong, {\n        children: \"Endpoints:\"\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"POST /hooks/wake\"\n        }), \" → \", _jsx(_components.code, {\n          children: \"{ text, mode?: \\\"now\\\"|\\\"next-heartbeat\\\" }\"\n        })]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"POST /hooks/agent\"\n        }), \" → \", _jsx(_components.code, {\n          children: \"{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }\"\n        }), \"\\n\", _jsxs(_components.ul, {\n          children: [\"\\n\", _jsxs(_components.li, {\n            children: [_jsx(_components.code, {\n              children: \"sessionKey\"\n            }), \" from request payload is accepted only when \", _jsx(_components.code, {\n              children: \"hooks.allowRequestSessionKey=true\"\n            }), \" (default: \", _jsx(_components.code, {\n              children: \"false\"\n            }), \").\"]\n          }), \"\\n\"]\n        }), \"\\n\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"POST /hooks/\u003cname\u003e\"\n        }), \" → resolved via \", _jsx(_components.code, {\n          children: \"hooks.mappings\"\n        })]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(Accordion, {\n      title: \"Mapping details\",\n      id: \"mapping-details\",\n      children: _jsxs(_components.ul, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"match.path\"\n          }), \" matches sub-path after \", _jsx(_components.code, {\n            children: \"/hooks\"\n          }), \" (e.g. \", _jsx(_components.code, {\n            children: \"/hooks/gmail\"\n          }), \" → \", _jsx(_components.code, {\n            children: \"gmail\"\n          }), \").\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"match.source\"\n          }), \" matches a payload field for generic paths.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Templates like \", _jsx(_components.code, {\n            children: \"{{messages[0].subject}}\"\n          }), \" read from the payload.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"transform\"\n          }), \" can point to a JS/TS module returning a hook action.\", \"\\n\", _jsxs(_components.ul, {\n            children: [\"\\n\", _jsxs(_components.li, {\n              children: [_jsx(_components.code, {\n                children: \"transform.module\"\n              }), \" must be a relative path and stays within \", _jsx(_components.code, {\n                children: \"hooks.transformsDir\"\n              }), \" (absolute paths and traversal are rejected).\"]\n            }), \"\\n\"]\n          }), \"\\n\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"agentId\"\n          }), \" routes to a specific agent; unknown IDs fall back to default.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"allowedAgentIds\"\n          }), \": restricts explicit routing (\", _jsx(_components.code, {\n            children: \"*\"\n          }), \" or omitted = allow all, \", _jsx(_components.code, {\n            children: \"[]\"\n          }), \" = deny all).\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"defaultSessionKey\"\n          }), \": optional fixed session key for hook agent runs without explicit \", _jsx(_components.code, {\n            children: \"sessionKey\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"allowRequestSessionKey\"\n          }), \": allow \", _jsx(_components.code, {\n            children: \"/hooks/agent\"\n          }), \" callers to set \", _jsx(_components.code, {\n            children: \"sessionKey\"\n          }), \" (default: \", _jsx(_components.code, {\n            children: \"false\"\n          }), \").\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"allowedSessionKeyPrefixes\"\n          }), \": optional prefix allowlist for explicit \", _jsx(_components.code, {\n            children: \"sessionKey\"\n          }), \" values (request + mapping), e.g. \", _jsx(_components.code, {\n            children: \"[\\\"hook:\\\"]\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"deliver: true\"\n          }), \" sends final reply to a channel; \", _jsx(_components.code, {\n            children: \"channel\"\n          }), \" defaults to \", _jsx(_components.code, {\n            children: \"last\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [_jsx(_components.code, {\n            children: \"model\"\n          }), \" overrides LLM for this hook run (must be allowed if model catalog is set).\"]\n        }), \"\\n\"]\n      })\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"gmail-integration\",\n      children: \"Gmail integration\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"18\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"18\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  hooks\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    gmail\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      account\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"openclaw@gmail.com\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      topic\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"projects/\u003cproject-id\u003e/topics/gog-gmail-watch\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      subscription\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"gog-gmail-watch-push\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      pushToken\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"shared-push-token\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      hookUrl\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"http://127.0.0.1:18789/hooks/gmail\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      includeBody\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      maxBytes\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 20000\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      renewEveryMinutes\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 720\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      serve\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"bind\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"127.0.0.1\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" port\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 8788\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" path\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"/\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      tailscale\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"mode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"funnel\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" path\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"/gmail-pubsub\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      model\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"openrouter/meta-llama/llama-3.3-70b-instruct:free\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      thinking\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"off\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Gateway auto-starts \", _jsx(_components.code, {\n          children: \"gog gmail watch serve\"\n        }), \" on boot when configured. Set \", _jsx(_components.code, {\n          children: \"OPENCLAW_SKIP_GMAIL_WATCHER=1\"\n        }), \" to disable.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Don’t run a separate \", _jsx(_components.code, {\n          children: \"gog gmail watch serve\"\n        }), \" alongside the Gateway.\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"canvas-host\",\n      children: \"Canvas host\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"7\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"7\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  canvasHost\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    root\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"~/.openclaw/workspace/canvas\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    liveReload\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"    // enabled: false,\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // or OPENCLAW_SKIP_CANVAS_HOST=1\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Serves agent-editable HTML/CSS/JS and A2UI over HTTP under the Gateway port:\", \"\\n\", _jsxs(_components.ul, {\n          children: [\"\\n\", _jsx(_components.li, {\n            children: _jsx(_components.code, {\n              children: \"http://\u003cgateway-host\u003e:\u003cgateway.port\u003e/__openclaw__/canvas/\"\n            })\n          }), \"\\n\", _jsx(_components.li, {\n            children: _jsx(_components.code, {\n              children: \"http://\u003cgateway-host\u003e:\u003cgateway.port\u003e/__openclaw__/a2ui/\"\n            })\n          }), \"\\n\"]\n        }), \"\\n\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Local-only: keep \", _jsx(_components.code, {\n          children: \"gateway.bind: \\\"loopback\\\"\"\n        }), \" (default).\"]\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Non-loopback binds: canvas routes require Gateway auth (token/password/trusted-proxy), same as other Gateway HTTP surfaces.\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Node WebViews typically don’t send auth headers; after a node is paired and connected, the Gateway advertises node-scoped capability URLs for canvas/A2UI access.\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Capability URLs are bound to the active node WS session and expire quickly. IP-based fallback is not used.\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Injects live-reload client into served HTML.\"\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Auto-creates starter \", _jsx(_components.code, {\n          children: \"index.html\"\n        }), \" when empty.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Also serves A2UI at \", _jsx(_components.code, {\n          children: \"/__openclaw__/a2ui/\"\n        }), \".\"]\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Changes require a gateway restart.\"\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Disable live reload for large directories or \", _jsx(_components.code, {\n          children: \"EMFILE\"\n        }), \" errors.\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"discovery\",\n      children: \"Discovery\"\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"mdns-bonjour\",\n      children: \"mDNS (Bonjour)\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"7\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"7\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  discovery\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    mdns\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      mode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"minimal\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // minimal | full | off\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"minimal\"\n        }), \" (default): omit \", _jsx(_components.code, {\n          children: \"cliPath\"\n        }), \" + \", _jsx(_components.code, {\n          children: \"sshPort\"\n        }), \" from TXT records.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"full\"\n        }), \": include \", _jsx(_components.code, {\n          children: \"cliPath\"\n        }), \" + \", _jsx(_components.code, {\n          children: \"sshPort\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Hostname defaults to \", _jsx(_components.code, {\n          children: \"openclaw\"\n        }), \". Override with \", _jsx(_components.code, {\n          children: \"OPENCLAW_MDNS_HOSTNAME\"\n        }), \".\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"wide-area-dns-sd\",\n      children: \"Wide-area (DNS-SD)\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"5\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"5\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  discovery\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    wideArea\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"enabled\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Writes a unicast DNS-SD zone under \", _jsx(_components.code, {\n        children: \"~/.openclaw/dns/\"\n      }), \". For cross-network discovery, pair with a DNS server (CoreDNS recommended) + Tailscale split DNS.\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Setup: \", _jsx(_components.code, {\n        children: \"openclaw dns setup --apply\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"environment\",\n      children: \"Environment\"\n    }), \"\\n\", _jsxs(Heading, {\n      level: \"3\",\n      id: \"env-inline-env-vars\",\n      children: [_jsx(_components.code, {\n        children: \"env\"\n      }), \" (inline env vars)\"]\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"12\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"12\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  env\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    OPENROUTER_API_KEY\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"sk-or-...\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    vars\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      GROQ_API_KEY\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"gsk-...\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    shellEnv\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      enabled\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      timeoutMs\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 15000\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsx(_components.li, {\n        children: \"Inline env vars are only applied if the process env is missing the key.\"\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \".env\"\n        }), \" files: CWD \", _jsx(_components.code, {\n          children: \".env\"\n        }), \" + \", _jsx(_components.code, {\n          children: \"~/.openclaw/.env\"\n        }), \" (neither overrides existing vars).\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"shellEnv\"\n        }), \": imports missing expected keys from your login shell profile.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"See \", _jsx(_components.a, {\n          href: \"/help/environment\",\n          children: \"Environment\"\n        }), \" for full precedence.\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(Heading, {\n      level: \"3\",\n      id: \"env-var-substitution\",\n      children: \"Env var substitution\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Reference env vars in any config string with \", _jsx(_components.code, {\n        children: \"${VAR_NAME}\"\n      }), \":\"]\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"5\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"5\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  gateway\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    auth\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"token\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"${OPENCLAW_GATEWAY_TOKEN}\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Only uppercase names matched: \", _jsx(_components.code, {\n          children: \"[A-Z_][A-Z0-9_]*\"\n        }), \".\"]\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Missing/empty vars throw an error at config load.\"\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Escape with \", _jsx(_components.code, {\n          children: \"$${VAR}\"\n        }), \" for a literal \", _jsx(_components.code, {\n          children: \"${VAR}\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Works with \", _jsx(_components.code, {\n          children: \"$include\"\n        }), \".\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"auth-storage\",\n      children: \"Auth storage\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"11\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"11\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  auth\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    profiles\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"      \\\"anthropic:me@example.com\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"provider\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"anthropic\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" mode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"oauth\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" email\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"me@example.com\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"      \\\"anthropic:work\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"provider\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"anthropic\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \" mode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"api_key\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    order\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"      anthropic\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"anthropic:me@example.com\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"anthropic:work\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Per-agent auth profiles stored at \", _jsx(_components.code, {\n          children: \"\u003cagentDir\u003e/auth-profiles.json\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Legacy OAuth imports from \", _jsx(_components.code, {\n          children: \"~/.openclaw/credentials/oauth.json\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"See \", _jsx(_components.a, {\n          href: \"/concepts/oauth\",\n          children: \"OAuth\"\n        }), \".\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"logging\",\n      children: \"Logging\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"10\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"10\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  logging\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    level\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"info\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    file\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"/tmp/openclaw/openclaw.log\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    consoleLevel\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"info\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    consoleStyle\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"pretty\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // pretty | compact | json\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    redactSensitive\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"tools\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // off | tools\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    redactPatterns\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"\\\\\\\\bTOKEN\\\\\\\\b\\\\\\\\s*[=:]\\\\\\\\s*([\\\\\\\"']?)([^\\\\\\\\s\\\\\\\"']+)\\\\\\\\1\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [\"Default log file: \", _jsx(_components.code, {\n          children: \"/tmp/openclaw/openclaw-YYYY-MM-DD.log\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Set \", _jsx(_components.code, {\n          children: \"logging.file\"\n        }), \" for a stable path.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"consoleLevel\"\n        }), \" bumps to \", _jsx(_components.code, {\n          children: \"debug\"\n        }), \" when \", _jsx(_components.code, {\n          children: \"--verbose\"\n        }), \".\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"wizard\",\n      children: \"Wizard\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Metadata written by CLI wizards (\", _jsx(_components.code, {\n        children: \"onboard\"\n      }), \", \", _jsx(_components.code, {\n        children: \"configure\"\n      }), \", \", _jsx(_components.code, {\n        children: \"doctor\"\n      }), \"):\"]\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"9\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"9\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  wizard\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    lastRunAt\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"2026-01-01T00:00:00.000Z\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    lastRunVersion\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"2026.1.4\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    lastRunCommit\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"abc1234\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    lastRunCommand\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"configure\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    lastRunMode\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"local\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"identity\",\n      children: \"Identity\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"15\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"15\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  agents\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    list\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"      {\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        id\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"main\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"        identity\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"          name\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"Samantha\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"          theme\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"helpful sloth\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"          emoji\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"🦥\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"          avatar\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"avatars/samantha.png\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"        }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"      }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    ]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Written by the macOS onboarding assistant. Derives defaults:\"\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"messages.ackReaction\"\n        }), \" from \", _jsx(_components.code, {\n          children: \"identity.emoji\"\n        }), \" (falls back to 👀)\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"mentionPatterns\"\n        }), \" from \", _jsx(_components.code, {\n          children: \"identity.name\"\n        }), \"/\", _jsx(_components.code, {\n          children: \"identity.emoji\"\n        })]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"avatar\"\n        }), \" accepts: workspace-relative path, \", _jsx(_components.code, {\n          children: \"http(s)\"\n        }), \" URL, or \", _jsx(_components.code, {\n          children: \"data:\"\n        }), \" URI\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"bridge-legacy%2C-removed\",\n      children: \"Bridge (legacy, removed)\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Current builds no longer include the TCP bridge. Nodes connect over the Gateway WebSocket. \", _jsx(_components.code, {\n        children: \"bridge.*\"\n      }), \" keys are no longer part of the config schema (validation fails until removed; \", _jsx(_components.code, {\n        children: \"openclaw doctor --fix\"\n      }), \" can strip unknown keys).\"]\n    }), \"\\n\", _jsx(Accordion, {\n      title: \"Legacy bridge config (historical reference)\",\n      id: \"legacy-bridge-config-historical-reference\",\n      children: _jsx(CodeBlock, {\n        filename: \"\",\n        numberOfLines: \"11\",\n        language: \"json\",\n        children: _jsx(_components.pre, {\n          className: \"shiki shiki-themes min-light min-dark\",\n          style: {\n            backgroundColor: \"#ffffff\",\n            \"--shiki-dark-bg\": \"#1f1f1f\",\n            color: \"#24292eff\",\n            \"--shiki-dark\": \"#b392f0\"\n          },\n          language: \"json\",\n          children: _jsxs(_components.code, {\n            language: \"json\",\n            numberOfLines: \"11\",\n            children: [_jsx(_components.span, {\n              className: \"line\",\n              children: _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \"{\"\n              })\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"  \\\"bridge\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \" {\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"    \\\"enabled\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#1976D2\",\n                  \"--shiki-dark\": \"#79B8FF\"\n                },\n                children: \" true\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \",\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"    \\\"port\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#1976D2\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \" 18790\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \",\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"    \\\"bind\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#22863A\",\n                  \"--shiki-dark\": \"#FFAB70\"\n                },\n                children: \" \\\"tailnet\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \",\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"    \\\"tls\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \" {\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"      \\\"enabled\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#1976D2\",\n                  \"--shiki-dark\": \"#79B8FF\"\n                },\n                children: \" true\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \",\"\n              })]\n            }), \"\\n\", _jsxs(_components.span, {\n              className: \"line\",\n              children: [_jsx(_components.span, {\n                style: {\n                  color: \"#D32F2F\",\n                  \"--shiki-dark\": \"#F8F8F8\"\n                },\n                children: \"      \\\"autoGenerate\\\"\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#212121\",\n                  \"--shiki-dark\": \"#BBBBBB\"\n                },\n                children: \":\"\n              }), _jsx(_components.span, {\n                style: {\n                  color: \"#1976D2\",\n                  \"--shiki-dark\": \"#79B8FF\"\n                },\n                children: \" true\"\n              })]\n            }), \"\\n\", _jsx(_components.span, {\n              className: \"line\",\n              children: _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \"    }\"\n              })\n            }), \"\\n\", _jsx(_components.span, {\n              className: \"line\",\n              children: _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \"  }\"\n              })\n            }), \"\\n\", _jsx(_components.span, {\n              className: \"line\",\n              children: _jsx(_components.span, {\n                style: {\n                  color: \"#24292EFF\",\n                  \"--shiki-dark\": \"#B392F0\"\n                },\n                children: \"}\"\n              })\n            }), \"\\n\"]\n          })\n        })\n      })\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"cron\",\n      children: \"Cron\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"9\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"9\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  cron\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    enabled\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#1976D2\",\n                \"--shiki-dark\": \"#79B8FF\"\n              },\n              children: \" true\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    maxConcurrentRuns\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 2\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    webhook\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"https://example.invalid/legacy\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // deprecated fallback for stored notify:true jobs\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    webhookToken\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"replace-with-dedicated-token\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // optional bearer token for outbound webhook auth\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"    sessionRetention\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"24h\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \" // duration string or false\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"sessionRetention\"\n        }), \": how long to keep completed cron sessions before pruning. Default: \", _jsx(_components.code, {\n          children: \"24h\"\n        }), \".\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"webhookToken\"\n        }), \": bearer token used for cron webhook POST delivery (\", _jsx(_components.code, {\n          children: \"delivery.mode = \\\"webhook\\\"\"\n        }), \"), if omitted no auth header is sent.\"]\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [_jsx(_components.code, {\n          children: \"webhook\"\n        }), \": deprecated legacy fallback webhook URL (http/https) used only for stored jobs that still have \", _jsx(_components.code, {\n          children: \"notify: true\"\n        }), \".\"]\n      }), \"\\n\"]\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"See \", _jsx(_components.a, {\n        href: \"/automation/cron-jobs\",\n        children: \"Cron Jobs\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(Heading, {\n      level: \"2\",\n      id: \"media-model-template-variables\",\n      children: \"Media model template variables\"\n    }), \"\\n\", _jsxs(_components.p, {\n      children: [\"Template placeholders expanded in \", _jsx(_components.code, {\n        children: \"tools.media.*.models[].args\"\n      }), \":\"]\n    }), \"\\n\", _jsxs(Table, {\n      children: [_jsx(_components.thead, {\n        children: _jsxs(_components.tr, {\n          children: [_jsx(_components.th, {\n            children: \"Variable\"\n          }), _jsx(_components.th, {\n            children: \"Description\"\n          })]\n        })\n      }), _jsxs(_components.tbody, {\n        children: [_jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{Body}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Full inbound message body\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{RawBody}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Raw body (no history/sender wrappers)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{BodyStripped}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Body with group mentions stripped\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{From}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Sender identifier\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{To}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Destination identifier\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{MessageSid}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Channel message id\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{SessionId}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Current session UUID\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{IsNewSession}}\"\n            })\n          }), _jsxs(_components.td, {\n            children: [_jsx(_components.code, {\n              children: \"\\\"true\\\"\"\n            }), \" when new session created\"]\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{MediaUrl}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Inbound media pseudo-URL\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{MediaPath}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Local media path\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{MediaType}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Media type (image/audio/document/…)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{Transcript}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Audio transcript\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{Prompt}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Resolved media prompt for CLI entries\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{MaxChars}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Resolved max output chars for CLI entries\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{ChatType}}\"\n            })\n          }), _jsxs(_components.td, {\n            children: [_jsx(_components.code, {\n              children: \"\\\"direct\\\"\"\n            }), \" or \", _jsx(_components.code, {\n              children: \"\\\"group\\\"\"\n            })]\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{GroupSubject}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Group subject (best effort)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{GroupMembers}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Group members preview (best effort)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{SenderName}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Sender display name (best effort)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{SenderE164}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Sender phone number (best effort)\"\n          })]\n        }), _jsxs(_components.tr, {\n          children: [_jsx(_components.td, {\n            children: _jsx(_components.code, {\n              children: \"{{Provider}}\"\n            })\n          }), _jsx(_components.td, {\n            children: \"Provider hint (whatsapp, telegram, discord, etc.)\"\n          })]\n        })]\n      })]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsxs(Heading, {\n      level: \"2\",\n      id: \"config-includes-%24include\",\n      children: [\"Config includes (\", _jsx(_components.code, {\n        children: \"$include\"\n      }), \")\"]\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Split config into multiple files:\"\n    }), \"\\n\", _jsx(CodeBlock, {\n      filename: \"\",\n      numberOfLines: \"8\",\n      language: \"json5\",\n      children: _jsx(_components.pre, {\n        className: \"shiki shiki-themes min-light min-dark\",\n        style: {\n          backgroundColor: \"#ffffff\",\n          \"--shiki-dark-bg\": \"#1f1f1f\",\n          color: \"#24292eff\",\n          \"--shiki-dark\": \"#b392f0\"\n        },\n        language: \"json5\",\n        children: _jsxs(_components.code, {\n          language: \"json5\",\n          numberOfLines: \"8\",\n          children: [_jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#C2C3C5\",\n                \"--shiki-dark\": \"#6B737C\"\n              },\n              children: \"// ~/.openclaw/openclaw.json\"\n            })\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"{\"\n            })\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  gateway\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { \"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"port\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" 18789 }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  agents\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" { $\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"include\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"./agents.json5\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"  broadcast\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" {\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"    $\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#2B5581\",\n                \"--shiki-dark\": \"#9DB1C5\"\n              },\n              children: \"include\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \":\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \" [\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \"\\\"./clients/mueller.json5\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#22863A\",\n                \"--shiki-dark\": \"#FFAB70\"\n              },\n              children: \" \\\"./clients/schmidt.json5\\\"\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"]\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsxs(_components.span, {\n            className: \"line\",\n            children: [_jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"  }\"\n            }), _jsx(_components.span, {\n              style: {\n                color: \"#212121\",\n                \"--shiki-dark\": \"#BBBBBB\"\n              },\n              children: \",\"\n            })]\n          }), \"\\n\", _jsx(_components.span, {\n            className: \"line\",\n            children: _jsx(_components.span, {\n              style: {\n                color: \"#24292EFF\",\n                \"--shiki-dark\": \"#B392F0\"\n              },\n              children: \"}\"\n            })\n          }), \"\\n\"]\n        })\n      })\n    }), \"\\n\", _jsx(_components.p, {\n      children: _jsx(_components.strong, {\n        children: \"Merge behavior:\"\n      })\n    }), \"\\n\", _jsxs(_components.ul, {\n      children: [\"\\n\", _jsx(_components.li, {\n        children: \"Single file: replaces the containing object.\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Array of files: deep-merged in order (later overrides earlier).\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Sibling keys: merged after includes (override included values).\"\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Nested includes: up to 10 levels deep.\"\n      }), \"\\n\", _jsxs(_components.li, {\n        children: [\"Paths: resolved relative to the including file, but must stay inside the top-level config directory (\", _jsx(_components.code, {\n          children: \"dirname\"\n        }), \" of the main config file). Absolute/\", _jsx(_components.code, {\n          children: \"../\"\n        }), \" forms are allowed only when they still resolve inside that boundary.\"]\n      }), \"\\n\", _jsx(_components.li, {\n        children: \"Errors: clear messages for missing files, parse errors, and circular includes.\"\n      }), \"\\n\"]\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsx(_components.p, {\n      children: _jsxs(_components.em, {\n        children: [\"Related: \", _jsx(_components.a, {\n          href: \"/gateway/configuration\",\n          children: \"Configuration\"\n        }), \" · \", _jsx(_components.a, {\n          href: \"/gateway/configuration-examples\",\n          children: \"Configuration Examples\"\n        }), \" · \", _jsx(_components.a, {\n          href: \"/gateway/doctor\",\n          children: \"Doctor\"\n        })]\n      })\n    })]\n  });\n}\nfunction MDXContent(props = {}) {\n  const {wrapper: MDXLayout} = {\n    ..._provideComponents(),\n    ...props.components\n  };\n  return MDXLayout ? _jsx(MDXLayout, {\n    ...props,\n    children: _jsx(_createMdxContent, {\n      ...props\n    })\n  }) : _createMdxContent(props);\n}\nreturn {\n  default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n  throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n"])</script><script>self.__next_f.push([1,"50:[\"$\",\"$L51\",null,{\"slug\":\"gateway/configuration-reference\",\"pageMetadata\":\"$1d:props:children:props:value:pageMetadata\",\"theme\":\"mint\",\"children\":[\"$\",\"$L52\",null,{\"mdxSource\":{\"compiledSource\":\"$53\",\"frontmatter\":{},\"scope\":{\"codeStyling\":{\"theme\":{\"light\":\"min-light\",\"dark\":\"min-dark\"}},\"config\":{},\"pageMetadata\":{\"title\":\"Configuration Reference\",\"description\":\"Complete field-by-field reference for ~/.openclaw/openclaw.json\",\"href\":\"/gateway/configuration-reference\"}}},\"mdxSourceWithNoJs\":{\"compiledSource\":\"$54\",\"frontmatter\":{},\"scope\":{\"codeStyling\":{\"theme\":{\"light\":\"min-light\",\"dark\":\"min-dark\"}},\"config\":{},\"pageMetadata\":{\"title\":\"Configuration Reference\",\"description\":\"Complete field-by-field reference for ~/.openclaw/openclaw.json\",\"href\":\"/gateway/configuration-reference\"}}}}]}]\n"])</script></body></html>