free-coding-models 0.3.14 → 0.3.15

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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ---
4
4
 
5
+ ## 0.3.15
6
+
7
+ ### Changed
8
+ - Added vertical column separators (gentle dark orange) for clearer column separation and removed the horizontal separator line in the main TUI.
9
+
5
10
  ## 0.3.14
6
11
 
7
12
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-coding-models",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "description": "Find the fastest coding LLM models in seconds — ping free models from multiple providers, pick the best one for OpenCode, Cursor, or any AI coding assistant.",
5
5
  "keywords": [
6
6
  "nvidia",
@@ -54,6 +54,10 @@ const ACTIVE_FILTER_BG_BY_TIER = {
54
54
  'C': [186, 104, 200],
55
55
  }
56
56
 
57
+ // 📖 Vertical separator for columns – gentle dark orange
58
+ const VERTICAL_SEPARATOR = chalk.rgb(255, 140, 0).dim('│');
59
+ const COL_SEP = ` ${VERTICAL_SEPARATOR} `;
60
+
57
61
  const require = createRequire(import.meta.url)
58
62
  const { version: LOCAL_VERSION } = require('../package.json')
59
63
 
@@ -290,25 +294,9 @@ export function renderTable(results, pendingPings, frame, cursor = null, sortCol
290
294
  const tokensH_c = chalk.dim(tokensH.padEnd(W_TOKENS))
291
295
  // 📖 Usage column removed from UI – no header or separator for it.
292
296
  // Header without Usage column (column order: Rank, Tier, SWE%, CTX, Model, Provider, Latest Ping, Avg Ping, Health, Verdict, Stability, Up%, Used)
293
- lines.push(' ' + rankH_c + ' ' + tierH_c + ' ' + sweH_c + ' ' + ctxH_c + ' ' + modelH_c + ' ' + originH_c + ' ' + pingH_c + ' ' + avgH_c + ' ' + healthH_c + ' ' + verdictH_c + ' ' + stabH_c + ' ' + uptimeH_c + ' ' + tokensH_c)
297
+ lines.push(' ' + rankH_c + COL_SEP + tierH_c + COL_SEP + sweH_c + COL_SEP + ctxH_c + COL_SEP + modelH_c + COL_SEP + originH_c + COL_SEP + pingH_c + COL_SEP + avgH_c + COL_SEP + healthH_c + COL_SEP + verdictH_c + COL_SEP + stabH_c + COL_SEP + uptimeH_c + COL_SEP + tokensH_c)
298
+
294
299
 
295
- // Separator line without Usage column
296
- lines.push(
297
- ' ' +
298
- chalk.dim('─'.repeat(W_RANK)) + ' ' +
299
- chalk.dim('─'.repeat(W_TIER)) + ' ' +
300
- chalk.dim('─'.repeat(W_SWE)) + ' ' +
301
- chalk.dim('─'.repeat(W_CTX)) + ' ' +
302
- '─'.repeat(W_MODEL) + ' ' +
303
- '─'.repeat(W_SOURCE) + ' ' +
304
- chalk.dim('─'.repeat(W_PING)) + ' ' +
305
- chalk.dim('─'.repeat(W_AVG)) + ' ' +
306
- chalk.dim('─'.repeat(W_STATUS)) + ' ' +
307
- chalk.dim('─'.repeat(W_VERDICT)) + ' ' +
308
- chalk.dim('─'.repeat(W_STAB)) + ' ' +
309
- chalk.dim('─'.repeat(W_UPTIME)) + ' ' +
310
- chalk.dim('─'.repeat(W_TOKENS))
311
- )
312
300
 
313
301
  if (sorted.length === 0) {
314
302
  lines.push('')
@@ -559,7 +547,7 @@ export function renderTable(results, pendingPings, frame, cursor = null, sortCol
559
547
  : chalk.dim('0'.padEnd(W_TOKENS))
560
548
 
561
549
  // 📖 Build row with double space between columns (order: Rank, Tier, SWE%, CTX, Model, Provider, Latest Ping, Avg Ping, Health, Verdict, Stability, Up%, Used)
562
- const row = ' ' + num + ' ' + tier + ' ' + sweCell + ' ' + ctxCell + ' ' + nameCell + ' ' + sourceCell + ' ' + pingCell + ' ' + avgCell + ' ' + status + ' ' + speedCell + ' ' + stabCell + ' ' + uptimeCell + ' ' + tokensCell
550
+ const row = ' ' + num + COL_SEP + tier + COL_SEP + sweCell + COL_SEP + ctxCell + COL_SEP + nameCell + COL_SEP + sourceCell + COL_SEP + pingCell + COL_SEP + avgCell + COL_SEP + status + COL_SEP + speedCell + COL_SEP + stabCell + COL_SEP + uptimeCell + COL_SEP + tokensCell
563
551
 
564
552
  if (isCursor) {
565
553
  lines.push(chalk.bgRgb(155, 55, 135)(row))