free-coding-models 0.1.33 β 0.1.34
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/bin/free-coding-models.js +6 -6
- package/lib/utils.js +10 -10
- package/package.json +1 -1
|
@@ -425,7 +425,7 @@ function renderTable(results, pendingPings, frame, cursor = null, sortColumn = '
|
|
|
425
425
|
const sweH = sortColumn === 'swe' ? dir + ' SWE%' : 'SWE%'
|
|
426
426
|
const pingH = sortColumn === 'ping' ? dir + ' Latest Ping' : 'Latest Ping'
|
|
427
427
|
const avgH = sortColumn === 'avg' ? dir + ' Avg Ping' : 'Avg Ping'
|
|
428
|
-
const
|
|
428
|
+
const healthH = sortColumn === 'condition' ? dir + ' Health' : 'Health'
|
|
429
429
|
const verdictH = sortColumn === 'verdict' ? dir + ' Verdict' : 'Verdict'
|
|
430
430
|
const uptimeH = sortColumn === 'uptime' ? dir + ' Up%' : 'Up%'
|
|
431
431
|
|
|
@@ -447,12 +447,12 @@ function renderTable(results, pendingPings, frame, cursor = null, sortColumn = '
|
|
|
447
447
|
const sweH_c = sortColumn === 'swe' ? chalk.bold.cyan(sweH.padEnd(W_SWE)) : colorFirst(sweH, W_SWE)
|
|
448
448
|
const pingH_c = sortColumn === 'ping' ? chalk.bold.cyan(pingH.padEnd(W_PING)) : colorFirst('Latest Ping', W_PING)
|
|
449
449
|
const avgH_c = sortColumn === 'avg' ? chalk.bold.cyan(avgH.padEnd(W_AVG)) : colorFirst('Avg Ping', W_AVG)
|
|
450
|
-
const
|
|
450
|
+
const healthH_c = sortColumn === 'condition' ? chalk.bold.cyan(healthH.padEnd(W_STATUS)) : colorFirst('Health', W_STATUS)
|
|
451
451
|
const verdictH_c = sortColumn === 'verdict' ? chalk.bold.cyan(verdictH.padEnd(W_VERDICT)) : colorFirst(verdictH, W_VERDICT)
|
|
452
452
|
const uptimeH_c = sortColumn === 'uptime' ? chalk.bold.cyan(uptimeH.padStart(W_UPTIME)) : colorFirst(uptimeH, W_UPTIME, chalk.green)
|
|
453
453
|
|
|
454
454
|
// π Header with proper spacing
|
|
455
|
-
lines.push(' ' + rankH_c + ' ' + tierH_c + ' ' + originH_c + ' ' + modelH_c + ' ' + sweH_c + ' ' + pingH_c + ' ' + avgH_c + ' ' +
|
|
455
|
+
lines.push(' ' + rankH_c + ' ' + tierH_c + ' ' + originH_c + ' ' + modelH_c + ' ' + sweH_c + ' ' + pingH_c + ' ' + avgH_c + ' ' + healthH_c + ' ' + verdictH_c + ' ' + uptimeH_c)
|
|
456
456
|
|
|
457
457
|
// π Separator line
|
|
458
458
|
lines.push(
|
|
@@ -621,7 +621,7 @@ function renderTable(results, pendingPings, frame, cursor = null, sortColumn = '
|
|
|
621
621
|
: mode === 'opencode-desktop'
|
|
622
622
|
? chalk.rgb(0, 200, 255)('EnterβOpenDesktop')
|
|
623
623
|
: chalk.rgb(0, 200, 255)('EnterβOpenCode')
|
|
624
|
-
lines.push(chalk.dim(` ββ Navigate β’ `) + actionHint + chalk.dim(` β’ R/T/O/M/L/A/S/
|
|
624
|
+
lines.push(chalk.dim(` ββ Navigate β’ `) + actionHint + chalk.dim(` β’ R/T/O/M/L/A/S/H/V/U Sort β’ Wβ/Xβ Interval (${intervalSec}s) β’ T Tier β’ Z Mode β’ Ctrl+C Exit`))
|
|
625
625
|
lines.push('')
|
|
626
626
|
lines.push(chalk.dim(' Made with ') + 'π & β' + chalk.dim(' by ') + '\x1b]8;;https://github.com/vava-nessa\x1b\\vava-nessa\x1b]8;;\x1b\\' + chalk.dim(' β’ ') + 'π¬ ' + chalk.cyanBright('\x1b]8;;https://discord.gg/WKA3TwYVuZ\x1b\\Join Free-Coding-Models Discord!\x1b]8;;\x1b\\') + chalk.dim(' β’ ') + 'β ' + '\x1b]8;;https://github.com/vava-nessa/free-coding-models\x1b\\Read the docs on GitHub\x1b]8;;\x1b\\')
|
|
627
627
|
lines.push('')
|
|
@@ -1194,10 +1194,10 @@ async function main() {
|
|
|
1194
1194
|
const onKeyPress = async (str, key) => {
|
|
1195
1195
|
if (!key) return
|
|
1196
1196
|
|
|
1197
|
-
// π Sorting keys: R=rank, T=tier, O=origin, M=model, L=latest ping, A=avg ping, S=SWE-bench,
|
|
1197
|
+
// π Sorting keys: R=rank, T=tier, O=origin, M=model, L=latest ping, A=avg ping, S=SWE-bench, H=health, V=verdict, U=uptime
|
|
1198
1198
|
const sortKeys = {
|
|
1199
1199
|
'r': 'rank', 't': 'tier', 'o': 'origin', 'm': 'model',
|
|
1200
|
-
'l': 'ping', 'a': 'avg', 's': 'swe', '
|
|
1200
|
+
'l': 'ping', 'a': 'avg', 's': 'swe', 'h': 'condition', 'v': 'verdict', 'u': 'uptime'
|
|
1201
1201
|
}
|
|
1202
1202
|
|
|
1203
1203
|
if (sortKeys[key.name]) {
|
package/lib/utils.js
CHANGED
|
@@ -129,16 +129,16 @@ export const getUptime = (r) => {
|
|
|
129
129
|
// π Returns a NEW array β never mutates the original (important for React-style re-renders).
|
|
130
130
|
//
|
|
131
131
|
// π Supported columns (matching the keyboard shortcuts in the TUI):
|
|
132
|
-
// - 'rank'
|
|
133
|
-
// - 'tier'
|
|
134
|
-
// - 'origin'
|
|
135
|
-
// - 'model'
|
|
136
|
-
// - 'ping'
|
|
137
|
-
// - 'avg'
|
|
138
|
-
// - 'swe'
|
|
139
|
-
// - 'condition'(
|
|
140
|
-
// - 'verdict'
|
|
141
|
-
// - 'uptime'
|
|
132
|
+
// - 'rank' (R key) β original index from sources.js
|
|
133
|
+
// - 'tier' (T key) β tier hierarchy (S+ first, C last)
|
|
134
|
+
// - 'origin' (O key) β provider name (all NIM for now, future-proofed)
|
|
135
|
+
// - 'model' (M key) β alphabetical by display label
|
|
136
|
+
// - 'ping' (L key) β last ping latency (only successful ones count)
|
|
137
|
+
// - 'avg' (A key) β average latency across all successful pings
|
|
138
|
+
// - 'swe' (S key) β SWE-bench score (higher is better)
|
|
139
|
+
// - 'condition' (H key) β health status (alphabetical)
|
|
140
|
+
// - 'verdict' (V key) β verdict order (Perfect β Pending)
|
|
141
|
+
// - 'uptime' (U key) β uptime percentage
|
|
142
142
|
//
|
|
143
143
|
// π sortDirection 'asc' = ascending (smallest first), 'desc' = descending (largest first)
|
|
144
144
|
export const sortResults = (results, sortColumn, sortDirection) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
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",
|