clawmoney 0.15.50 → 0.15.52
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.
- package/dist/commands/relay-setup.js +28 -8
- package/package.json +1 -1
|
@@ -221,18 +221,38 @@ export async function relaySetupCommand() {
|
|
|
221
221
|
// Only claude is wired up for now; codex/gemini will follow the
|
|
222
222
|
// same pattern.
|
|
223
223
|
if (selectedClis.includes("claude") && !hasClaudeFingerprint()) {
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
|
|
224
|
+
// Spinner animation only works cleanly on real TTYs where `\r`
|
|
225
|
+
// cursor-return is honored. Claude Code's bash tool, CI pipes,
|
|
226
|
+
// and `script`-style wrappers render each spinner frame as a
|
|
227
|
+
// new line, which stacks 100+ frames over a 10-15s bootstrap.
|
|
228
|
+
// Fall back to static log steps in those contexts.
|
|
229
|
+
const isTty = Boolean(process.stdout.isTTY);
|
|
230
|
+
const bootSpin = isTty ? spinner() : null;
|
|
231
|
+
if (bootSpin) {
|
|
232
|
+
bootSpin.start("Capturing Claude fingerprint (runs `claude -p hi` once, ~5-15s)");
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
log.step("Capturing Claude fingerprint (runs `claude -p hi` once, ~5-15s)...");
|
|
236
|
+
}
|
|
229
237
|
try {
|
|
230
238
|
const fp = await bootstrapClaudeFingerprint({ timeoutMs: 45_000 });
|
|
231
|
-
|
|
232
|
-
chalk.dim(`(device=${fp.device_id.slice(0, 8)}… cc_version=${fp.cc_version || "?"})`)
|
|
239
|
+
const successMsg = `Claude fingerprint captured ` +
|
|
240
|
+
chalk.dim(`(device=${fp.device_id.slice(0, 8)}… cc_version=${fp.cc_version || "?"})`);
|
|
241
|
+
if (bootSpin) {
|
|
242
|
+
bootSpin.stop(`${chalk.green("✓")} ${successMsg}`);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
log.success(successMsg);
|
|
246
|
+
}
|
|
233
247
|
}
|
|
234
248
|
catch (err) {
|
|
235
|
-
|
|
249
|
+
const errMsg = `Claude fingerprint capture failed: ${err.message}`;
|
|
250
|
+
if (bootSpin) {
|
|
251
|
+
bootSpin.stop(chalk.yellow(`⚠ ${errMsg}`));
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
log.warn(errMsg);
|
|
255
|
+
}
|
|
236
256
|
log.message(chalk.dim("Claude providers will be registered but the daemon won't be able " +
|
|
237
257
|
"to serve them until you bootstrap the fingerprint. " +
|
|
238
258
|
"Make sure `claude` is installed and logged in, then re-run setup."));
|