gbos 1.2.7 → 1.2.9
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/images/logo.txt +25 -0
- package/package.json +1 -1
- package/src/commands/logo.js +4 -4
- package/src/lib/display.js +36 -23
package/images/logo.txt
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
2
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
3
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
4
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
5
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
6
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
7
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
8
|
+
@@@@@@@@@@@@@@@@@@@@@@@@&&%%%&@@&@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
9
|
+
@@@@@@@@@@@@@@@@@@@#%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
10
|
+
@@@@@@@@@@@@@@%@#%%%%%%%%%%%%%%%%%%%%%#@@@@@@@@@@@@@@@@@@@@@@@@#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
11
|
+
@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%@@@&@@@@@@@@@@@@@@@@@@@@#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
12
|
+
@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%&@@@@@@@#%%%%%%%%%%%#@@%#%%%%%%%%%%%%@@@@@@@#%%%%%%%%#@@@@@%%%%%%%%%#@@@@@@@@@%%%@@@@@%%%%%%%%%%%@@@@@@@@@@@@@@
|
|
13
|
+
@@@@@@@@@@@@%%%%%%%%%%%%%%@@%%%%%%%@@%%@@@@@@%%%%&@@@@&#%%%%@@@#%%%%@@@@@@%%%&@@@#%%%%@@@@@%%%%@@&%%%@@@@@&&@@@@@@@@@%%%@@@@%%%%@%@@@&%%%&@@@@@@@@@@@@
|
|
14
|
+
@@@@@@@@@@@@%%%%%%%%%%%%%%@@&%%%%%%%%%%&@@@@@%%%@@@@@@@@&%%%@@@#%%&@@@@@@@@%%%#@&%%%@@@@@@@&%%%&@@%%%%%%%&@@@@@@@@@@@%%%@@@#%%%@@@@@@@@%%%%@@@@@@@@@@@
|
|
15
|
+
@@@@@@@@@@@@%%%%%%%%%%%%%%%@@@%%%%%%%%%&@@@@&%%%%@@@@@@@%%%%@@@#%%%@@@@@@@@%%%@@&%%%@@@@@@@@%%%&@@@@@@%%%%%%%@@@@@@@@%%%@@@%%%#@@@@@@@%%%%@@@@@@@@@@@@
|
|
16
|
+
@@@@@@@@@@@@#%%%%%%%%%%%%%%%%@@@#%%%%%%&@@@@@&%%%#@@@@&%%%%%@@@#%%%%#@@@@#%%%&@@@&%%%%@@@@&%%%%@@@%%%@@@@%%%&@@%%%@@@%%%@@@&%%%%&@@@@#%%%&@@@@@@@@@@@@
|
|
17
|
+
@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%@@@%%%%%%@@@@@@@@@%%%%%%%%&%%#@@@#%%%&%%%%%%%&@@@@@@@&%%%%%%%%%@@@@@&%%%%%%%%@@@@%%%&@@%%%@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@
|
|
18
|
+
@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%@@@&%%%%%@@@@@@@@@@@@@@@@@%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
19
|
+
@@@@@@@@@@@@@@@@#%%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%#%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
20
|
+
@@@@@@@@@@@@@@@@@@@#%%%%%%%%%#@@@@@@@@@@@@@@@@@@&%#%%#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
21
|
+
@@@@@@@@@@@@@@@@@@@@@@@@%&%##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
22
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
23
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
24
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
25
|
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
package/package.json
CHANGED
package/src/commands/logo.js
CHANGED
|
@@ -4,16 +4,16 @@ const { displayImage, getTerminalWidth } = require('../lib/display');
|
|
|
4
4
|
async function logoCommand() {
|
|
5
5
|
const logoPath = path.join(__dirname, '../../images/logo.png');
|
|
6
6
|
const terminalWidth = getTerminalWidth();
|
|
7
|
-
const targetWidth = Math.max(
|
|
7
|
+
const targetWidth = Math.max(22, Math.floor(terminalWidth * 0.2));
|
|
8
8
|
|
|
9
9
|
await displayImage(logoPath, {
|
|
10
10
|
width: targetWidth,
|
|
11
11
|
fallbackWidth: targetWidth,
|
|
12
|
-
fallbackHeight:
|
|
12
|
+
fallbackHeight: 7,
|
|
13
13
|
sharp: false,
|
|
14
14
|
crop: true,
|
|
15
|
-
alphaThreshold:
|
|
16
|
-
cropAlphaThreshold:
|
|
15
|
+
alphaThreshold: 100,
|
|
16
|
+
cropAlphaThreshold: 100,
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
|
package/src/lib/display.js
CHANGED
|
@@ -207,42 +207,55 @@ function imageToPixels(imagePath, targetWidth = 24, targetHeight = 5, options =
|
|
|
207
207
|
const bottomCov = bottomRegion.coverage;
|
|
208
208
|
|
|
209
209
|
// Both empty
|
|
210
|
-
if (topCov < 0.
|
|
210
|
+
if (topCov < 0.05 && bottomCov < 0.05) {
|
|
211
211
|
line += ' ';
|
|
212
212
|
continue;
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
//
|
|
216
|
-
if (topCov < 0.
|
|
215
|
+
// Very light coverage on both - use dots for smooth curves
|
|
216
|
+
if (topCov < 0.2 && bottomCov < 0.2) {
|
|
217
217
|
const avgCov = (topCov + bottomCov) / 2;
|
|
218
218
|
const r = topCov > bottomCov ? topRegion.r : bottomRegion.r;
|
|
219
219
|
const g = topCov > bottomCov ? topRegion.g : bottomRegion.g;
|
|
220
220
|
const b = topCov > bottomCov ? topRegion.b : bottomRegion.b;
|
|
221
|
-
if (avgCov < 0.
|
|
221
|
+
if (avgCov < 0.08) {
|
|
222
222
|
line += fg(r, g, b) + '·' + RESET;
|
|
223
|
-
} else {
|
|
223
|
+
} else if (avgCov < 0.15) {
|
|
224
224
|
line += fg(r, g, b) + '░' + RESET;
|
|
225
|
+
} else {
|
|
226
|
+
line += fg(r, g, b) + '▒' + RESET;
|
|
225
227
|
}
|
|
226
228
|
continue;
|
|
227
229
|
}
|
|
228
230
|
|
|
229
|
-
// Light top, solid bottom
|
|
230
|
-
if (topCov < 0.
|
|
231
|
-
if (topCov
|
|
232
|
-
|
|
231
|
+
// Light top (edge), more solid bottom
|
|
232
|
+
if (topCov < 0.4 && bottomCov >= 0.2) {
|
|
233
|
+
if (topCov < 0.1) {
|
|
234
|
+
line += fg(bottomRegion.r, bottomRegion.g, bottomRegion.b) + LOWER_HALF + RESET;
|
|
235
|
+
} else if (topCov < 0.2) {
|
|
236
|
+
// Light edge on top - use lower block (curve effect)
|
|
233
237
|
line += fg(bottomRegion.r, bottomRegion.g, bottomRegion.b) + '▄' + RESET;
|
|
234
238
|
} else {
|
|
235
|
-
|
|
239
|
+
// Partial coverage - blend
|
|
240
|
+
line += fg(topRegion.r, topRegion.g, topRegion.b) +
|
|
241
|
+
bg(bottomRegion.r, bottomRegion.g, bottomRegion.b) +
|
|
242
|
+
UPPER_HALF + RESET;
|
|
236
243
|
}
|
|
237
244
|
continue;
|
|
238
245
|
}
|
|
239
246
|
|
|
240
|
-
//
|
|
241
|
-
if (topCov >= 0.
|
|
242
|
-
if (bottomCov
|
|
247
|
+
// More solid top, light bottom (edge)
|
|
248
|
+
if (topCov >= 0.2 && bottomCov < 0.4) {
|
|
249
|
+
if (bottomCov < 0.1) {
|
|
250
|
+
line += fg(topRegion.r, topRegion.g, topRegion.b) + UPPER_HALF + RESET;
|
|
251
|
+
} else if (bottomCov < 0.2) {
|
|
252
|
+
// Light edge on bottom - use upper block (curve effect)
|
|
243
253
|
line += fg(topRegion.r, topRegion.g, topRegion.b) + '▀' + RESET;
|
|
244
254
|
} else {
|
|
245
|
-
|
|
255
|
+
// Partial coverage - blend
|
|
256
|
+
line += fg(topRegion.r, topRegion.g, topRegion.b) +
|
|
257
|
+
bg(bottomRegion.r, bottomRegion.g, bottomRegion.b) +
|
|
258
|
+
UPPER_HALF + RESET;
|
|
246
259
|
}
|
|
247
260
|
continue;
|
|
248
261
|
}
|
|
@@ -298,16 +311,16 @@ function displayLogoWithDetails(details = null) {
|
|
|
298
311
|
const logoPath = path.join(__dirname, '../../images/logo.png');
|
|
299
312
|
const version = require('../../package.json').version;
|
|
300
313
|
|
|
301
|
-
// Render logo at ~
|
|
302
|
-
let logoLines = imageToPixels(logoPath,
|
|
303
|
-
alphaThreshold:
|
|
314
|
+
// Render logo at ~22 chars wide, 7 rows tall with smooth curved edges
|
|
315
|
+
let logoLines = imageToPixels(logoPath, 22, 7, {
|
|
316
|
+
alphaThreshold: 100,
|
|
304
317
|
crop: true,
|
|
305
|
-
cropAlphaThreshold:
|
|
318
|
+
cropAlphaThreshold: 100,
|
|
306
319
|
sampleMode: 'coverage',
|
|
307
320
|
});
|
|
308
321
|
if (!logoLines) logoLines = COMPACT_LOGO;
|
|
309
322
|
|
|
310
|
-
const logoWidth =
|
|
323
|
+
const logoWidth = 28; // Account for escape codes
|
|
311
324
|
|
|
312
325
|
// Build right side - Claude Code style (clean lines, no boxes)
|
|
313
326
|
const rightLines = [];
|
|
@@ -342,15 +355,15 @@ function displayAuthSuccess(data) {
|
|
|
342
355
|
const logoPath = path.join(__dirname, '../../images/logo.png');
|
|
343
356
|
const version = require('../../package.json').version;
|
|
344
357
|
|
|
345
|
-
let logoLines = imageToPixels(logoPath,
|
|
346
|
-
alphaThreshold:
|
|
358
|
+
let logoLines = imageToPixels(logoPath, 22, 7, {
|
|
359
|
+
alphaThreshold: 100,
|
|
347
360
|
crop: true,
|
|
348
|
-
cropAlphaThreshold:
|
|
361
|
+
cropAlphaThreshold: 100,
|
|
349
362
|
sampleMode: 'coverage',
|
|
350
363
|
});
|
|
351
364
|
if (!logoLines) logoLines = COMPACT_LOGO;
|
|
352
365
|
|
|
353
|
-
const logoWidth =
|
|
366
|
+
const logoWidth = 28;
|
|
354
367
|
|
|
355
368
|
const rightLines = [];
|
|
356
369
|
rightLines.push(`${BOLD}${colors.purple5}gbos.io${RESET} ${DIM}v${version}${RESET}`);
|