dankgrinder 8.89.0 → 8.90.0

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.
Files changed (2) hide show
  1. package/lib/ui.js +16 -11
  2. package/package.json +1 -1
package/lib/ui.js CHANGED
@@ -39,7 +39,8 @@ const ACC_COLORS = ['#ff0054', '#ffbd00', '#390099', '#9e0059', '#ff5400', '#00f
39
39
  function getAccountColor(str) {
40
40
  let hash = 0;
41
41
  for (let i = 0; i < str.length; i++) hash = str.charCodeAt(i) + ((hash << 5) - hash);
42
- return chalk.hex(ACC_COLORS[Math.abs(hash) % ACC_COLORS.length]);
42
+ const h = Math.abs(hash) % 360;
43
+ return chalk.hsl(h, 90, 65); // 360 distinct hues, visually scaled for 10k unique accounts!
43
44
  }
44
45
 
45
46
  const STATUS_DOT = {
@@ -147,17 +148,19 @@ function render() {
147
148
  if (w.channel && !w.paused && !w.dashboardPaused) onlineCount++;
148
149
  }
149
150
 
150
- // 1. MODERN BRANDING (Vercel / Claude CLI Style)
151
- // No big flashy ASCII, just a clean sleek badge
152
- out += '\n ' + chalk.bgBlack.white.bold(' DANK GRINDER ') + chalk.gray(' v' + _version) +
153
- chalk.dim(' │ ') + chalk.cyan('● ' + getLoader() + ' Running') + '\n\n';
151
+ // 1. BIG ASCI TITLE IS BACK (With Gradient)
152
+ const titleStr = figlet.textSync('DANK GRINDER', { font: 'ANSI Shadow' });
153
+ out += chalk.bold(applyGradient(titleStr));
154
+ out += ' ' + chalk.dim('v' + _version + ' │ ') + chalk.cyan('● ' + getLoader() + ' Running') + '\n\n';
154
155
 
155
- // 2. MINIMALIST STATS
156
- const profStr = totalCoins > 0 ? '+' + formatBal(totalCoins) : '0';
156
+ // 2. MINIMALIST STATS + TREND SPARKLINE
157
+ const profStr = totalCoins > 0 ? '+' + formatBal(totalCoins) : '+0';
158
+ const graph = getSparkline();
157
159
 
158
160
  out += ' ' + chalk.cyan('◆') + chalk.bold(' ONLINE ') + chalk.white(onlineCount + ' / ' + _workers.length) + '\n';
159
161
  out += ' ' + chalk.blue('◆') + chalk.bold(' UPTIME ') + chalk.white(fmtUptime()) + '\n';
160
- out += ' ' + chalk.green('◆') + chalk.bold(' BALANCE ') + chalk.white('⏣ ' + formatBal(totalBal)) + chalk.gray(' (profit: ' + profStr + ')') + '\n';
162
+ out += ' ' + chalk.green('◆') + chalk.bold(' BALANCE ') + chalk.white('⏣ ' + formatBal(totalBal)) +
163
+ chalk.green(' (profit: ' + profStr + ')') + chalk.dim(' │ TREND: [') + graph + chalk.dim(']') + '\n';
161
164
 
162
165
  // Divider
163
166
  const divWidth = Math.min(C - 4, 100);
@@ -190,11 +193,12 @@ function render() {
190
193
  activity = chalk.gray('◎');
191
194
  }
192
195
 
193
- const numStr = chalk.dim(String(i + 1).padStart(2, '0'));
196
+ const numStr = chalk.dim('0' + (i + 1).toString().slice(-2));
194
197
  const dot = getDot(w);
195
198
 
196
199
  const nameRaw = trunc(w.username || 'Worker ' + (i+1), wCols.name - 3);
197
- const nameStr = dot.color(dot.dot) + ' ' + chalk.whiteBright(nameRaw);
200
+ // INDIVIDUAL SMART COLORS TRIGGERED HERE
201
+ const nameStr = dot.color(dot.dot) + ' ' + getAccountColor(nameRaw)(chalk.bold(nameRaw));
198
202
 
199
203
  const bVal = w.stats.balance !== undefined ? formatBal(w.stats.balance) : '—';
200
204
  const balRaw = trunc(bVal === '—' ? '—' : bVal, wCols.bal - 1);
@@ -222,11 +226,12 @@ function render() {
222
226
  out += '\n ' + chalk.dim('─'.repeat(divWidth)) + '\n\n';
223
227
 
224
228
  // 4. ACTIVITY STREAM
225
- out += chalk.gray(' ACTIVITY') + '\n';
229
+ out += chalk.gray(' ACTIVITY LOG') + '\n';
226
230
  if (_events.length === 0) {
227
231
  out += chalk.dim(' No recent events.\n');
228
232
  } else {
229
233
  _events.forEach(ev => {
234
+ // Enhanced event log with nice contrast
230
235
  out += ` ${chalk.dim(ev.ts)} ${ev.icon} ${chalk.white(ev.msg)}\n`;
231
236
  });
232
237
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dankgrinder",
3
- "version": "8.89.0",
3
+ "version": "8.90.0",
4
4
  "description": "Dank Memer automation engine — grind coins while you sleep",
5
5
  "bin": {
6
6
  "dankgrinder": "bin/dankgrinder.js"