@pentoshi/clai 3.8.39 → 3.8.40

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.
@@ -5,13 +5,33 @@ import { getProvider } from "../../../llm/router.js";
5
5
  import { MAX_PROVIDER_KEYS } from "../../../llm/key-rotation.js";
6
6
  import { assertProvider, getProviderInfoText, maskSecret, } from "../../../llm/provider.js";
7
7
  import { getConfig, updateConfig } from "../../../store/config.js";
8
- import { getProviderKeys, getSearchProviderKey, listProviderStatuses, setProviderKeys, setSecret, unsetProviderSecret, } from "../../../store/keys.js";
8
+ import { appendSearchProviderKey, getProviderKeys, getSearchProviderKeys, listProviderStatuses, setProviderKeys, setSearchProviderKeys, unsetProviderSecret, unsetSearchProviderSecret, } from "../../../store/keys.js";
9
9
  import { searchProviderIds } from "../../../tools/web/types.js";
10
10
  import { formatKeyStatus } from "../../../tui/format-keys.js";
11
11
  const SEARCH_IDS = new Set(["brave", "tavily", "duckduckgo"]);
12
12
  function notice(services, level, text) {
13
13
  services.session.notice(level, text);
14
14
  }
15
+ async function getSearchKeyStatuses() {
16
+ const activeSearch = getConfig().activeSearchProvider;
17
+ return Promise.all(searchProviderIds.map(async (id) => {
18
+ const keyless = id === "duckduckgo";
19
+ const multi = await getSearchProviderKeys(id);
20
+ const count = multi.keys.length;
21
+ const activeIndex = count > 0 ? multi.activeIndex : 0;
22
+ const activeValue = multi.keys[activeIndex]?.value;
23
+ return {
24
+ provider: id,
25
+ active: id === activeSearch,
26
+ configured: keyless || count > 0,
27
+ source: keyless ? "keyless" : multi.source,
28
+ maskedKey: activeValue ? maskSecret(activeValue) : undefined,
29
+ keyCount: keyless ? undefined : count || undefined,
30
+ maskedKeys: count > 0 ? multi.keys.map((key) => maskSecret(key.value)) : undefined,
31
+ activeMaskedKey: count > 1 && activeValue ? maskSecret(activeValue) : undefined,
32
+ };
33
+ }));
34
+ }
15
35
  export async function handleInfo(services, invocation) {
16
36
  const providerVal = invocation.args.trim().toLowerCase();
17
37
  let target = services.session.getState().provider ?? getConfig().defaultProvider;
@@ -30,19 +50,7 @@ export async function handleKeys(services) {
30
50
  try {
31
51
  const active = services.session.getState().provider ?? getConfig().defaultProvider;
32
52
  const llm = await listProviderStatuses(active);
33
- const activeSearch = getConfig().activeSearchProvider;
34
- const search = await Promise.all(searchProviderIds.map(async (id) => {
35
- const secret = await getSearchProviderKey(id);
36
- const keyless = id === "duckduckgo";
37
- return {
38
- provider: id,
39
- active: id === activeSearch,
40
- configured: keyless || Boolean(secret.value),
41
- source: keyless ? "keyless" : secret.source,
42
- maskedKey: secret.value ? maskSecret(secret.value) : undefined,
43
- };
44
- }));
45
- services.overlay.openPager("Credential status", formatKeyStatus(llm, search));
53
+ services.overlay.openPager("Credential status", formatKeyStatus(llm, await getSearchKeyStatuses()));
46
54
  }
47
55
  catch (error) {
48
56
  notice(services, "warn", `could not read keys: ${error instanceof Error ? error.message : String(error)}`);
@@ -63,7 +71,6 @@ export async function handleSet(services, invocation) {
63
71
  }
64
72
  const id = assertProvider(providerVal);
65
73
  if (keyVal) {
66
- // Non-interactive append of one key.
67
74
  await appendLlmKey(services, id, keyVal);
68
75
  return;
69
76
  }
@@ -93,17 +100,7 @@ export async function handleUnset(services, invocation) {
93
100
  async function openSetPicker(services) {
94
101
  const active = services.session.getState().provider ?? getConfig().defaultProvider;
95
102
  const llm = await listProviderStatuses(active);
96
- const activeSearch = getConfig().activeSearchProvider;
97
- const search = await Promise.all(searchProviderIds.map(async (id) => {
98
- const secret = await getSearchProviderKey(id);
99
- const keyless = id === "duckduckgo";
100
- return {
101
- provider: id,
102
- configured: keyless || Boolean(secret.value),
103
- maskedKey: secret.value ? maskSecret(secret.value) : undefined,
104
- keyCount: secret.value ? 1 : 0,
105
- };
106
- }));
103
+ const search = await getSearchKeyStatuses();
107
104
  const options = [
108
105
  ...llm.map((status) => {
109
106
  const count = status.keyCount ?? (status.configured ? 1 : 0);
@@ -122,11 +119,21 @@ async function openSetPicker(services) {
122
119
  description: status.model,
123
120
  };
124
121
  }),
125
- ...search.map((status) => ({
126
- value: `search:${status.provider}`,
127
- label: `${status.provider} ${status.configured ? "✓ key set" : "✗ no key"}`,
128
- description: `Search provider${status.provider === activeSearch ? " (active)" : ""}`,
129
- })),
122
+ ...search.map((status) => {
123
+ const count = status.keyCount ?? 0;
124
+ const keyLabel = status.provider === "duckduckgo"
125
+ ? " keyless"
126
+ : count === 0
127
+ ? "✗ no key"
128
+ : count === 1
129
+ ? `✓ ${status.maskedKey ?? "1 key"}`
130
+ : `✓ ${count} keys`;
131
+ return {
132
+ value: `search:${status.provider}`,
133
+ label: `${status.provider} ${keyLabel}${status.active ? " (active)" : ""}`,
134
+ description: "Search provider",
135
+ };
136
+ }),
130
137
  ];
131
138
  services.overlay.openPicker({ title: "Set API key for provider", options }, (value) => {
132
139
  services.overlay.close();
@@ -134,7 +141,7 @@ async function openSetPicker(services) {
134
141
  const isSearch = value.startsWith("search:");
135
142
  const id = value.split(":")[1];
136
143
  if (isSearch)
137
- await setSearchKey(services, id);
144
+ await openSearchKeysEditor(services, id);
138
145
  else
139
146
  await openLlmKeysEditor(services, id);
140
147
  })();
@@ -143,16 +150,7 @@ async function openSetPicker(services) {
143
150
  async function openUnsetPicker(services) {
144
151
  const active = services.session.getState().provider ?? getConfig().defaultProvider;
145
152
  const llm = await listProviderStatuses(active);
146
- const activeSearch = getConfig().activeSearchProvider;
147
- const search = await Promise.all(searchProviderIds.map(async (id) => {
148
- const secret = await getSearchProviderKey(id);
149
- const keyless = id === "duckduckgo";
150
- return {
151
- provider: id,
152
- configured: keyless || Boolean(secret.value),
153
- maskedKey: secret.value ? maskSecret(secret.value) : undefined,
154
- };
155
- }));
153
+ const search = await getSearchKeyStatuses();
156
154
  const options = [
157
155
  ...llm.map((status) => {
158
156
  const count = status.keyCount ?? (status.configured ? 1 : 0);
@@ -169,11 +167,21 @@ async function openUnsetPicker(services) {
169
167
  description: status.model,
170
168
  };
171
169
  }),
172
- ...search.map((status) => ({
173
- value: `search:${status.provider}`,
174
- label: `${status.provider} ${status.configured ? `✓ ${status.maskedKey ?? "keyless"}` : "✗ no key"}`,
175
- description: `Search provider${status.provider === activeSearch ? " (active)" : ""}`,
176
- })),
170
+ ...search.map((status) => {
171
+ const count = status.keyCount ?? 0;
172
+ const keyLabel = status.provider === "duckduckgo"
173
+ ? "keyless"
174
+ : count === 0
175
+ ? "✗ no key"
176
+ : count === 1
177
+ ? `✓ ${status.maskedKey ?? "1 key"}`
178
+ : `✓ ${count} keys — reset all`;
179
+ return {
180
+ value: `search:${status.provider}`,
181
+ label: `${status.provider} ${keyLabel}${status.active ? " (active)" : ""}`,
182
+ description: "Search provider",
183
+ };
184
+ }),
177
185
  ];
178
186
  services.overlay.openPicker({ title: "Unset API key for provider", options }, (value) => {
179
187
  services.overlay.close();
@@ -189,7 +197,7 @@ async function openUnsetPicker(services) {
189
197
  }
190
198
  async function openLlmKeysEditor(services, id) {
191
199
  if (id === "ollama") {
192
- let host = await services.overlay.openSecret({
200
+ const host = await services.overlay.openSecret({
193
201
  title: "Ollama host URL",
194
202
  prompt: "Enter host URL for Ollama:",
195
203
  });
@@ -204,10 +212,10 @@ async function openLlmKeysEditor(services, id) {
204
212
  const multi = await getProviderKeys(id);
205
213
  const stored = multi.source === "env"
206
214
  ? []
207
- : multi.keys.map((k) => ({ id: k.id, masked: maskSecret(k.value), value: k.value }));
215
+ : multi.keys.map((key) => ({ id: key.id, masked: maskSecret(key.value), value: key.value }));
208
216
  const answer = await services.overlay.openKeysEditor({
209
217
  provider: id,
210
- initialKeys: stored.map((k) => ({ id: k.id, masked: k.masked })),
218
+ initialKeys: stored.map((key) => ({ id: key.id, masked: key.masked })),
211
219
  });
212
220
  if (!answer) {
213
221
  notice(services, "info", "cancelled");
@@ -218,24 +226,8 @@ async function openLlmKeysEditor(services, id) {
218
226
  notice(services, "info", `unset all keys for ${id}`);
219
227
  return;
220
228
  }
221
- // Resolve save rows final plaintext list.
222
- const byId = new Map(stored.map((k) => [k.id, k.value]));
223
- const resolved = [];
224
- for (const row of answer.rows) {
225
- if (row.slotId) {
226
- if (row.value.trim()) {
227
- resolved.push(row.value.trim());
228
- }
229
- else {
230
- const keep = byId.get(row.slotId);
231
- if (keep)
232
- resolved.push(keep);
233
- }
234
- }
235
- else if (row.value.trim()) {
236
- resolved.push(row.value.trim());
237
- }
238
- }
229
+ const byId = new Map(stored.map((key) => [key.id, key.value]));
230
+ const resolved = resolveEditorRows(answer.rows, byId);
239
231
  if (resolved.length === 0) {
240
232
  await unsetProviderSecret(id);
241
233
  notice(services, "info", `unset all keys for ${id}`);
@@ -252,22 +244,79 @@ async function openLlmKeysEditor(services, id) {
252
244
  notice(services, "warn", `at most ${MAX_PROVIDER_KEYS} API keys per provider`);
253
245
  return;
254
246
  }
255
- // Preserve sticky active when possible (first kept slot that matches prior active).
256
247
  let activeIndex = 0;
257
248
  if (multi.source !== "env" && multi.keys.length > 0) {
258
- const prevActive = multi.keys[multi.activeIndex]?.value;
259
- if (prevActive) {
260
- const found = resolved.indexOf(prevActive);
249
+ const previous = multi.keys[multi.activeIndex]?.value;
250
+ if (previous) {
251
+ const found = resolved.indexOf(previous);
261
252
  if (found >= 0)
262
253
  activeIndex = found;
263
254
  }
264
255
  }
265
256
  await setProviderKeys(id, resolved, activeIndex);
266
- const label = resolved.length === 1
267
- ? maskSecret(resolved[0])
268
- : `${resolved.length} keys`;
257
+ const label = resolved.length === 1 ? maskSecret(resolved[0]) : `${resolved.length} keys`;
269
258
  notice(services, "info", `saved ${id} · ${label}`);
270
259
  }
260
+ async function openSearchKeysEditor(services, id) {
261
+ if (id === "duckduckgo") {
262
+ notice(services, "info", "duckduckgo is keyless and requires no setup");
263
+ return;
264
+ }
265
+ const multi = await getSearchProviderKeys(id);
266
+ const stored = multi.source === "env"
267
+ ? []
268
+ : multi.keys.map((key) => ({ id: key.id, masked: maskSecret(key.value), value: key.value }));
269
+ const answer = await services.overlay.openKeysEditor({
270
+ provider: id,
271
+ initialKeys: stored.map((key) => ({ id: key.id, masked: key.masked })),
272
+ });
273
+ if (!answer) {
274
+ notice(services, "info", "cancelled");
275
+ return;
276
+ }
277
+ if (answer.action === "reset") {
278
+ await unsetSearchProviderSecret(id);
279
+ notice(services, "info", `unset all keys for ${id}`);
280
+ return;
281
+ }
282
+ const resolved = resolveEditorRows(answer.rows, new Map(stored.map((key) => [key.id, key.value])));
283
+ if (resolved.length === 0) {
284
+ await unsetSearchProviderSecret(id);
285
+ notice(services, "info", `unset all keys for ${id}`);
286
+ return;
287
+ }
288
+ if (resolved.length > MAX_PROVIDER_KEYS) {
289
+ notice(services, "warn", `at most ${MAX_PROVIDER_KEYS} API keys per provider`);
290
+ return;
291
+ }
292
+ let activeIndex = 0;
293
+ if (multi.source !== "env" && multi.keys.length > 0) {
294
+ const previous = multi.keys[multi.activeIndex]?.value;
295
+ if (previous) {
296
+ const found = resolved.indexOf(previous);
297
+ if (found >= 0)
298
+ activeIndex = found;
299
+ }
300
+ }
301
+ await setSearchProviderKeys(id, resolved, activeIndex);
302
+ const label = resolved.length === 1 ? maskSecret(resolved[0]) : `${resolved.length} keys`;
303
+ notice(services, "info", `saved ${id} · ${label}`);
304
+ }
305
+ function resolveEditorRows(rows, byId) {
306
+ const resolved = [];
307
+ for (const row of rows) {
308
+ if (row.slotId) {
309
+ const value = row.value.trim();
310
+ const keep = value || byId.get(row.slotId);
311
+ if (keep)
312
+ resolved.push(keep);
313
+ }
314
+ else if (row.value.trim()) {
315
+ resolved.push(row.value.trim());
316
+ }
317
+ }
318
+ return resolved;
319
+ }
271
320
  async function appendLlmKey(services, id, keyVal) {
272
321
  if (id === "ollama") {
273
322
  updateConfig({ ollamaHost: keyVal.trim() });
@@ -292,44 +341,35 @@ async function setSearchKey(services, id, keyVal) {
292
341
  notice(services, "info", "duckduckgo is keyless and requires no setup");
293
342
  return;
294
343
  }
295
- let key = keyVal;
344
+ if (!keyVal) {
345
+ await openSearchKeysEditor(services, id);
346
+ return;
347
+ }
348
+ const key = keyVal.trim();
296
349
  if (!key) {
297
- const secret = await getSearchProviderKey(id);
298
- if (secret.value) {
299
- const ok = await services.overlay.openConfirm({
300
- kind: "reset",
301
- prompt: `${id} already has a key (${maskSecret(secret.value)}). Reset it?`,
302
- });
303
- if (!ok) {
304
- notice(services, "info", "cancelled");
305
- return;
306
- }
307
- }
308
- key = await services.overlay.openSecret({
309
- title: `${id} API key`,
310
- prompt: `Enter API key for ${id}:`,
311
- });
312
- if (!key) {
313
- notice(services, "info", "cancelled");
314
- return;
315
- }
350
+ notice(services, "warn", "API key cannot be empty");
351
+ return;
316
352
  }
317
- await setSecret("search", id, key.trim());
318
- notice(services, "info", `saved ${id} ${maskSecret(key.trim())}`);
353
+ await appendSearchProviderKey(id, key);
354
+ const multi = await getSearchProviderKeys(id);
355
+ const count = multi.source === "env" ? 1 : multi.keys.length;
356
+ notice(services, "info", count > 1
357
+ ? `added ${id} ${maskSecret(key)} · ${count} keys total`
358
+ : `saved ${id} ${maskSecret(key)}`);
319
359
  }
320
360
  async function unsetSearchKey(services, id) {
321
361
  if (id === "duckduckgo") {
322
362
  notice(services, "info", "duckduckgo requires no credentials and cannot be unset");
323
363
  return;
324
364
  }
325
- const secret = await getSearchProviderKey(id);
326
- if (!secret.value) {
365
+ const multi = await getSearchProviderKeys(id);
366
+ const storedCount = multi.source === "env" ? 0 : multi.keys.length;
367
+ if (storedCount === 0) {
327
368
  notice(services, "warn", `${id} has no key to unset`);
328
369
  return;
329
370
  }
330
- const { unsetSearchProviderKey } = await import("../../../commands/search-providers.js");
331
- await unsetSearchProviderKey(id);
332
- notice(services, "info", `unset ${id}`);
371
+ await unsetSearchProviderSecret(id);
372
+ notice(services, "info", storedCount > 1 ? `unset all ${storedCount} keys for ${id}` : `unset ${id}`);
333
373
  }
334
374
  async function unsetLlmKey(services, id) {
335
375
  if (id === "ollama") {
@@ -1 +1 @@
1
- {"version":3,"file":"key-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/key-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/key-commands.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
3
3
  * Source of truth: package.json "version".
4
4
  */
5
- export declare const VERSION: "3.8.39";
6
- export declare const VERSION_TAG: "v3.8.39";
5
+ export declare const VERSION: "3.8.40";
6
+ export declare const VERSION_TAG: "v3.8.40";
@@ -2,6 +2,6 @@
2
2
  * AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
3
3
  * Source of truth: package.json "version".
4
4
  */
5
- export const VERSION = "3.8.39";
6
- export const VERSION_TAG = "v3.8.39";
5
+ export const VERSION = "3.8.40";
6
+ export const VERSION_TAG = "v3.8.40";
7
7
  //# sourceMappingURL=version.generated.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pentoshi/clai",
3
- "version": "3.8.39",
3
+ "version": "3.8.40",
4
4
  "description": "A fast, cross-platform AI CLI assistant with ask and agent modes for shell tasks, file operations, and cybersecurity workflows.",
5
5
  "type": "module",
6
6
  "license": "MIT",