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
- // Shorter timeout on gemini recent CLI versions are flaky
226
- // under our subprocess-intercept approach. 25s is enough for
227
- // a working capture; beyond that we fall through to the
228
- // manual instruction path cleanly.
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
- }, tickEvery);
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
- // Build child env: inherit parent's env but strip HTTPS_PROXY
280
- // entries so claude doesn't try to tunnel its call to
281
- // http://127.0.0.1:<port> through the upstream proxy. Set
282
- // NO_PROXY=localhost as belt-and-braces.
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
- // Strip upstream proxy vars from the gemini subprocess so it
156
- // talks to 127.0.0.1:8789 directly. Also set NO_PROXY.
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"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawmoney",
3
- "version": "0.15.57",
3
+ "version": "0.15.58",
4
4
  "description": "ClawMoney CLI -- Earn rewards with your AI agent",
5
5
  "type": "module",
6
6
  "bin": {