Spaces:
Running
Running
fix: proxy googleapis.com through Cloudflare and fix fetch duplex for POST streaming
Browse files- Add googleapis.com to default CLOUDFLARE_PROXY_DOMAINS so Gemini API
calls route through CF Worker instead of going direct (HF blocks direct
connections to generativelanguage.googleapis.com)
- Fix duplex:"half" placement in patched fetch — must be a fetch() init
option not a Request constructor option; Node.js/undici only reads it
from fetch opts, causing POST streaming bodies to fail immediately
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- cloudflare-proxy.js +6 -6
- start.sh +1 -1
cloudflare-proxy.js
CHANGED
|
@@ -177,16 +177,16 @@ if (PROXY_URL) {
|
|
| 177 |
const proxiedUrl = new URL(url.pathname + url.search, proxy);
|
| 178 |
|
| 179 |
if (request) {
|
| 180 |
-
const
|
| 181 |
method: request.method,
|
| 182 |
headers: mergedHeaders,
|
| 183 |
-
body: request.body,
|
| 184 |
redirect: request.redirect,
|
| 185 |
-
duplex: "half",
|
| 186 |
};
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
|
|
|
|
|
|
| 190 |
}
|
| 191 |
|
| 192 |
const newInit = {
|
|
|
|
| 177 |
const proxiedUrl = new URL(url.pathname + url.search, proxy);
|
| 178 |
|
| 179 |
if (request) {
|
| 180 |
+
const fetchOpts = {
|
| 181 |
method: request.method,
|
| 182 |
headers: mergedHeaders,
|
|
|
|
| 183 |
redirect: request.redirect,
|
|
|
|
| 184 |
};
|
| 185 |
+
if (request.body) {
|
| 186 |
+
fetchOpts.body = request.body;
|
| 187 |
+
fetchOpts.duplex = "half";
|
| 188 |
+
}
|
| 189 |
+
return originalFetch(String(proxiedUrl), fetchOpts);
|
| 190 |
}
|
| 191 |
|
| 192 |
const newInit = {
|
start.sh
CHANGED
|
@@ -157,7 +157,7 @@ CLOUDFLARE_WORKERS_TOKEN="${CLOUDFLARE_WORKERS_TOKEN:-${CLOUDFLARE_API_TOKEN:-}}
|
|
| 157 |
export CLOUDFLARE_WORKERS_TOKEN
|
| 158 |
CF_PROXY_ENV_FILE="/tmp/huggingclaw-cloudflare-proxy.env"
|
| 159 |
if [ -n "${CLOUDFLARE_WORKERS_TOKEN:-}" ] || [ -n "${CLOUDFLARE_PROXY_URL:-}" ]; then
|
| 160 |
-
export CLOUDFLARE_PROXY_DOMAINS="${CLOUDFLARE_PROXY_DOMAINS:-api.telegram.org,web.whatsapp.com}"
|
| 161 |
export CLOUDFLARE_PROXY_DEBUG="${CLOUDFLARE_PROXY_DEBUG:-true}"
|
| 162 |
echo "☁️ Preparing Cloudflare outbound proxy..."
|
| 163 |
python3 /home/node/app/cloudflare-proxy-setup.py || true
|
|
|
|
| 157 |
export CLOUDFLARE_WORKERS_TOKEN
|
| 158 |
CF_PROXY_ENV_FILE="/tmp/huggingclaw-cloudflare-proxy.env"
|
| 159 |
if [ -n "${CLOUDFLARE_WORKERS_TOKEN:-}" ] || [ -n "${CLOUDFLARE_PROXY_URL:-}" ]; then
|
| 160 |
+
export CLOUDFLARE_PROXY_DOMAINS="${CLOUDFLARE_PROXY_DOMAINS:-api.telegram.org,web.whatsapp.com,googleapis.com}"
|
| 161 |
export CLOUDFLARE_PROXY_DEBUG="${CLOUDFLARE_PROXY_DEBUG:-true}"
|
| 162 |
echo "☁️ Preparing Cloudflare outbound proxy..."
|
| 163 |
python3 /home/node/app/cloudflare-proxy-setup.py || true
|