@agi-fans/dsh-tui 0.5.0 → 0.6.0

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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/lib/CHANGELOG.md +36 -1
  3. package/lib/chrome/markdown.js +2 -2
  4. package/lib/chrome/markdown.js.map +1 -1
  5. package/lib/chrome/renderer.d.ts +16 -0
  6. package/lib/chrome/renderer.js.map +1 -1
  7. package/lib/chrome/theme.d.ts +3 -3
  8. package/lib/chrome/theme.js +3 -3
  9. package/lib/chrome/theme.js.map +1 -1
  10. package/lib/chrome/tool-renderers.js +64 -4
  11. package/lib/chrome/tool-renderers.js.map +1 -1
  12. package/lib/chrome/welcome-tips.js +2 -1
  13. package/lib/chrome/welcome-tips.js.map +1 -1
  14. package/lib/commands/auth.d.ts +21 -4
  15. package/lib/commands/auth.js +485 -26
  16. package/lib/commands/auth.js.map +1 -1
  17. package/lib/commands/model.js +4 -1
  18. package/lib/commands/model.js.map +1 -1
  19. package/lib/definition.d.ts +52 -0
  20. package/lib/input/keybindings-config.d.ts +1 -1
  21. package/lib/input/keybindings-config.js +2 -1
  22. package/lib/input/keybindings-config.js.map +1 -1
  23. package/lib/runtime/provider-local.d.ts +6 -1
  24. package/lib/runtime/provider-local.js +175 -2
  25. package/lib/runtime/provider-local.js.map +1 -1
  26. package/lib/runtime/runner.js +2 -0
  27. package/lib/runtime/runner.js.map +1 -1
  28. package/lib/session/session-configuration.d.ts +1 -1
  29. package/lib/session/session-configuration.js +10 -0
  30. package/lib/session/session-configuration.js.map +1 -1
  31. package/lib/session/session-controller.d.ts +5 -0
  32. package/lib/session/session-controller.js +254 -7
  33. package/lib/session/session-controller.js.map +1 -1
  34. package/lib/session/subagent-roster.d.ts +51 -0
  35. package/lib/session/subagent-roster.js +316 -0
  36. package/lib/session/subagent-roster.js.map +1 -0
  37. package/lib/views/autocomplete.d.ts +8 -0
  38. package/lib/views/autocomplete.js +26 -1
  39. package/lib/views/autocomplete.js.map +1 -1
  40. package/lib/views/event-views.d.ts +24 -1
  41. package/lib/views/event-views.js +170 -24
  42. package/lib/views/event-views.js.map +1 -1
  43. package/lib/views/hotkeys.js +1 -0
  44. package/lib/views/hotkeys.js.map +1 -1
  45. package/lib/views/settings-list.js +5 -3
  46. package/lib/views/settings-list.js.map +1 -1
  47. package/package.json +2 -1
@@ -1,23 +1,71 @@
1
- /** DeepSeek-only interactive credential commands backed by the Harness credential seam. */
1
+ /** Interactive credential commands backed by the Harness credential and settings seams. */
2
2
  import { spawn } from 'node:child_process';
3
3
  import process from 'node:process';
4
4
  import { credentialRef } from '@deepseek-ai/dsh-credentials';
5
5
  import { settingsNamespace } from '@deepseek-ai/dsh-settings';
6
6
  import { registerCommands } from "./registration.js";
7
7
  export const name = 'omdsh-command-auth';
8
- export const inject = ['commands', 'credentials', 'settings', 'tui'];
8
+ export const inject = ['commands', 'credentials', 'settings', 'tui', 'llm'];
9
+ export const DEEPSEEK_PROVIDER = 'deepseek-official';
9
10
  export const DEEPSEEK_API_KEY = credentialRef('DEEPSEEK_API_KEY');
10
11
  export const OMDSH_DEEPSEEK_API_KEY = credentialRef('OMDSH_DEEPSEEK_API_KEY');
11
12
  export const DEEPSEEK_SETTINGS = settingsNamespace('llm-deepseek');
13
+ export const PI_AI_SETTINGS = settingsNamespace('llm-pi-ai');
12
14
  export const DEEPSEEK_API_KEYS_URL = 'https://platform.deepseek.com/api_keys';
13
15
  export const DEEPSEEK_MODELS_URL = 'https://api.deepseek.com/v1/models';
16
+ export const CUSTOM_PROVIDER_VALUE = '__omdsh_custom__';
17
+ const FULLSCREEN_CHOICE_THRESHOLD = 8;
18
+ const UNCONFIGURED = { configured: false, writable: true };
19
+ const PROVIDER_ID = /^[a-z][a-z0-9-]*$/u;
20
+ const CUSTOM_PROTOCOLS = ['openai-completions', 'openai-responses', 'anthropic-messages'];
14
21
  /** Match DeepSeek's own login normalization without accepting an empty Bearer value. */
15
22
  export function normalizeDeepSeekApiKey(raw) {
23
+ return normalizeApiKey(raw, 'DeepSeek');
24
+ }
25
+ /** Trim a pasted key and reject an empty Bearer value. */
26
+ export function normalizeApiKey(raw, providerLabel) {
16
27
  const normalized = raw.trim().replace(/^bearer\b\s*/iu, '');
17
28
  if (normalized === '')
18
- throw new Error('Paste a non-empty DeepSeek API key.');
29
+ throw new Error(`Paste a non-empty ${providerLabel} API key.`);
19
30
  return normalized;
20
31
  }
32
+ /** omdsh-managed credential reference for one catalog provider route. */
33
+ export function managedProviderCredentialRef(provider) {
34
+ return credentialRef(`OMDSH_${provider.toUpperCase().replace(/[^A-Z0-9]+/gu, '_')}_API_KEY`);
35
+ }
36
+ /** Lowercase kebab-case route id used as the permanent provider key. */
37
+ export function parseProviderId(raw) {
38
+ const id = raw.trim().toLowerCase();
39
+ if (!PROVIDER_ID.test(id)) {
40
+ throw new Error('Provider id must start with a letter and use only lowercase letters, digits, and hyphens.');
41
+ }
42
+ if (id === 'custom' || id === CUSTOM_PROVIDER_VALUE) {
43
+ throw new Error('Choose a different provider id.');
44
+ }
45
+ return id;
46
+ }
47
+ /** Absolute http(s) prefix the adapter will call. */
48
+ export function parseBaseURL(raw) {
49
+ const value = raw.trim().replace(/\/+$/u, '');
50
+ let parsed;
51
+ try {
52
+ parsed = new URL(value);
53
+ }
54
+ catch {
55
+ throw new Error('Base URL must be an absolute http or https URL.');
56
+ }
57
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
58
+ throw new Error('Base URL must be an http or https URL.');
59
+ }
60
+ return value;
61
+ }
62
+ /** One or more model ids from a comma- or whitespace-separated list. */
63
+ export function parseModelIds(raw) {
64
+ const ids = [...new Set(raw.split(/[,\s]+/u).map(item => item.trim()).filter(item => item !== ''))];
65
+ if (ids.length === 0)
66
+ throw new Error('Enter at least one model id.');
67
+ return ids;
68
+ }
21
69
  /** Validate a candidate without ever reading or returning a response body. */
22
70
  export async function validateDeepSeekApiKey(apiKey, signal, fetchImpl = globalThis.fetch) {
23
71
  let response;
@@ -64,12 +112,109 @@ function unmanagedCredentialMessage(ref, info, action) {
64
112
  : 'Update that source directly and restart omdsh.';
65
113
  return `${String(ref)} is supplied by ${credentialSource(info)} and /${action === 'replace' ? 'login' : 'logout'} cannot ${action} it. ${instruction}`;
66
114
  }
67
- function activeDeepSeekCredentialRef(ctx) {
68
- const settings = ctx.settings.get(DEEPSEEK_SETTINGS);
69
- if (typeof settings !== 'object' || settings === null || Array.isArray(settings))
70
- return String(DEEPSEEK_API_KEY);
71
- const apiKeyEnv = settings['apiKeyEnv'];
72
- return typeof apiKeyEnv === 'string' && apiKeyEnv.trim() !== '' ? apiKeyEnv : String(DEEPSEEK_API_KEY);
115
+ function isDeepSeek(entry) {
116
+ return entry.provider === DEEPSEEK_PROVIDER;
117
+ }
118
+ function isPiAiLoginable(entry) {
119
+ return entry.settingsNs === 'llm-pi-ai' && entry.provider !== 'deepseek';
120
+ }
121
+ /** Picker labels are route ids; the official adapter is shown as `deepseek`. */
122
+ export function providerListId(entry) {
123
+ return isDeepSeek(entry) ? 'deepseek' : entry.provider;
124
+ }
125
+ function fallbackDeepSeekEntry() {
126
+ return {
127
+ provider: DEEPSEEK_PROVIDER,
128
+ displayName: 'DeepSeek',
129
+ settingsNs: 'llm-deepseek',
130
+ settingsPath: [],
131
+ };
132
+ }
133
+ function loginableProviders(ctx) {
134
+ const listed = ctx.llm.listConfigurableProviders();
135
+ const loginable = listed.filter(entry => isDeepSeek(entry) || isPiAiLoginable(entry));
136
+ return loginable.length > 0 ? loginable : [fallbackDeepSeekEntry()];
137
+ }
138
+ function sectionValue(ctx, namespace) {
139
+ return ctx.settings.get(settingsNamespace(namespace));
140
+ }
141
+ function walkPath(root, path) {
142
+ let cursor = root;
143
+ for (const key of path) {
144
+ if (typeof cursor !== 'object' || cursor === null || Array.isArray(cursor))
145
+ return undefined;
146
+ cursor = cursor[key];
147
+ }
148
+ return cursor;
149
+ }
150
+ function profileApiKeyEnv(ctx, entry) {
151
+ const profile = walkPath(sectionValue(ctx, entry.settingsNs), entry.settingsPath);
152
+ if (isDeepSeek(entry)) {
153
+ if (typeof profile !== 'object' || profile === null || Array.isArray(profile))
154
+ return String(DEEPSEEK_API_KEY);
155
+ const apiKeyEnv = profile['apiKeyEnv'];
156
+ return typeof apiKeyEnv === 'string' && apiKeyEnv.trim() !== '' ? apiKeyEnv : String(DEEPSEEK_API_KEY);
157
+ }
158
+ if (typeof profile !== 'object' || profile === null || Array.isArray(profile))
159
+ return undefined;
160
+ const apiKeyEnv = profile['apiKeyEnv'];
161
+ return typeof apiKeyEnv === 'string' && apiKeyEnv.trim() !== '' ? apiKeyEnv : undefined;
162
+ }
163
+ function hasStoredProfile(ctx, entry) {
164
+ if (isDeepSeek(entry))
165
+ return true;
166
+ const profile = walkPath(sectionValue(ctx, entry.settingsNs), entry.settingsPath);
167
+ return typeof profile === 'object' && profile !== null && !Array.isArray(profile);
168
+ }
169
+ function logoutableProviders(ctx) {
170
+ return loginableProviders(ctx).filter(entry => isDeepSeek(entry) || hasStoredProfile(ctx, entry));
171
+ }
172
+ function selected(raw, values) {
173
+ const index = /^\d+$/u.test(raw) ? Number(raw) - 1 : -1;
174
+ return index >= 0 ? values[index] : raw;
175
+ }
176
+ async function pickProvider(ctx, invocation, entries, title, question, includeCustom = false) {
177
+ if (entries.length === 0 && !includeCustom)
178
+ return undefined;
179
+ if (entries.length === 1 && !includeCustom)
180
+ return entries[0];
181
+ const live = new Set(ctx.llm.listProviders().map(provider => provider.id));
182
+ const values = [
183
+ ...entries.map(entry => entry.provider),
184
+ ...(includeCustom ? [CUSTOM_PROVIDER_VALUE] : []),
185
+ ];
186
+ const optionCount = values.length;
187
+ const fullscreen = optionCount > FULLSCREEN_CHOICE_THRESHOLD;
188
+ const raw = await ctx.tui.prompt({
189
+ ...(fullscreen ? { presentation: 'fullscreen-list' } : {}),
190
+ optionLayout: 'compact',
191
+ filterable: fullscreen,
192
+ title,
193
+ question,
194
+ options: [
195
+ ...entries.map(entry => ({
196
+ label: providerListId(entry),
197
+ value: entry.provider,
198
+ description: live.has(entry.provider) ? 'configured' : 'not configured',
199
+ })),
200
+ ...(includeCustom
201
+ ? [{
202
+ label: 'custom',
203
+ value: CUSTOM_PROVIDER_VALUE,
204
+ description: 'Add a provider that is not in the catalog',
205
+ }]
206
+ : []),
207
+ ],
208
+ allowCustom: false,
209
+ signal: invocation.signal,
210
+ });
211
+ if (raw === null)
212
+ return undefined;
213
+ if (raw.trim().toLowerCase() === 'custom' || selected(raw, values) === CUSTOM_PROVIDER_VALUE) {
214
+ return CUSTOM_PROVIDER_VALUE;
215
+ }
216
+ const provider = selected(raw, values);
217
+ return entries.find(entry => entry.provider === provider);
73
218
  }
74
219
  async function resetDeepSeekCredentialRoute(ctx) {
75
220
  await ctx.settings.mutate(DEEPSEEK_SETTINGS, [{ op: 'unset', path: ['apiKeyEnv'] }]);
@@ -100,13 +245,7 @@ export function openDeepSeekDashboard() {
100
245
  // Headless and remote terminals still receive the visible dashboard URL.
101
246
  }
102
247
  }
103
- async function login(ctx, invocation, config) {
104
- if (invocation.rawInput.trim() !== '') {
105
- return { kind: 'error', text: 'Usage: /login (paste the key only into the protected prompt)' };
106
- }
107
- // Keep an interactive login on its own credential reference. The DeepSeek
108
- // adapter can select that reference live through settings, so an inherited
109
- // DEEPSEEK_API_KEY remains a fallback instead of shadowing the user's choice.
248
+ async function loginDeepSeek(ctx, invocation, config) {
110
249
  const current = await ctx.credentials.describe(OMDSH_DEEPSEEK_API_KEY);
111
250
  if (current.configured && !current.writable) {
112
251
  return { kind: 'error', text: unmanagedCredentialMessage(OMDSH_DEEPSEEK_API_KEY, current, 'replace') };
@@ -154,16 +293,265 @@ async function login(ctx, invocation, config) {
154
293
  text: 'Logged in to DeepSeek. Your omdsh credential takes priority on the next model request.',
155
294
  };
156
295
  }
157
- async function logout(ctx, invocation) {
158
- if (invocation.rawInput.trim() !== '')
159
- return { kind: 'error', text: 'Usage: /logout' };
160
- const activeRef = activeDeepSeekCredentialRef(ctx);
296
+ async function loginCatalog(ctx, invocation, entry) {
297
+ const ref = managedProviderCredentialRef(entry.provider);
298
+ const current = await ctx.credentials.describe(ref);
299
+ if (current.configured && !current.writable) {
300
+ return { kind: 'error', text: unmanagedCredentialMessage(ref, current, 'replace') };
301
+ }
302
+ const label = entry.displayName;
303
+ const raw = await ctx.tui.prompt({
304
+ title: `Login to ${label}`,
305
+ question: current.configured ? `Paste a new ${label} API key` : `Paste your ${label} API key`,
306
+ detail: `The key is stored locally and activates the ${entry.provider} route for the next model request. Use /model to select it.`,
307
+ allowCustom: true,
308
+ secret: true,
309
+ submitLabel: 'save',
310
+ signal: invocation.signal,
311
+ });
312
+ if (raw === null)
313
+ return { kind: 'success' };
314
+ let apiKey;
315
+ try {
316
+ apiKey = normalizeApiKey(raw, label);
317
+ }
318
+ catch (error) {
319
+ return { kind: 'error', text: error instanceof Error ? error.message : `${label} login failed.` };
320
+ }
321
+ try {
322
+ await ctx.credentials.set(ref, apiKey);
323
+ }
324
+ catch {
325
+ return { kind: 'error', text: `The API key could not be saved to the Harness credential store.` };
326
+ }
327
+ try {
328
+ await ctx.settings.mutate(settingsNamespace(entry.settingsNs), [
329
+ { op: 'set', path: [...entry.settingsPath, 'apiKeyEnv'], value: String(ref) },
330
+ ]);
331
+ }
332
+ catch {
333
+ return {
334
+ kind: 'error',
335
+ text: `The API key is saved, but omdsh could not activate the ${entry.provider} route. Check your settings file and run /login again.`,
336
+ };
337
+ }
338
+ return {
339
+ kind: 'success',
340
+ text: `Logged in to ${label}. Use /model to choose a model from ${entry.provider}.`,
341
+ };
342
+ }
343
+ function reservedProviderIds(ctx) {
344
+ return new Set([
345
+ DEEPSEEK_PROVIDER,
346
+ 'deepseek',
347
+ ...ctx.llm.listConfigurableProviders()
348
+ .filter(entry => entry.declared !== true)
349
+ .map(entry => entry.provider),
350
+ ]);
351
+ }
352
+ async function collectCustomModels(ctx, invocation, draft) {
353
+ const source = await ctx.tui.prompt({
354
+ title: 'Custom models',
355
+ question: 'How should omdsh learn the model ids?',
356
+ options: [
357
+ { label: 'Enter model ids', value: 'enter', description: 'Type one or more ids, separated by commas.' },
358
+ { label: 'Fetch from endpoint', value: 'fetch', description: 'Ask the base URL for GET /models.' },
359
+ ],
360
+ initialValue: 'enter',
361
+ allowCustom: false,
362
+ signal: invocation.signal,
363
+ });
364
+ if (source === null)
365
+ return undefined;
366
+ if (source === 'fetch') {
367
+ try {
368
+ const discovered = await ctx.llm.discoverModels('llm-pi-ai', {
369
+ baseURL: draft.baseURL,
370
+ api: draft.api,
371
+ ...(draft.apiKey === undefined ? {} : { apiKey: draft.apiKey }),
372
+ signal: invocation.signal,
373
+ });
374
+ if (discovered.length === 1)
375
+ return [discovered[0]?.id ?? ''];
376
+ if (discovered.length > 1) {
377
+ const picked = await ctx.tui.prompt({
378
+ title: 'Custom models',
379
+ question: 'Choose models to enable',
380
+ options: discovered.map(model => ({
381
+ label: model.id,
382
+ value: model.id,
383
+ ...(model.name === undefined || model.name === model.id ? {} : { description: model.name }),
384
+ })),
385
+ multiSelect: true,
386
+ allowCustom: false,
387
+ filterable: discovered.length > FULLSCREEN_CHOICE_THRESHOLD,
388
+ ...(discovered.length > FULLSCREEN_CHOICE_THRESHOLD ? { presentation: 'fullscreen-list' } : {}),
389
+ signal: invocation.signal,
390
+ });
391
+ if (picked === null)
392
+ return undefined;
393
+ return parseModelIds(picked);
394
+ }
395
+ }
396
+ catch (error) {
397
+ if (invocation.signal.aborted)
398
+ return undefined;
399
+ const detail = error instanceof Error ? error.message : 'the endpoint did not list models';
400
+ const fallback = await ctx.tui.prompt({
401
+ title: 'Custom models',
402
+ question: 'Enter model ids',
403
+ detail: `Could not fetch models (${detail}). Type one or more ids, separated by commas.`,
404
+ allowCustom: true,
405
+ signal: invocation.signal,
406
+ });
407
+ if (fallback === null)
408
+ return undefined;
409
+ return parseModelIds(fallback);
410
+ }
411
+ }
412
+ const typed = await ctx.tui.prompt({
413
+ title: 'Custom models',
414
+ question: 'Enter model ids',
415
+ detail: 'Separate multiple ids with commas. Example: llama3.1, qwen2.5-coder',
416
+ allowCustom: true,
417
+ signal: invocation.signal,
418
+ });
419
+ if (typed === null)
420
+ return undefined;
421
+ return parseModelIds(typed);
422
+ }
423
+ async function loginCustom(ctx, invocation) {
424
+ const idRaw = await ctx.tui.prompt({
425
+ title: 'Custom provider',
426
+ question: 'Provider id',
427
+ detail: 'Lowercase letters, digits, and hyphens. This id is permanent.',
428
+ allowCustom: true,
429
+ signal: invocation.signal,
430
+ });
431
+ if (idRaw === null)
432
+ return { kind: 'success' };
433
+ let id;
434
+ try {
435
+ id = parseProviderId(idRaw);
436
+ }
437
+ catch (error) {
438
+ return { kind: 'error', text: error instanceof Error ? error.message : 'Invalid provider id.' };
439
+ }
440
+ if (reservedProviderIds(ctx).has(id)) {
441
+ return { kind: 'error', text: `${id} is a catalog provider. Use /login and choose it from the list.` };
442
+ }
443
+ const urlRaw = await ctx.tui.prompt({
444
+ title: 'Custom provider',
445
+ question: 'Base URL',
446
+ detail: 'Absolute http(s) prefix, for example http://127.0.0.1:11434/v1',
447
+ allowCustom: true,
448
+ signal: invocation.signal,
449
+ });
450
+ if (urlRaw === null)
451
+ return { kind: 'success' };
452
+ let baseURL;
453
+ try {
454
+ baseURL = parseBaseURL(urlRaw);
455
+ }
456
+ catch (error) {
457
+ return { kind: 'error', text: error instanceof Error ? error.message : 'Invalid base URL.' };
458
+ }
459
+ const api = await ctx.tui.prompt({
460
+ title: 'Custom provider',
461
+ question: 'API protocol',
462
+ options: CUSTOM_PROTOCOLS.map(protocol => ({
463
+ label: protocol,
464
+ value: protocol,
465
+ description: protocol === 'openai-completions'
466
+ ? 'Chat Completions — Ollama, vLLM, LM Studio, and most gateways'
467
+ : protocol === 'openai-responses' ? 'OpenAI Responses API' : 'Anthropic Messages API',
468
+ })),
469
+ initialValue: 'openai-completions',
470
+ allowCustom: false,
471
+ signal: invocation.signal,
472
+ });
473
+ if (api === null)
474
+ return { kind: 'success' };
475
+ if (!CUSTOM_PROTOCOLS.includes(api)) {
476
+ return { kind: 'error', text: `Unknown API protocol: ${api}` };
477
+ }
478
+ const keyRaw = await ctx.tui.prompt({
479
+ title: `Login to ${id}`,
480
+ question: `Paste your ${id} API key`,
481
+ detail: 'Leave empty if the endpoint does not need a key.',
482
+ allowCustom: true,
483
+ secret: true,
484
+ submitLabel: 'continue',
485
+ signal: invocation.signal,
486
+ });
487
+ if (keyRaw === null)
488
+ return { kind: 'success' };
489
+ let apiKey;
490
+ if (keyRaw.trim() !== '') {
491
+ try {
492
+ apiKey = normalizeApiKey(keyRaw, id);
493
+ }
494
+ catch (error) {
495
+ return { kind: 'error', text: error instanceof Error ? error.message : `${id} login failed.` };
496
+ }
497
+ }
498
+ let modelIds;
499
+ try {
500
+ const collected = await collectCustomModels(ctx, invocation, {
501
+ baseURL,
502
+ api,
503
+ ...(apiKey === undefined ? {} : { apiKey }),
504
+ });
505
+ if (collected === undefined)
506
+ return { kind: 'success' };
507
+ modelIds = collected.filter(item => item !== '');
508
+ if (modelIds.length === 0)
509
+ throw new Error('Enter at least one model id.');
510
+ }
511
+ catch (error) {
512
+ return { kind: 'error', text: error instanceof Error ? error.message : 'Invalid model list.' };
513
+ }
514
+ const ref = managedProviderCredentialRef(id);
515
+ if (apiKey !== undefined) {
516
+ const current = await ctx.credentials.describe(ref);
517
+ if (current.configured && !current.writable) {
518
+ return { kind: 'error', text: unmanagedCredentialMessage(ref, current, 'replace') };
519
+ }
520
+ try {
521
+ await ctx.credentials.set(ref, apiKey);
522
+ }
523
+ catch {
524
+ return { kind: 'error', text: 'The API key could not be saved to the Harness credential store.' };
525
+ }
526
+ }
527
+ try {
528
+ await ctx.settings.mutate(PI_AI_SETTINGS, [{
529
+ op: 'set',
530
+ path: ['providers', id],
531
+ value: {
532
+ api,
533
+ baseURL,
534
+ models: modelIds.map(model => ({ id: model })),
535
+ ...(apiKey === undefined ? {} : { apiKeyEnv: String(ref) }),
536
+ },
537
+ }]);
538
+ }
539
+ catch {
540
+ return {
541
+ kind: 'error',
542
+ text: `The custom provider could not be activated. Check the id, URL, protocol, and model list, then run /login again.`,
543
+ };
544
+ }
545
+ return {
546
+ kind: 'success',
547
+ text: `Added ${id} with ${modelIds.length} model${modelIds.length === 1 ? '' : 's'}. Use /model to choose it.`,
548
+ };
549
+ }
550
+ async function logoutDeepSeek(ctx, invocation) {
551
+ const activeRef = profileApiKeyEnv(ctx, fallbackDeepSeekEntry()) ?? String(DEEPSEEK_API_KEY);
161
552
  const usesOmdshCredential = activeRef === String(OMDSH_DEEPSEEK_API_KEY);
162
553
  const activeCredential = usesOmdshCredential ? OMDSH_DEEPSEEK_API_KEY : DEEPSEEK_API_KEY;
163
554
  const current = await ctx.credentials.describe(activeCredential);
164
- // A custom provider credential configured outside omdsh belongs to that
165
- // source. /logout only removes credentials it owns; it must not turn an
166
- // external DEEPSEEK_API_KEY into an error or pretend it can delete it.
167
555
  const legacyManagedDefault = activeRef === String(DEEPSEEK_API_KEY) && current.source === 'file';
168
556
  if (!usesOmdshCredential && !legacyManagedDefault) {
169
557
  if (!current.configured)
@@ -216,10 +604,81 @@ async function logout(ctx, invocation) {
216
604
  }
217
605
  return logoutSuccess(ctx, usesOmdshCredential);
218
606
  }
607
+ async function logoutCatalog(ctx, invocation, entry) {
608
+ const label = entry.displayName;
609
+ const storedRef = profileApiKeyEnv(ctx, entry);
610
+ const managedRef = managedProviderCredentialRef(entry.provider);
611
+ const usesManaged = storedRef === String(managedRef);
612
+ const current = storedRef === undefined
613
+ ? UNCONFIGURED
614
+ : await ctx.credentials.describe(credentialRef(storedRef));
615
+ if (usesManaged && current.configured && !current.writable) {
616
+ return { kind: 'error', text: unmanagedCredentialMessage(managedRef, current, 'remove') };
617
+ }
618
+ const removesStoredKey = usesManaged && current.source === 'file';
619
+ const answer = await ctx.tui.prompt({
620
+ title: `Logout from ${label}`,
621
+ question: removesStoredKey
622
+ ? `Remove the stored ${label} API key and deactivate the route?`
623
+ : `Deactivate the ${entry.provider} route?`,
624
+ detail: 'The route leaves the model picker. Environment credentials are left in place.',
625
+ options: [
626
+ { label: 'Cancel', value: 'cancel', description: 'Keep the current credential.' },
627
+ {
628
+ label: 'Log out',
629
+ value: 'logout',
630
+ description: removesStoredKey
631
+ ? 'Remove the key from the local Harness credential store and drop the route.'
632
+ : 'Drop the route without changing environment credentials.',
633
+ badge: { label: 'removes route', tone: 'warning' },
634
+ },
635
+ ],
636
+ initialValue: 'cancel',
637
+ allowCustom: false,
638
+ submitLabel: 'apply',
639
+ signal: invocation.signal,
640
+ });
641
+ if (answer !== 'logout')
642
+ return { kind: 'success' };
643
+ try {
644
+ await ctx.settings.mutate(settingsNamespace(entry.settingsNs), [
645
+ { op: 'unset', path: [...entry.settingsPath] },
646
+ ]);
647
+ if (removesStoredKey)
648
+ await ctx.credentials.unset(managedRef);
649
+ }
650
+ catch {
651
+ return { kind: 'error', text: `Could not deactivate the ${entry.provider} route.` };
652
+ }
653
+ return { kind: 'success', text: `Logged out from ${label}.` };
654
+ }
655
+ async function login(ctx, invocation, config) {
656
+ if (invocation.rawInput.trim() !== '') {
657
+ return { kind: 'error', text: 'Usage: /login (paste the key only into the protected prompt)' };
658
+ }
659
+ const entry = await pickProvider(ctx, invocation, loginableProviders(ctx), 'Provider', 'Choose a provider to configure', true);
660
+ if (entry === undefined)
661
+ return { kind: 'success' };
662
+ if (entry === CUSTOM_PROVIDER_VALUE)
663
+ return loginCustom(ctx, invocation);
664
+ return isDeepSeek(entry)
665
+ ? loginDeepSeek(ctx, invocation, config)
666
+ : loginCatalog(ctx, invocation, entry);
667
+ }
668
+ async function logout(ctx, invocation) {
669
+ if (invocation.rawInput.trim() !== '')
670
+ return { kind: 'error', text: 'Usage: /logout' };
671
+ const entry = await pickProvider(ctx, invocation, logoutableProviders(ctx), 'Provider', 'Choose a provider to log out from');
672
+ if (entry === undefined || entry === CUSTOM_PROVIDER_VALUE)
673
+ return { kind: 'success' };
674
+ return isDeepSeek(entry)
675
+ ? logoutDeepSeek(ctx, invocation)
676
+ : logoutCatalog(ctx, invocation, entry);
677
+ }
219
678
  export function apply(ctx, config = {}) {
220
679
  registerCommands(ctx, [
221
- { name: 'login', description: 'Configure and validate the DeepSeek API key', handler: invocation => login(ctx, invocation, config) },
222
- { name: 'logout', description: 'Remove the stored DeepSeek API key', handler: invocation => logout(ctx, invocation) },
223
- ], 'omdsh DeepSeek authentication commands');
680
+ { name: 'login', description: 'Configure a provider API key', handler: invocation => login(ctx, invocation, config) },
681
+ { name: 'logout', description: 'Remove a stored provider API key', handler: invocation => logout(ctx, invocation) },
682
+ ], 'omdsh authentication commands');
224
683
  }
225
684
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAGlC,OAAO,EAAE,aAAa,EAAuB,MAAM,8BAA8B,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAA;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAOpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC,wBAAwB,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,wCAAwC,CAAA;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oCAAoC,CAAA;AAEvE,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IAC3D,IAAI,UAAU,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAC7E,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,MAAmB,EACnB,YAA0B,UAAU,CAAC,KAAK;IAE1C,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,EAAE;YAC9C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;YACD,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACpE,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;IACxG,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAM;IACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAA;IAChH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAA;AACxG,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAoB;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,iCAAiC,CAAA;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,uBAAuB,CAAA;IACjE,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,oBAAoB,CAAA;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,oCAAoC,CAAA;IACvE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,oBAAoB,CAAA;AAC7G,CAAC;AAED,SAAS,0BAA0B,CACjC,GAA4B,EAC5B,IAAoB,EACpB,MAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK;QACvC,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;YAC7B,CAAC,CAAC,yDAAyD;YAC3D,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU;gBAC1B,CAAC,CAAC,sDAAsD;gBACxD,CAAC,CAAC,gDAAgD,CAAA;IACxD,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,SAAS,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,WAAW,MAAM,QAAQ,WAAW,EAAE,CAAA;AACxJ,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAY;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACpD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACjH,MAAM,SAAS,GAAI,QAAoC,CAAC,WAAW,CAAC,CAAA;IACpE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACxG,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,GAAY;IACtD,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;AACtF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,OAAgB;IACzD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACjE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,2BAA2B,0CAA0C,gBAAgB,CAAC,QAAQ,CAAC,GAAG;SACjL,CAAA;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAA;AAC/D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;QACjD,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,qBAAqB,CAAC,EAAE;YACnF,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAA;IACzD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACpC,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,GAAY,EAAE,UAA6B,EAAE,MAAc;IAC9E,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,8DAA8D,EAAE,CAAA;IAChG,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACtE,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,0BAA0B,CAAC,sBAAsB,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAA;IACxG,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,KAAK;QAAE,qBAAqB,EAAE,CAAA;IAC3D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,6BAA6B;QAC7F,MAAM,EAAE,2BAA2B,qBAAqB,8EAA8E;QACtI,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAA;IACF,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAE5C,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAA;IACnG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kFAAkF,EAAE,CAAA;IACpH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gJAAgJ;SACvJ,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,wFAAwF;KAC/F,CAAA;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,GAAY,EAAE,UAA6B;IAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;IACvF,MAAM,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;IAClD,MAAM,mBAAmB,GAAG,SAAS,KAAK,MAAM,CAAC,sBAAsB,CAAC,CAAA;IACxE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACxF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAEhE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,oBAAoB,GAAG,SAAS,KAAK,MAAM,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAA;IAChG,IAAI,CAAC,mBAAmB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAA;QAC5F,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,wEAAwE,gBAAgB,CAAC,OAAO,CAAC,GAAG;SAC3G,CAAA;IACH,CAAC;IAED,IAAI,mBAAmB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,4BAA4B,CAAC,GAAG,CAAC,CAAA;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kDAAkD,EAAE,CAAA;QACpF,CAAC;QACD,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAA;IAClD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAClC,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,2CAA2C;QAChH,MAAM,EAAE,kFAAkF;QAC1F,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACjF;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,gBAAgB;oBAC3B,CAAC,CAAC,yDAAyD;oBAC3D,CAAC,CAAC,uDAAuD;gBAC3D,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;aACxD;SACF;QACD,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAA;IACF,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACnD,IAAI,CAAC;QACH,IAAI,mBAAmB;YAAE,MAAM,4BAA4B,CAAC,GAAG,CAAC,CAAA;QAChE,IAAI,gBAAgB;YAAE,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,0EAA0E,EAAE,CAAA;IAC5G,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB,EAAE;IACrD,gBAAgB,CAAC,GAAG,EAAE;QACpB,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6CAA6C,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;QACpI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;KACtH,EAAE,wCAAwC,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,10 @@ async function selectModel(ctx, invocation) {
30
30
  ...fixedChoice(providers.length),
31
31
  title: 'Model provider',
32
32
  question: 'Choose a provider',
33
- options: providers.map(entry => ({ label: entry.id, description: entry.name })),
33
+ options: providers.map(entry => ({
34
+ label: entry.id === 'deepseek-official' ? 'deepseek' : entry.id,
35
+ value: entry.id,
36
+ })),
34
37
  initialValue: current.provider,
35
38
  signal: invocation.signal,
36
39
  });