clawmoney 0.15.57 → 0.15.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -222,11 +222,10 @@ export async function relaySetupCommand() {
|
|
|
222
222
|
})));
|
|
223
223
|
}
|
|
224
224
|
if (selectedClis.includes("gemini") && !hasGeminiFingerprint()) {
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
tasks.push(bootstrapGeminiFingerprint({ timeoutMs: 25_000 })
|
|
225
|
+
// Gemini's capture typically completes in 5-15s on a working
|
|
226
|
+
// network. 45s is generous headroom for token refresh
|
|
227
|
+
// round-trips through a slow HTTPS_PROXY.
|
|
228
|
+
tasks.push(bootstrapGeminiFingerprint({ timeoutMs: 45_000 })
|
|
230
229
|
.then((fp) => ({
|
|
231
230
|
cli: "gemini",
|
|
232
231
|
ok: true,
|
|
@@ -274,10 +273,9 @@ export async function relaySetupCommand() {
|
|
|
274
273
|
// fingerprint file.
|
|
275
274
|
const startLine = `${chalk.gray("◇")} Configuring providers`;
|
|
276
275
|
process.stdout.write(startLine);
|
|
277
|
-
const tickEvery = 500;
|
|
278
276
|
const ticker = setInterval(() => {
|
|
279
277
|
process.stdout.write(chalk.dim("."));
|
|
280
|
-
},
|
|
278
|
+
}, 1200);
|
|
281
279
|
const results = await runAllBootstraps();
|
|
282
280
|
clearInterval(ticker);
|
|
283
281
|
try {
|
|
@@ -276,22 +276,17 @@ export async function bootstrapClaudeFingerprint(opts = {}) {
|
|
|
276
276
|
return;
|
|
277
277
|
}
|
|
278
278
|
const port = addr.port;
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
//
|
|
282
|
-
//
|
|
279
|
+
// Inherit HTTPS_PROXY so claude can reach sso.anthropic.com
|
|
280
|
+
// for OAuth refresh if its cached token is near expiry —
|
|
281
|
+
// same reason gemini-bootstrap keeps it. NO_PROXY=127.0.0.1
|
|
282
|
+
// keeps claude's call to our local listener from tunneling
|
|
283
|
+
// through the proxy.
|
|
283
284
|
const childEnv = {
|
|
284
285
|
...process.env,
|
|
285
286
|
ANTHROPIC_BASE_URL: `http://127.0.0.1:${port}`,
|
|
286
287
|
NO_PROXY: "127.0.0.1,localhost",
|
|
287
288
|
no_proxy: "127.0.0.1,localhost",
|
|
288
289
|
};
|
|
289
|
-
delete childEnv.HTTPS_PROXY;
|
|
290
|
-
delete childEnv.https_proxy;
|
|
291
|
-
delete childEnv.HTTP_PROXY;
|
|
292
|
-
delete childEnv.http_proxy;
|
|
293
|
-
delete childEnv.ALL_PROXY;
|
|
294
|
-
delete childEnv.all_proxy;
|
|
295
290
|
// Launch `claude -p "hi"` — same command the manual capture
|
|
296
291
|
// script documents. `-p` is non-interactive print mode; in
|
|
297
292
|
// recent claude versions it skips the trust dialog for
|
|
@@ -152,20 +152,18 @@ export async function bootstrapGeminiFingerprint(opts = {}) {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
}, 500);
|
|
155
|
-
//
|
|
156
|
-
//
|
|
155
|
+
// DO inherit HTTPS_PROXY — gemini CLI needs it to reach
|
|
156
|
+
// oauth2.googleapis.com for token refresh (see gemini-api.ts
|
|
157
|
+
// line 184). NO_PROXY=127.0.0.1 makes gemini bypass the proxy
|
|
158
|
+
// for our local capture listener, so HTTPS_PROXY + NO_PROXY
|
|
159
|
+
// together give gemini proxy access to Google AND direct
|
|
160
|
+
// access to our listener.
|
|
157
161
|
const childEnv = {
|
|
158
162
|
...process.env,
|
|
159
163
|
CODE_ASSIST_ENDPOINT: `http://127.0.0.1:${CAPTURE_PORT}`,
|
|
160
164
|
NO_PROXY: "127.0.0.1,localhost",
|
|
161
165
|
no_proxy: "127.0.0.1,localhost",
|
|
162
166
|
};
|
|
163
|
-
delete childEnv.HTTPS_PROXY;
|
|
164
|
-
delete childEnv.https_proxy;
|
|
165
|
-
delete childEnv.HTTP_PROXY;
|
|
166
|
-
delete childEnv.http_proxy;
|
|
167
|
-
delete childEnv.ALL_PROXY;
|
|
168
|
-
delete childEnv.all_proxy;
|
|
169
167
|
geminiChild = spawn("gemini", ["-p", "hi"], {
|
|
170
168
|
env: childEnv,
|
|
171
169
|
stdio: ["ignore", "pipe", "pipe"],
|