@pentoshi/clai 2.0.8 → 2.0.9
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/agent/events.d.ts +1 -1
- package/dist/commands/providers.d.ts +2 -0
- package/dist/commands/providers.js +60 -3
- package/dist/commands/providers.js.map +1 -1
- package/dist/llm/openai.js +1 -1
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/provider.js +6 -1
- package/dist/llm/provider.js.map +1 -1
- package/dist/repl.js +5 -11
- package/dist/repl.js.map +1 -1
- package/dist/tui/App.js +345 -4
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/ConfirmModal.js +20 -5
- package/dist/tui/components/ConfirmModal.js.map +1 -1
- package/dist/tui/state.d.ts +1 -1
- package/package.json +1 -1
package/dist/agent/events.d.ts
CHANGED
|
@@ -11,3 +11,5 @@ export declare function printProviderKeys(): Promise<void>;
|
|
|
11
11
|
export declare function ensureProviderConfigured(provider: ProviderId): Promise<void>;
|
|
12
12
|
export declare function useProvider(providerValue: string): Promise<void>;
|
|
13
13
|
export declare function providerSwitcher(providerValue?: string | undefined): Promise<void>;
|
|
14
|
+
export declare function setKeyPicker(providerValue?: string | undefined, keyArg?: string | undefined): Promise<void>;
|
|
15
|
+
export declare function unsetKeyPicker(providerValue?: string | undefined): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { password, select } from "@inquirer/prompts";
|
|
1
|
+
import { confirm, password, select } from "@inquirer/prompts";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { getProvider, pingProvider } from "../llm/router.js";
|
|
4
4
|
import { assertProvider, maskSecret } from "../llm/provider.js";
|
|
@@ -12,10 +12,11 @@ async function readStdin() {
|
|
|
12
12
|
return Buffer.concat(chunks).toString("utf8").trim();
|
|
13
13
|
}
|
|
14
14
|
async function promptForSecret(provider) {
|
|
15
|
-
|
|
15
|
+
const raw = await password({
|
|
16
16
|
message: `Enter API key for ${provider} (input hidden, leave blank to cancel):`,
|
|
17
17
|
mask: "•",
|
|
18
18
|
});
|
|
19
|
+
return raw.trim();
|
|
19
20
|
}
|
|
20
21
|
function invalidFormatHint(provider) {
|
|
21
22
|
if (provider === "groq")
|
|
@@ -25,7 +26,7 @@ function invalidFormatHint(provider) {
|
|
|
25
26
|
if (provider === "openrouter")
|
|
26
27
|
return "OpenRouter keys usually start with sk-or-";
|
|
27
28
|
if (provider === "openai")
|
|
28
|
-
return "OpenAI keys usually start with sk-";
|
|
29
|
+
return "OpenAI keys usually start with sk- or sk-proj-";
|
|
29
30
|
if (provider === "anthropic")
|
|
30
31
|
return "Anthropic keys usually start with sk-ant-";
|
|
31
32
|
if (provider === "nvidia")
|
|
@@ -173,4 +174,60 @@ export async function providerSwitcher(providerValue) {
|
|
|
173
174
|
});
|
|
174
175
|
await useProvider(selected);
|
|
175
176
|
}
|
|
177
|
+
export async function setKeyPicker(providerValue, keyArg) {
|
|
178
|
+
if (providerValue) {
|
|
179
|
+
await setProviderKey(providerValue, keyArg, {});
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const config = getConfig();
|
|
183
|
+
const statuses = await listProviderStatuses(config.defaultProvider);
|
|
184
|
+
const pageSize = 15;
|
|
185
|
+
const selected = await select({
|
|
186
|
+
message: "Set API key for provider:",
|
|
187
|
+
pageSize,
|
|
188
|
+
choices: statuses.map((status) => ({
|
|
189
|
+
name: `${status.provider.padEnd(12)} ${status.configured ? chalk.green("✓ key set") : chalk.red("✗ no key")}${status.active ? chalk.cyan(" (active)") : ""}`,
|
|
190
|
+
value: status.provider,
|
|
191
|
+
})),
|
|
192
|
+
loop: false,
|
|
193
|
+
});
|
|
194
|
+
const secret = await getProviderSecret(selected);
|
|
195
|
+
if (secret.value) {
|
|
196
|
+
// Key already set — ask whether to reset
|
|
197
|
+
const reset = await confirm({
|
|
198
|
+
message: `${selected} already has a key (${maskSecret(secret.value)}). Reset it?`,
|
|
199
|
+
default: false,
|
|
200
|
+
});
|
|
201
|
+
if (!reset) {
|
|
202
|
+
console.log(chalk.dim("cancelled"));
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Prompt for the new key
|
|
207
|
+
await setProviderKey(selected, undefined, {});
|
|
208
|
+
}
|
|
209
|
+
export async function unsetKeyPicker(providerValue) {
|
|
210
|
+
if (providerValue) {
|
|
211
|
+
await unsetProviderKey(providerValue);
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const config = getConfig();
|
|
215
|
+
const statuses = await listProviderStatuses(config.defaultProvider);
|
|
216
|
+
const pageSize = 15;
|
|
217
|
+
const selected = await select({
|
|
218
|
+
message: "Unset API key for provider:",
|
|
219
|
+
pageSize,
|
|
220
|
+
choices: statuses.map((status) => ({
|
|
221
|
+
name: `${status.provider.padEnd(12)} ${status.configured ? chalk.green("✓ ") + (status.maskedKey ?? "key set") : chalk.red("✗ no key")}${status.active ? chalk.cyan(" (active)") : ""}`,
|
|
222
|
+
value: status.provider,
|
|
223
|
+
})),
|
|
224
|
+
loop: false,
|
|
225
|
+
});
|
|
226
|
+
const secret = await getProviderSecret(selected);
|
|
227
|
+
if (!secret.value && selected !== "ollama") {
|
|
228
|
+
console.log(chalk.dim(`${selected} has no key to unset`));
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
await unsetProviderKey(selected);
|
|
232
|
+
}
|
|
176
233
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/openai.js
CHANGED
|
@@ -6,7 +6,7 @@ export const openaiProvider = {
|
|
|
6
6
|
displayName: "OpenAI",
|
|
7
7
|
defaultModel: defaultModels.openai,
|
|
8
8
|
envVar: "OPENAI_API_KEY",
|
|
9
|
-
validateKey: (key) => /^sk-[A-Za-z0-9_-]{12,}$/.test(key),
|
|
9
|
+
validateKey: (key) => /^sk-(?:proj-|svcacct-)?[A-Za-z0-9_-]{12,}$/.test(key),
|
|
10
10
|
async listModels(auth) {
|
|
11
11
|
if (!auth.apiKey)
|
|
12
12
|
throw new Error("OpenAI API key is required");
|
package/dist/llm/openai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/llm/openai.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,aAAa,CAAC,MAAM;IAClC,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/llm/openai.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/provider.js
CHANGED
|
@@ -23,7 +23,7 @@ export const defaultModels = {
|
|
|
23
23
|
groq: "llama-3.3-70b-versatile",
|
|
24
24
|
gemini: "gemini-2.0-flash",
|
|
25
25
|
openrouter: "meta-llama/llama-3.3-70b-instruct:free",
|
|
26
|
-
openai: "gpt-
|
|
26
|
+
openai: "gpt-5.4-mini",
|
|
27
27
|
anthropic: "claude-3-5-haiku-latest",
|
|
28
28
|
nvidia: "openai/gpt-oss-20b",
|
|
29
29
|
agentrouter: "claude-haiku-4-5-20251001",
|
|
@@ -45,6 +45,11 @@ const retiredModelReplacements = {
|
|
|
45
45
|
// default so retired Nemotron entries don't surface 404s.
|
|
46
46
|
"nvidia/llama-3.3-nemotron-super-49b-v1": defaultModels.nvidia,
|
|
47
47
|
},
|
|
48
|
+
openai: {
|
|
49
|
+
// gpt-4o models have been superseded by the gpt-5.x lineup.
|
|
50
|
+
"gpt-4o-mini": "gpt-5.4-mini",
|
|
51
|
+
"gpt-4o": "gpt-5.4",
|
|
52
|
+
},
|
|
48
53
|
};
|
|
49
54
|
export const envVars = {
|
|
50
55
|
groq: "GROQ_API_KEY",
|
package/dist/llm/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA0B1C,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,aAAa;IAC7B,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,YAAY;IAC1B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,IAAI,EAAE,yBAAyB;IAC/B,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,wCAAwC;IACpD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/repl.js
CHANGED
|
@@ -4,7 +4,7 @@ import chalk from "chalk";
|
|
|
4
4
|
import { runAskStream } from "./modes/ask.js";
|
|
5
5
|
import { runAgent, createSessionPolicy, } from "./modes/agent.js";
|
|
6
6
|
import { attachClassicRenderer } from "./agent/classic-renderer.js";
|
|
7
|
-
import { providerSwitcher, printProviderKeys,
|
|
7
|
+
import { providerSwitcher, printProviderKeys, setKeyPicker, unsetKeyPicker, } from "./commands/providers.js";
|
|
8
8
|
import { printSearchProviderKeys, useSearchProvider, } from "./commands/search-providers.js";
|
|
9
9
|
import { getConfig, getProviderModel, setDefaultMode, setProviderModel, setThinking, updateConfig, } from "./store/config.js";
|
|
10
10
|
import { listSessions, saveSession, clearAllHistory, getSession, } from "./store/history.js";
|
|
@@ -43,8 +43,8 @@ export const slashCommands = [
|
|
|
43
43
|
usage: "<provider>",
|
|
44
44
|
description: "alias for /provider <name>",
|
|
45
45
|
},
|
|
46
|
-
{ command: "/set", usage: "
|
|
47
|
-
{ command: "/unset", usage: "
|
|
46
|
+
{ command: "/set", usage: "[provider] [key]", description: "store API key or open picker" },
|
|
47
|
+
{ command: "/unset", usage: "[provider]", description: "remove key or open picker" },
|
|
48
48
|
{ command: "/keys", description: "list configured providers" },
|
|
49
49
|
{
|
|
50
50
|
command: "/search",
|
|
@@ -1378,17 +1378,11 @@ async function handleSlash(line, state) {
|
|
|
1378
1378
|
return true;
|
|
1379
1379
|
}
|
|
1380
1380
|
case "/set": {
|
|
1381
|
-
|
|
1382
|
-
console.log(chalk.dim("usage: /set <provider> [key]"));
|
|
1383
|
-
else
|
|
1384
|
-
await setProviderKey(args[0], args[1], {});
|
|
1381
|
+
await setKeyPicker(args[0], args[1]);
|
|
1385
1382
|
return true;
|
|
1386
1383
|
}
|
|
1387
1384
|
case "/unset": {
|
|
1388
|
-
|
|
1389
|
-
console.log(chalk.dim("usage: /unset <provider>"));
|
|
1390
|
-
else
|
|
1391
|
-
await unsetProviderKey(args[0]);
|
|
1385
|
+
await unsetKeyPicker(args[0]);
|
|
1392
1386
|
return true;
|
|
1393
1387
|
}
|
|
1394
1388
|
case "/keys":
|