rlm-cli 0.2.6 → 0.2.8
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/dist/interactive.js +50 -3
- package/package.json +1 -1
package/dist/interactive.js
CHANGED
|
@@ -464,6 +464,51 @@ function displaySubQueryResult(info) {
|
|
|
464
464
|
console.log(` ${c.magenta}└─${c.reset} ${c.dim}${elapsed}s · ${formatSize(info.resultLength)} received${c.reset}`);
|
|
465
465
|
}
|
|
466
466
|
// ── Available models list ────────────────────────────────────────────────────
|
|
467
|
+
/** Filter out deprecated, retired, and non-chat models (Feb 2026). */
|
|
468
|
+
const EXCLUDED_MODEL_PATTERNS = [
|
|
469
|
+
// ── Anthropic retired ──
|
|
470
|
+
/^claude-3-haiku/, // retired Feb 19, 2026
|
|
471
|
+
/^claude-3-sonnet/, // long retired
|
|
472
|
+
/^claude-3-opus/, // long retired
|
|
473
|
+
/^claude-3-5-sonnet/, // retired Jan 5, 2026
|
|
474
|
+
// ── OpenAI legacy / specialized ──
|
|
475
|
+
/^gpt-4$/, // superseded by gpt-4.1
|
|
476
|
+
/^gpt-4-turbo/, // superseded by gpt-4.1
|
|
477
|
+
/^gpt-4o-2024-/, // dated snapshots
|
|
478
|
+
/-chat-latest$/, // chat variants (use base model)
|
|
479
|
+
/^codex-/, // code-only
|
|
480
|
+
/-codex/, // all codex variants
|
|
481
|
+
// ── Google retired / deprecated ──
|
|
482
|
+
/^gemini-1\.5-/, // all 1.5 retired
|
|
483
|
+
/^gemini-3-pro-preview$/, // deprecated, shuts down Mar 9, 2026
|
|
484
|
+
/^gemini-live-/, // real-time streaming, not standard chat
|
|
485
|
+
// ── xAI non-chat ──
|
|
486
|
+
/^grok-beta$/,
|
|
487
|
+
/^grok-vision-beta$/,
|
|
488
|
+
/^grok-2-vision/,
|
|
489
|
+
/^grok-2-1212$/, // dated snapshot
|
|
490
|
+
// ── Mistral legacy ──
|
|
491
|
+
/^open-mistral-7b$/,
|
|
492
|
+
/^open-mixtral-/,
|
|
493
|
+
/^mistral-nemo$/,
|
|
494
|
+
// ── Dated snapshots / previews ──
|
|
495
|
+
/preview-\d{2}-\d{2}$/, // e.g. preview-04-17
|
|
496
|
+
/preview-\d{2}-\d{4}$/, // e.g. preview-09-2025
|
|
497
|
+
/^labs-/,
|
|
498
|
+
/-customtools$/,
|
|
499
|
+
/deep-research$/,
|
|
500
|
+
// Mistral dated snapshots (use -latest instead)
|
|
501
|
+
/^mistral-large-\d{4}$/,
|
|
502
|
+
/^mistral-medium-\d{4}$/,
|
|
503
|
+
/^mistral-small-\d{4}$/,
|
|
504
|
+
/^devstral-\d{4}$/,
|
|
505
|
+
/^devstral-\w+-\d{4}$/,
|
|
506
|
+
// Groq dated snapshots
|
|
507
|
+
/kimi-k2-instruct-\d+$/,
|
|
508
|
+
];
|
|
509
|
+
function isModelExcluded(modelId) {
|
|
510
|
+
return EXCLUDED_MODEL_PATTERNS.some((p) => p.test(modelId));
|
|
511
|
+
}
|
|
467
512
|
/** Collect models from providers that have an API key set. */
|
|
468
513
|
function getAvailableModels() {
|
|
469
514
|
const items = [];
|
|
@@ -472,7 +517,8 @@ function getAvailableModels() {
|
|
|
472
517
|
if (!process.env[key] && provider !== detectProvider())
|
|
473
518
|
continue;
|
|
474
519
|
for (const m of getModels(provider)) {
|
|
475
|
-
|
|
520
|
+
if (!isModelExcluded(m.id))
|
|
521
|
+
items.push({ id: m.id, provider });
|
|
476
522
|
}
|
|
477
523
|
}
|
|
478
524
|
return items;
|
|
@@ -484,7 +530,8 @@ function getModelsForProvider(providerName) {
|
|
|
484
530
|
if (provider !== providerName)
|
|
485
531
|
continue;
|
|
486
532
|
for (const m of getModels(provider)) {
|
|
487
|
-
|
|
533
|
+
if (!isModelExcluded(m.id))
|
|
534
|
+
items.push({ id: m.id, provider });
|
|
488
535
|
}
|
|
489
536
|
}
|
|
490
537
|
return items;
|
|
@@ -731,7 +778,7 @@ async function interactive() {
|
|
|
731
778
|
// Validate env
|
|
732
779
|
if (!hasAnyApiKey()) {
|
|
733
780
|
printBanner();
|
|
734
|
-
console.log(` ${c.
|
|
781
|
+
console.log(` ${c.bold}Welcome! Let's get you set up.${c.reset}\n`);
|
|
735
782
|
const setupRl = readline.createInterface({ input: stdin, output: stdout, terminal: true });
|
|
736
783
|
let setupDone = false;
|
|
737
784
|
while (!setupDone) {
|