free-coding-models 0.3.14 → 0.3.16
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 +8 -0
- package/package.json +1 -1
- package/sources.js +2 -0
- package/src/render-table.js +13 -19
- package/src/ui-config.js +49 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
+
## 0.3.15
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **GLM-4.7-Flash and GLM-4.5-Flash models**: Added ZAI's free coding models GLM-4.7-Flash and GLM-4.5-Flash to the ZAI provider. Both models are rated S tier with 59.2% SWE-bench scores and are completely free with unlimited API access.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Added vertical column separators (gentle dark orange) for clearer column separation and removed the horizontal separator line in the main TUI.
|
|
12
|
+
|
|
5
13
|
## 0.3.14
|
|
6
14
|
|
|
7
15
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.16",
|
|
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",
|
package/sources.js
CHANGED
|
@@ -248,8 +248,10 @@ export const zai = [
|
|
|
248
248
|
// ── S+ tier — SWE-bench Verified ≥70% ──
|
|
249
249
|
['zai/glm-5', 'GLM-5', 'S+', '77.8%', '128k'],
|
|
250
250
|
['zai/glm-4.7', 'GLM-4.7', 'S+', '73.8%', '200k'],
|
|
251
|
+
['zai/glm-4.7-flash', 'GLM-4.7-Flash', 'S', '59.2%', '200k'],
|
|
251
252
|
['zai/glm-4.5', 'GLM-4.5', 'S+', '75.0%', '128k'],
|
|
252
253
|
['zai/glm-4.5-air', 'GLM-4.5-Air', 'S+', '72.0%', '128k'],
|
|
254
|
+
['zai/glm-4.5-flash', 'GLM-4.5-Flash', 'S', '59.2%', '128k'],
|
|
253
255
|
['zai/glm-4.6', 'GLM-4.6', 'S+', '70.0%', '128k'],
|
|
254
256
|
]
|
|
255
257
|
|
package/src/render-table.js
CHANGED
|
@@ -54,6 +54,16 @@ const ACTIVE_FILTER_BG_BY_TIER = {
|
|
|
54
54
|
'C': [186, 104, 200],
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
// 📖 Import UI configuration for consistent styling
|
|
58
|
+
import { VERTICAL_SEPARATOR, COLUMN_SPACING } from './ui-config.js';
|
|
59
|
+
|
|
60
|
+
// 📖 Column separator (vertical bar) is now defined in ui-config.js
|
|
61
|
+
// const VERTICAL_SEPARATOR = chalk.rgb(255, 140, 0).dim('│');
|
|
62
|
+
// const COL_SEP = ` ${VERTICAL_SEPARATOR} `; // Replaced by imported COLUMN_SPACING
|
|
63
|
+
|
|
64
|
+
// 📖 Column spacing is now defined in ui-config.js
|
|
65
|
+
const COL_SEP = COLUMN_SPACING;
|
|
66
|
+
|
|
57
67
|
const require = createRequire(import.meta.url)
|
|
58
68
|
const { version: LOCAL_VERSION } = require('../package.json')
|
|
59
69
|
|
|
@@ -290,25 +300,9 @@ export function renderTable(results, pendingPings, frame, cursor = null, sortCol
|
|
|
290
300
|
const tokensH_c = chalk.dim(tokensH.padEnd(W_TOKENS))
|
|
291
301
|
// 📖 Usage column removed from UI – no header or separator for it.
|
|
292
302
|
// 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 +
|
|
303
|
+
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)
|
|
304
|
+
|
|
294
305
|
|
|
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
306
|
|
|
313
307
|
if (sorted.length === 0) {
|
|
314
308
|
lines.push('')
|
|
@@ -559,7 +553,7 @@ export function renderTable(results, pendingPings, frame, cursor = null, sortCol
|
|
|
559
553
|
: chalk.dim('0'.padEnd(W_TOKENS))
|
|
560
554
|
|
|
561
555
|
// 📖 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 +
|
|
556
|
+
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
557
|
|
|
564
558
|
if (isCursor) {
|
|
565
559
|
lines.push(chalk.bgRgb(155, 55, 135)(row))
|
package/src/ui-config.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file ui-config.js
|
|
3
|
+
* @description Central configuration for TUI visual styling.
|
|
4
|
+
*
|
|
5
|
+
* @details
|
|
6
|
+
* This module centralizes all visual styling constants for the TUI interface.
|
|
7
|
+
* By keeping colors, separators, and spacing in one place, it becomes easy to
|
|
8
|
+
* customize the look and feel without modifying rendering logic.
|
|
9
|
+
*
|
|
10
|
+
* 📖 Configuration:
|
|
11
|
+
* - BORDER_COLOR: Color of column separators (vertical bars)
|
|
12
|
+
* - BORDER_STYLE: Style of separators (dim, bold, etc.)
|
|
13
|
+
* - HORIZONTAL_SEPARATOR: Character used for horizontal lines
|
|
14
|
+
* - HORIZONTAL_STYLE: Style of horizontal lines
|
|
15
|
+
* - COLUMN_SPACING: Space between columns
|
|
16
|
+
*
|
|
17
|
+
* @see render-table.js - uses these constants for rendering
|
|
18
|
+
* @see tier-colors.js - for tier-specific color definitions
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import chalk from 'chalk';
|
|
22
|
+
|
|
23
|
+
// 📖 Column separator (vertical bar) configuration
|
|
24
|
+
export const BORDER_COLOR = chalk.rgb(255, 140, 0); // Gentle dark orange
|
|
25
|
+
export const BORDER_STYLE = 'dim'; // Options: 'dim', 'bold', 'underline', 'inverse', etc.
|
|
26
|
+
export const VERTICAL_SEPARATOR = BORDER_COLOR[BORDER_STYLE]('│');
|
|
27
|
+
|
|
28
|
+
// 📖 Horizontal separator configuration
|
|
29
|
+
export const HORIZONTAL_SEPARATOR = '─'; // Unicode horizontal line
|
|
30
|
+
export const HORIZONTAL_STYLE = 'dim'; // Options: 'dim', 'bold', etc.
|
|
31
|
+
export const HORIZONTAL_LINE = chalk[HORIZONTAL_STYLE](HORIZONTAL_SEPARATOR);
|
|
32
|
+
|
|
33
|
+
// 📖 Column spacing configuration
|
|
34
|
+
export const COLUMN_SPACING = ` ${VERTICAL_SEPARATOR} `; // Space around vertical separator
|
|
35
|
+
|
|
36
|
+
// 📖 Optional: Add more UI styling constants here as needed
|
|
37
|
+
export const TABLE_PADDING = 1; // Padding around table edges
|
|
38
|
+
|
|
39
|
+
// 📖 Export all constants for easy import
|
|
40
|
+
export default {
|
|
41
|
+
BORDER_COLOR,
|
|
42
|
+
BORDER_STYLE,
|
|
43
|
+
VERTICAL_SEPARATOR,
|
|
44
|
+
HORIZONTAL_SEPARATOR,
|
|
45
|
+
HORIZONTAL_STYLE,
|
|
46
|
+
HORIZONTAL_LINE,
|
|
47
|
+
COLUMN_SPACING,
|
|
48
|
+
TABLE_PADDING
|
|
49
|
+
};
|