rlm-cli 0.2.13 → 0.2.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/dist/cli.js +2 -2
- package/dist/interactive.js +19 -7
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -108,14 +108,14 @@ async function fetchUrl(url) {
|
|
|
108
108
|
// ── Main ────────────────────────────────────────────────────────────────────
|
|
109
109
|
async function main() {
|
|
110
110
|
const args = parseArgs();
|
|
111
|
-
// Resolve model by scanning all providers
|
|
111
|
+
// Resolve model by scanning all providers (stop at first match)
|
|
112
112
|
let model;
|
|
113
113
|
const allModelIds = [];
|
|
114
114
|
for (const provider of getProviders()) {
|
|
115
115
|
const providerModels = getModels(provider);
|
|
116
116
|
for (const m of providerModels) {
|
|
117
117
|
allModelIds.push(m.id);
|
|
118
|
-
if (m.id === args.modelId) {
|
|
118
|
+
if (!model && m.id === args.modelId) {
|
|
119
119
|
model = m;
|
|
120
120
|
}
|
|
121
121
|
}
|
package/dist/interactive.js
CHANGED
|
@@ -84,6 +84,7 @@ const W = Math.min(process.stdout.columns || 80, 100);
|
|
|
84
84
|
// ── Session state ───────────────────────────────────────────────────────────
|
|
85
85
|
let currentModelId = DEFAULT_MODEL;
|
|
86
86
|
let currentModel;
|
|
87
|
+
let currentProviderName = "";
|
|
87
88
|
let contextText = "";
|
|
88
89
|
let contextSource = "";
|
|
89
90
|
let queryCount = 0;
|
|
@@ -106,8 +107,8 @@ function resolveModel(modelId) {
|
|
|
106
107
|
const PROVIDER_KEYS = {
|
|
107
108
|
anthropic: "ANTHROPIC_API_KEY",
|
|
108
109
|
openai: "OPENAI_API_KEY",
|
|
109
|
-
google: "
|
|
110
|
-
"google-gemini-cli": "
|
|
110
|
+
google: "GEMINI_API_KEY",
|
|
111
|
+
"google-gemini-cli": "GEMINI_API_KEY",
|
|
111
112
|
"google-vertex": "GOOGLE_VERTEX_API_KEY",
|
|
112
113
|
groq: "GROQ_API_KEY",
|
|
113
114
|
xai: "XAI_API_KEY",
|
|
@@ -120,7 +121,7 @@ const PROVIDER_KEYS = {
|
|
|
120
121
|
const SETUP_PROVIDERS = [
|
|
121
122
|
{ name: "Anthropic", label: "Claude", env: "ANTHROPIC_API_KEY", piProvider: "anthropic" },
|
|
122
123
|
{ name: "OpenAI", label: "GPT", env: "OPENAI_API_KEY", piProvider: "openai" },
|
|
123
|
-
{ name: "Google", label: "Gemini", env: "
|
|
124
|
+
{ name: "Google", label: "Gemini", env: "GEMINI_API_KEY", piProvider: "google" },
|
|
124
125
|
{ name: "Groq", label: "Groq", env: "GROQ_API_KEY", piProvider: "groq" },
|
|
125
126
|
{ name: "xAI", label: "Grok", env: "XAI_API_KEY", piProvider: "xai" },
|
|
126
127
|
{ name: "Mistral", label: "Mistral", env: "MISTRAL_API_KEY", piProvider: "mistral" },
|
|
@@ -273,7 +274,7 @@ ${c.dim} Recursive Language Models — arXiv:2512.24601${c.reset}
|
|
|
273
274
|
}
|
|
274
275
|
// ── Status line ─────────────────────────────────────────────────────────────
|
|
275
276
|
function printStatusLine() {
|
|
276
|
-
const provider = detectProvider();
|
|
277
|
+
const provider = currentProviderName || detectProvider();
|
|
277
278
|
const modelShort = currentModelId.length > 35
|
|
278
279
|
? currentModelId.slice(0, 32) + "..."
|
|
279
280
|
: currentModelId;
|
|
@@ -585,7 +586,11 @@ async function runQuery(query) {
|
|
|
585
586
|
const effectiveContext = contextText || query;
|
|
586
587
|
const isDirectMode = !contextText;
|
|
587
588
|
if (!currentModel) {
|
|
588
|
-
|
|
589
|
+
const resolved = resolveModelWithProvider(currentModelId);
|
|
590
|
+
if (resolved) {
|
|
591
|
+
currentModel = resolved.model;
|
|
592
|
+
currentProviderName = resolved.provider;
|
|
593
|
+
}
|
|
589
594
|
}
|
|
590
595
|
if (!currentModel) {
|
|
591
596
|
console.log(`\n ${c.red}Model "${currentModelId}" not found.${c.reset}`);
|
|
@@ -874,7 +879,11 @@ async function interactive() {
|
|
|
874
879
|
setupRl.close();
|
|
875
880
|
}
|
|
876
881
|
// Resolve model
|
|
877
|
-
|
|
882
|
+
const initialResolved = resolveModelWithProvider(currentModelId);
|
|
883
|
+
if (initialResolved) {
|
|
884
|
+
currentModel = initialResolved.model;
|
|
885
|
+
currentProviderName = initialResolved.provider;
|
|
886
|
+
}
|
|
878
887
|
if (!currentModel) {
|
|
879
888
|
console.log(`\n ${c.red}Model "${currentModelId}" not found.${c.reset}`);
|
|
880
889
|
console.log(` Check ${c.bold}RLM_MODEL${c.reset} in your .env file.\n`);
|
|
@@ -1004,6 +1013,7 @@ async function interactive() {
|
|
|
1004
1013
|
}
|
|
1005
1014
|
currentModelId = pick;
|
|
1006
1015
|
currentModel = resolved.model;
|
|
1016
|
+
currentProviderName = resolved.provider;
|
|
1007
1017
|
console.log(` ${c.green}✓${c.reset} Switched to ${c.bold}${currentModelId}${c.reset}`);
|
|
1008
1018
|
console.log();
|
|
1009
1019
|
printStatusLine();
|
|
@@ -1064,7 +1074,9 @@ async function interactive() {
|
|
|
1064
1074
|
const defaultModel = getDefaultModelForProvider(chosen.piProvider);
|
|
1065
1075
|
if (defaultModel) {
|
|
1066
1076
|
currentModelId = defaultModel;
|
|
1067
|
-
|
|
1077
|
+
const provResolved = resolveModelWithProvider(currentModelId);
|
|
1078
|
+
currentModel = provResolved?.model;
|
|
1079
|
+
currentProviderName = chosen.piProvider;
|
|
1068
1080
|
console.log(` ${c.green}✓${c.reset} Switched to ${c.bold}${chosen.name}${c.reset}`);
|
|
1069
1081
|
console.log(` ${c.green}✓${c.reset} Default model: ${c.bold}${currentModelId}${c.reset}`);
|
|
1070
1082
|
console.log();
|