@terminai/cli 0.21.0 → 0.25.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 (97) hide show
  1. package/dist/package.json +4 -4
  2. package/dist/src/config/auth.js +59 -3
  3. package/dist/src/config/auth.js.map +1 -1
  4. package/dist/src/config/auth.test.js +33 -5
  5. package/dist/src/config/auth.test.js.map +1 -1
  6. package/dist/src/config/config.js +9 -53
  7. package/dist/src/config/config.js.map +1 -1
  8. package/dist/src/config/effectiveAuthType.d.ts +9 -0
  9. package/dist/src/config/effectiveAuthType.js +48 -0
  10. package/dist/src/config/effectiveAuthType.js.map +1 -0
  11. package/dist/src/config/keyBindings.js +21 -3
  12. package/dist/src/config/keyBindings.js.map +1 -1
  13. package/dist/src/config/settingsToProviderConfig.d.ts +19 -0
  14. package/dist/src/config/settingsToProviderConfig.js +114 -0
  15. package/dist/src/config/settingsToProviderConfig.js.map +1 -0
  16. package/dist/src/core/initializer.js +4 -2
  17. package/dist/src/core/initializer.js.map +1 -1
  18. package/dist/src/core/initializer.test.js +16 -3
  19. package/dist/src/core/initializer.test.js.map +1 -1
  20. package/dist/src/gemini.js +18 -6
  21. package/dist/src/gemini.js.map +1 -1
  22. package/dist/src/generated/git-commit.d.ts +2 -2
  23. package/dist/src/generated/git-commit.js +2 -2
  24. package/dist/src/generated/git-commit.js.map +1 -1
  25. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  26. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  27. package/dist/src/test-utils/render.js +1 -0
  28. package/dist/src/test-utils/render.js.map +1 -1
  29. package/dist/src/ui/AppContainer.js +26 -25
  30. package/dist/src/ui/AppContainer.js.map +1 -1
  31. package/dist/src/ui/auth/AuthDialog.test.js +9 -2
  32. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  33. package/dist/src/ui/auth/AuthProviderWizardFlow.d.ts +14 -0
  34. package/dist/src/ui/auth/AuthProviderWizardFlow.js +40 -0
  35. package/dist/src/ui/auth/AuthProviderWizardFlow.js.map +1 -0
  36. package/dist/src/ui/auth/AuthProviderWizardFlow.test.d.ts +7 -0
  37. package/dist/src/ui/auth/AuthProviderWizardFlow.test.js +104 -0
  38. package/dist/src/ui/auth/AuthProviderWizardFlow.test.js.map +1 -0
  39. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.d.ts +16 -0
  40. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.js +344 -0
  41. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.js.map +1 -0
  42. package/dist/src/ui/auth/OpenAICompatibleSetupDialog.d.ts +3 -2
  43. package/dist/src/ui/auth/OpenAICompatibleSetupDialog.js +85 -16
  44. package/dist/src/ui/auth/OpenAICompatibleSetupDialog.js.map +1 -1
  45. package/dist/src/ui/auth/ProviderWizard.d.ts +3 -2
  46. package/dist/src/ui/auth/ProviderWizard.js +40 -4
  47. package/dist/src/ui/auth/ProviderWizard.js.map +1 -1
  48. package/dist/src/ui/auth/ProviderWizard.test.js +41 -3
  49. package/dist/src/ui/auth/ProviderWizard.test.js.map +1 -1
  50. package/dist/src/ui/auth/useAuth.js +9 -8
  51. package/dist/src/ui/auth/useAuth.js.map +1 -1
  52. package/dist/src/ui/auth/useAuth.test.js +1 -1
  53. package/dist/src/ui/auth/useAuth.test.js.map +1 -1
  54. package/dist/src/ui/commands/authCommand.js +103 -4
  55. package/dist/src/ui/commands/authCommand.js.map +1 -1
  56. package/dist/src/ui/commands/authCommand.test.js +36 -4
  57. package/dist/src/ui/commands/authCommand.test.js.map +1 -1
  58. package/dist/src/ui/commands/thinkCommand.d.ts +8 -0
  59. package/dist/src/ui/commands/thinkCommand.js +29 -0
  60. package/dist/src/ui/commands/thinkCommand.js.map +1 -0
  61. package/dist/src/ui/commands/types.d.ts +1 -1
  62. package/dist/src/ui/commands/types.js.map +1 -1
  63. package/dist/src/ui/components/DialogManager.js +66 -16
  64. package/dist/src/ui/components/DialogManager.js.map +1 -1
  65. package/dist/src/ui/components/Footer.js +3 -1
  66. package/dist/src/ui/components/Footer.js.map +1 -1
  67. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  68. package/dist/src/ui/components/SettingsDialog.js +84 -8
  69. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  70. package/dist/src/ui/components/shared/TextInput.js +1 -1
  71. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  72. package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -2
  73. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  74. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -0
  75. package/dist/src/ui/hooks/slashCommandProcessor.js +3 -0
  76. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  77. package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -0
  78. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  79. package/dist/src/ui/hooks/useAtCompletion.test.js +50 -45
  80. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  81. package/dist/src/ui/hooks/useQuotaAndFallback.js +4 -1
  82. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  83. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +1 -1
  84. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  85. package/dist/src/ui/types.d.ts +2 -1
  86. package/dist/src/ui/types.js +1 -0
  87. package/dist/src/ui/types.js.map +1 -1
  88. package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  89. package/dist/src/utils/updateEventEmitter.d.ts +1 -1
  90. package/dist/src/utils/webRemoteServer.js +3 -6
  91. package/dist/src/utils/webRemoteServer.js.map +1 -1
  92. package/dist/src/utils/webRemoteServer.test.js +1 -1
  93. package/dist/src/utils/webRemoteServer.test.js.map +1 -1
  94. package/dist/src/validateNonInterActiveAuth.js +4 -1
  95. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/package.json +4 -4
@@ -7,40 +7,65 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  */
8
8
  import { Box, Text } from 'ink';
9
9
  import { useMemo, useState } from 'react';
10
- import { AuthType, buildWizardSettingsPatch } from '@terminai/core';
10
+ import { buildWizardSettingsPatch } from '@terminai/core';
11
11
  import { SettingScope } from '../../config/settings.js';
12
12
  import { theme } from '../semantic-colors.js';
13
- import { useUIState } from '../contexts/UIStateContext.js';
14
13
  import { useTextBuffer } from '../components/shared/text-buffer.js';
15
14
  import { TextInput } from '../components/shared/TextInput.js';
16
- export function OpenAICompatibleSetupDialog({ settings, onBack, onComplete, onAuthError, }) {
17
- const { mainAreaWidth } = useUIState();
18
- const viewportWidth = Math.max(20, mainAreaWidth - 8);
15
+ import { checkExhaustive } from '../../utils/checks.js';
16
+ import process from 'node:process';
17
+ export function OpenAICompatibleSetupDialog({ settings, terminalWidth, onBack, onComplete, onAuthError, }) {
18
+ const viewportWidth = Math.max(20, (terminalWidth ?? process.stdout.columns ?? 80) - 8);
19
19
  const [step, setStep] = useState('base_url');
20
+ // Prefill from settings if available
21
+ const openaiSettings = settings.merged.llm?.openaiCompatible;
22
+ const defaultBaseUrl = openaiSettings?.baseUrl || 'http://localhost:11434/v1';
23
+ const defaultModel = openaiSettings?.model || '';
24
+ const defaultEnvVar = openaiSettings?.auth?.envVarName || 'OPENAI_API_KEY';
20
25
  const baseUrlBuffer = useTextBuffer({
21
- initialText: 'http://localhost:11434/v1',
22
- initialCursorOffset: 'http://localhost:11434/v1'.length,
26
+ initialText: defaultBaseUrl,
27
+ initialCursorOffset: defaultBaseUrl.length,
23
28
  viewport: { width: viewportWidth, height: 3 },
24
29
  isValidPath: () => false,
25
30
  inputFilter: (text) => text.replace(/[\r\n]/g, ''),
26
31
  singleLine: true,
27
32
  });
28
33
  const modelBuffer = useTextBuffer({
29
- initialText: '',
30
- initialCursorOffset: 0,
34
+ initialText: defaultModel,
35
+ initialCursorOffset: defaultModel.length,
31
36
  viewport: { width: viewportWidth, height: 3 },
32
37
  isValidPath: () => false,
33
38
  inputFilter: (text) => text.replace(/[\r\n]/g, ''),
34
39
  singleLine: true,
35
40
  });
36
41
  const envVarBuffer = useTextBuffer({
37
- initialText: 'OPENAI_API_KEY',
38
- initialCursorOffset: 'OPENAI_API_KEY'.length,
42
+ initialText: defaultEnvVar,
43
+ initialCursorOffset: defaultEnvVar.length,
39
44
  viewport: { width: viewportWidth, height: 3 },
40
45
  isValidPath: () => false,
41
46
  inputFilter: (text) => text.replace(/[\r\n]/g, ''),
42
47
  singleLine: true,
43
48
  });
49
+ const apiKeyBuffer = useTextBuffer({
50
+ initialText: '',
51
+ initialCursorOffset: 0,
52
+ viewport: { width: viewportWidth, height: 3 },
53
+ isValidPath: () => false,
54
+ inputFilter: (text) => text.replace(/[\r\n]/g, ''),
55
+ singleLine: true,
56
+ });
57
+ const targetScope = useMemo(() => {
58
+ const workspaceSettings = settings.forScope(SettingScope.Workspace).settings;
59
+ const workspaceOpenai = workspaceSettings.llm?.openaiCompatible;
60
+ const hasWorkspaceOverride = workspaceSettings.llm?.provider !== undefined ||
61
+ workspaceSettings.llm?.openaiCompatible !== undefined ||
62
+ workspaceSettings.llm?.openaiChatgptOauth !== undefined ||
63
+ !!workspaceOpenai?.baseUrl ||
64
+ !!workspaceOpenai?.model ||
65
+ !!workspaceOpenai?.auth?.type ||
66
+ !!workspaceOpenai?.auth?.envVarName;
67
+ return hasWorkspaceOverride ? SettingScope.Workspace : SettingScope.User;
68
+ }, [settings]);
44
69
  const { title, description, buffer, onSubmit } = useMemo(() => {
45
70
  switch (step) {
46
71
  case 'base_url':
@@ -87,28 +112,72 @@ export function OpenAICompatibleSetupDialog({ settings, onBack, onComplete, onAu
87
112
  onAuthError('Env var name is required.');
88
113
  return;
89
114
  }
115
+ setStep('api_key');
116
+ },
117
+ };
118
+ case 'api_key':
119
+ return {
120
+ title: 'OpenAI Compatible setup',
121
+ description: 'Optional: paste your API key for this session now (press Enter to skip).',
122
+ buffer: apiKeyBuffer,
123
+ onSubmit: () => {
124
+ onAuthError(null);
125
+ const baseUrl = baseUrlBuffer.text.trim();
126
+ const model = modelBuffer.text.trim();
127
+ const envVarName = envVarBuffer.text.trim();
128
+ const apiKey = apiKeyBuffer.text.trim();
129
+ if (!baseUrl) {
130
+ onAuthError('Base URL is required.');
131
+ setStep('base_url');
132
+ return;
133
+ }
134
+ if (!model) {
135
+ onAuthError('Model is required.');
136
+ setStep('model');
137
+ return;
138
+ }
139
+ if (!envVarName) {
140
+ onAuthError('Env var name is required.');
141
+ setStep('env_var');
142
+ return;
143
+ }
90
144
  const patches = buildWizardSettingsPatch({
91
145
  provider: 'openai_compatible',
92
146
  openaiCompatible: { baseUrl, model, envVarName },
93
147
  });
94
148
  for (const patch of patches) {
95
- settings.setValue(SettingScope.User, patch.path, patch.value);
149
+ settings.setValue(targetScope, patch.path, patch.value);
96
150
  }
97
- // Task 25: ensure auth selection is set (used to initialize core Config).
98
- settings.setValue(SettingScope.User, 'security.auth.selectedType', AuthType.USE_OPENAI_COMPATIBLE);
99
- onComplete();
151
+ if (apiKey.length > 0) {
152
+ process.env[envVarName] = apiKey;
153
+ }
154
+ void onComplete();
155
+ },
156
+ };
157
+ default:
158
+ checkExhaustive(step);
159
+ return {
160
+ title: 'OpenAI Compatible setup',
161
+ description: 'Enter the base URL for your provider (http:// allowed for local).',
162
+ buffer: baseUrlBuffer,
163
+ onSubmit: () => {
164
+ onAuthError(null);
165
+ setStep('model');
100
166
  },
101
167
  };
102
168
  }
103
169
  }, [
104
170
  baseUrlBuffer,
105
171
  envVarBuffer,
172
+ apiKeyBuffer,
106
173
  modelBuffer,
107
174
  onAuthError,
108
175
  settings,
109
176
  step,
110
177
  onComplete,
178
+ setStep,
179
+ targetScope,
111
180
  ]);
112
- return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.focused, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, color: theme.text.primary, children: title }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.primary, children: description }) }), _jsx(Box, { marginTop: 1, children: _jsx(Box, { borderStyle: "round", borderColor: theme.border.default, paddingX: 1, flexGrow: 1, children: _jsx(TextInput, { buffer: buffer, onSubmit: onSubmit, onCancel: onBack }) }) }), step === 'env_var' && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.secondary, children: "Your API key is NOT stored in settings." }), _jsx(Text, { color: theme.text.secondary, children: "Export it before running TerminaI:" }), _jsxs(Text, { color: theme.text.link, children: ["export ", envVarBuffer.text || 'OPENAI_API_KEY', "=\"YOUR_KEY\""] })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "(Press Enter to continue, Esc to go back)" }) })] }));
181
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.focused, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, color: theme.text.primary, children: title }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.primary, children: description }) }), _jsx(Box, { marginTop: 1, children: _jsx(Box, { borderStyle: "round", borderColor: theme.border.default, paddingX: 1, flexGrow: 1, children: _jsx(TextInput, { buffer: buffer, onSubmit: onSubmit, onCancel: onBack }) }) }), (step === 'env_var' || step === 'api_key') && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.secondary, children: "Your API key is NOT stored in settings." }), _jsx(Text, { color: theme.text.secondary, children: "Export it before running TerminaI:" }), _jsx(Text, { color: theme.text.link, children: `export ${envVarBuffer.text || 'OPENAI_API_KEY'}='YOUR_KEY'` }), _jsxs(Text, { color: theme.text.secondary, children: ["Saving config scope:", ' ', targetScope === SettingScope.Workspace ? 'workspace' : 'user'] })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "(Press Enter to continue, Esc to go back)" }) })] }));
113
182
  }
114
183
  //# sourceMappingURL=OpenAICompatibleSetupDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAICompatibleSetupDialog.js","sourceRoot":"","sources":["../../../../src/ui/auth/OpenAICompatibleSetupDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAICompatibleSetupDialog.js","sourceRoot":"","sources":["../../../../src/ui/auth/OpenAICompatibleSetupDialog.tsx"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import type { LoadedSettings } from '../../config/settings.js';
8
8
  interface Props {
9
9
  settings: LoadedSettings;
10
10
  onSelectOpenAICompatible: () => void;
11
- onProceedToGeminiAuth: () => void;
11
+ onSelectOpenAIChatGptOauth: () => void;
12
+ onProceedToGeminiAuth: () => void | Promise<void>;
12
13
  onAuthError: (error: string | null) => void;
13
14
  }
14
- export declare function ProviderWizard({ settings, onSelectOpenAICompatible, onProceedToGeminiAuth, onAuthError, }: Props): import("react/jsx-runtime").JSX.Element;
15
+ export declare function ProviderWizard({ settings, onSelectOpenAICompatible, onSelectOpenAIChatGptOauth, onProceedToGeminiAuth, onAuthError, }: Props): import("react/jsx-runtime").JSX.Element;
15
16
  export {};
@@ -10,18 +10,43 @@ import { theme } from '../semantic-colors.js';
10
10
  import { RadioButtonSelect } from '../components/shared/RadioButtonSelect.js';
11
11
  import { SettingScope } from '../../config/settings.js';
12
12
  import { buildWizardSettingsPatch } from '@terminai/core';
13
- export function ProviderWizard({ settings, onSelectOpenAICompatible, onProceedToGeminiAuth, onAuthError, }) {
13
+ export function ProviderWizard({ settings, onSelectOpenAICompatible, onSelectOpenAIChatGptOauth, onProceedToGeminiAuth, onAuthError, }) {
14
+ const isOpenAiChatGptOauthDisabled = (() => {
15
+ const raw = process.env['TERMINAI_DISABLE_OPENAI_CHATGPT_OAUTH'];
16
+ if (raw === undefined)
17
+ return false;
18
+ const normalized = raw.trim().toLowerCase();
19
+ return (normalized === '1' ||
20
+ normalized === 'true' ||
21
+ normalized === 'yes' ||
22
+ normalized === 'on');
23
+ })();
24
+ const targetScope = (() => {
25
+ const workspaceSettings = settings.forScope(SettingScope.Workspace).settings;
26
+ const hasWorkspaceOverride = workspaceSettings.llm?.provider !== undefined ||
27
+ workspaceSettings.llm?.openaiCompatible !== undefined;
28
+ return hasWorkspaceOverride ? SettingScope.Workspace : SettingScope.User;
29
+ })();
14
30
  const applyPatches = (patches) => {
15
31
  for (const patch of patches) {
16
- settings.setValue(SettingScope.User, patch.path, patch.value);
32
+ settings.setValue(targetScope, patch.path, patch.value);
17
33
  }
18
34
  };
19
- return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.focused, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, color: theme.text.primary, children: "Choose your model provider" }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.primary, children: "TerminaI can use different providers. Select one to continue:" }) }), _jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: [
35
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.focused, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, color: theme.text.primary, children: "Choose your model provider" }), targetScope === SettingScope.Workspace && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "yellow", children: "\u26A0\uFE0F Workspace settings detected - selection will apply to this project only." }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.primary, children: "TerminaI can use different providers. Select one to continue:" }) }), _jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: [
20
36
  {
21
37
  label: 'Google Gemini',
22
38
  value: 'gemini',
23
39
  key: 'gemini',
24
40
  },
41
+ ...(isOpenAiChatGptOauthDisabled
42
+ ? []
43
+ : [
44
+ {
45
+ label: 'ChatGPT Plus/Pro (OAuth)',
46
+ value: 'openai_chatgpt_oauth',
47
+ key: 'openai_chatgpt_oauth',
48
+ },
49
+ ]),
25
50
  {
26
51
  label: 'OpenAI Compatible',
27
52
  value: 'openai_compatible',
@@ -39,13 +64,24 @@ export function ProviderWizard({ settings, onSelectOpenAICompatible, onProceedTo
39
64
  onSelectOpenAICompatible();
40
65
  return;
41
66
  }
67
+ if (provider === 'openai_chatgpt_oauth') {
68
+ onSelectOpenAIChatGptOauth();
69
+ return;
70
+ }
42
71
  if (provider === 'anthropic') {
43
72
  onAuthError('Anthropic is not yet supported.');
44
73
  return;
45
74
  }
46
75
  // Gemini: persist provider selection, then proceed to existing auth dialog.
47
76
  applyPatches(buildWizardSettingsPatch({ provider: 'gemini' }));
48
- onProceedToGeminiAuth();
77
+ // 2.2 Fix: Clear OpenAI auth type if present to avoid inconsistent state
78
+ const currentAuthType = settings.merged.security?.auth?.selectedType;
79
+ if (currentAuthType === 'openai-compatible' ||
80
+ currentAuthType === 'openai-chatgpt-oauth') {
81
+ settings.setValue(SettingScope.User, 'security.auth.selectedType', undefined);
82
+ settings.setValue(SettingScope.Workspace, 'security.auth.selectedType', undefined);
83
+ }
84
+ void onProceedToGeminiAuth();
49
85
  }, onHighlight: () => {
50
86
  onAuthError(null);
51
87
  } }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "(Use Enter to select)" }) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderWizard.js","sourceRoot":"","sources":["../../../../src/ui/auth/ProviderWizard.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAmB,MAAM,gBAAgB,CAAC;AAS3E,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,GACL;IACN,MAAM,YAAY,GAAG,CAAC,OAAgD,EAAE,EAAE;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EACjC,aAAa,EAAC,QAAQ,EACtB,OAAO,EAAE,CAAC,EACV,KAAK,EAAC,MAAM,aAEZ,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,2CAE7B,EACP,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,8EAExB,GACH,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,iBAAiB,IAChB,KAAK,EAAE;wBACL;4BACE,KAAK,EAAE,eAAe;4BACtB,KAAK,EAAE,QAAQ;4BACf,GAAG,EAAE,QAAQ;yBACd;wBACD;4BACE,KAAK,EAAE,mBAAmB;4BAC1B,KAAK,EAAE,mBAAmB;4BAC1B,GAAG,EAAE,mBAAmB;yBACzB;wBACD;4BACE,KAAK,EAAE,yBAAyB;4BAChC,KAAK,EAAE,WAAW;4BAClB,GAAG,EAAE,WAAW;4BAChB,QAAQ,EAAE,IAAI;yBACf;qBACF,EACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACrB,WAAW,CAAC,IAAI,CAAC,CAAC;wBAElB,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;4BACrC,wBAAwB,EAAE,CAAC;4BAC3B,OAAO;wBACT,CAAC;wBAED,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;4BAC7B,WAAW,CAAC,iCAAiC,CAAC,CAAC;4BAC/C,OAAO;wBACT,CAAC;wBAED,4EAA4E;wBAC5E,YAAY,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBAC/D,qBAAqB,EAAE,CAAC;oBAC1B,CAAC,EACD,WAAW,EAAE,GAAG,EAAE;wBAChB,WAAW,CAAC,IAAI,CAAC,CAAC;oBACpB,CAAC,GACD,GACE,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,sCAA8B,GAC3D,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProviderWizard.js","sourceRoot":"","sources":["../../../../src/ui/auth/ProviderWizard.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  * Portions Copyright 2025 TerminaI Authors
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
- import { describe, expect, it, vi } from 'vitest';
8
+ import { describe, expect, it, vi, afterEach } from 'vitest';
9
9
  import { ProviderWizard } from './ProviderWizard.js';
10
10
  import { renderWithProviders } from '../../test-utils/render.js';
11
11
  import { SettingScope } from '../../config/settings.js';
@@ -22,33 +22,71 @@ function getRadioProps() {
22
22
  return call;
23
23
  }
24
24
  describe('ProviderWizard', () => {
25
+ afterEach(() => {
26
+ vi.unstubAllEnvs();
27
+ });
25
28
  it('selecting gemini writes llm.provider and proceeds to gemini auth', () => {
26
29
  const settings = {
27
30
  merged: {},
28
31
  setValue: vi.fn(),
32
+ forScope: vi.fn(() => ({ settings: {} })),
29
33
  };
30
34
  const onSelectOpenAICompatible = vi.fn();
35
+ const onSelectOpenAIChatGptOauth = vi.fn();
31
36
  const onProceedToGeminiAuth = vi.fn();
32
37
  const onAuthError = vi.fn();
33
- renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: onSelectOpenAICompatible, onProceedToGeminiAuth: onProceedToGeminiAuth, onAuthError: onAuthError }));
38
+ renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: onSelectOpenAICompatible, onSelectOpenAIChatGptOauth: onSelectOpenAIChatGptOauth, onProceedToGeminiAuth: onProceedToGeminiAuth, onAuthError: onAuthError }));
34
39
  getRadioProps().onSelect('gemini');
35
40
  expect(settings.setValue).toHaveBeenCalledWith(SettingScope.User, 'llm.provider', 'gemini');
36
41
  expect(onProceedToGeminiAuth).toHaveBeenCalledOnce();
37
42
  expect(onSelectOpenAICompatible).not.toHaveBeenCalled();
43
+ expect(onSelectOpenAIChatGptOauth).not.toHaveBeenCalled();
38
44
  });
39
45
  it('selecting openai_compatible proceeds to OpenAI setup without writing partial settings', () => {
40
46
  const settings = {
41
47
  merged: {},
42
48
  setValue: vi.fn(),
49
+ forScope: vi.fn(() => ({ settings: {} })),
43
50
  };
44
51
  const onSelectOpenAICompatible = vi.fn();
52
+ const onSelectOpenAIChatGptOauth = vi.fn();
45
53
  const onProceedToGeminiAuth = vi.fn();
46
54
  const onAuthError = vi.fn();
47
- renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: onSelectOpenAICompatible, onProceedToGeminiAuth: onProceedToGeminiAuth, onAuthError: onAuthError }));
55
+ renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: onSelectOpenAICompatible, onSelectOpenAIChatGptOauth: onSelectOpenAIChatGptOauth, onProceedToGeminiAuth: onProceedToGeminiAuth, onAuthError: onAuthError }));
48
56
  getRadioProps().onSelect('openai_compatible');
49
57
  expect(onSelectOpenAICompatible).toHaveBeenCalledOnce();
50
58
  expect(onProceedToGeminiAuth).not.toHaveBeenCalled();
51
59
  expect(settings.setValue).not.toHaveBeenCalled();
52
60
  });
61
+ it('selecting openai_chatgpt_oauth proceeds to ChatGPT OAuth setup without writing partial settings', () => {
62
+ const settings = {
63
+ merged: {},
64
+ setValue: vi.fn(),
65
+ forScope: vi.fn(() => ({ settings: {} })),
66
+ };
67
+ const onSelectOpenAICompatible = vi.fn();
68
+ const onSelectOpenAIChatGptOauth = vi.fn();
69
+ const onProceedToGeminiAuth = vi.fn();
70
+ const onAuthError = vi.fn();
71
+ renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: onSelectOpenAICompatible, onSelectOpenAIChatGptOauth: onSelectOpenAIChatGptOauth, onProceedToGeminiAuth: onProceedToGeminiAuth, onAuthError: onAuthError }));
72
+ getRadioProps().onSelect('openai_chatgpt_oauth');
73
+ expect(onSelectOpenAIChatGptOauth).toHaveBeenCalledOnce();
74
+ expect(onProceedToGeminiAuth).not.toHaveBeenCalled();
75
+ expect(onSelectOpenAICompatible).not.toHaveBeenCalled();
76
+ expect(settings.setValue).not.toHaveBeenCalled();
77
+ });
78
+ it('hides openai_chatgpt_oauth when disabled by env var', () => {
79
+ vi.stubEnv('TERMINAI_DISABLE_OPENAI_CHATGPT_OAUTH', '1');
80
+ const settings = {
81
+ merged: {},
82
+ setValue: vi.fn(),
83
+ forScope: vi.fn(() => ({ settings: {} })),
84
+ };
85
+ renderWithProviders(_jsx(ProviderWizard, { settings: settings, onSelectOpenAICompatible: vi.fn(), onSelectOpenAIChatGptOauth: vi.fn(), onProceedToGeminiAuth: vi.fn(), onAuthError: vi.fn() }));
86
+ const values = getRadioProps().items.map((item) => item.value);
87
+ expect(values).not.toContain('openai_chatgpt_oauth');
88
+ expect(values).toContain('openai_compatible');
89
+ expect(values).toContain('gemini');
90
+ });
53
91
  });
54
92
  //# sourceMappingURL=ProviderWizard.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderWizard.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/ProviderWizard.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProviderWizard.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/ProviderWizard.test.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { AuthType, loadApiKey, debugLogger } from '@terminai/core';
9
9
  import { getErrorMessage } from '@terminai/core';
10
10
  import { AuthState } from '../types.js';
11
11
  import { validateAuthMethod } from '../../config/auth.js';
12
+ import { resolveEffectiveAuthType } from '../../config/effectiveAuthType.js';
12
13
  export function validateAuthMethodWithSettings(authType, settings) {
13
14
  const enforcedType = settings.merged.security?.auth?.enforcedType;
14
15
  if (enforcedType && enforcedType !== authType) {
@@ -55,24 +56,24 @@ export const useAuthCommand = (settings, config) => {
55
56
  if (authState !== AuthState.Unauthenticated) {
56
57
  return;
57
58
  }
58
- const authType = settings.merged.security?.auth?.selectedType;
59
- if (!authType) {
59
+ const effectiveAuthType = resolveEffectiveAuthType(settings.merged);
60
+ if (!effectiveAuthType) {
60
61
  if (process.env['GEMINI_API_KEY']) {
61
- onAuthError('Existing API key detected (GEMINI_API_KEY). Select "Gemini API Key" option to use it.');
62
+ onAuthError('Existing API key detected (GEMINI_API_KEY). Select "Gemini API Key" option to use it, or run /auth to switch providers.');
62
63
  }
63
64
  else {
64
- onAuthError('No authentication method selected.');
65
+ onAuthError('No authentication method selected. Run /auth to set up.');
65
66
  }
66
67
  return;
67
68
  }
68
- if (authType === AuthType.USE_GEMINI) {
69
+ if (effectiveAuthType === AuthType.USE_GEMINI) {
69
70
  const key = await reloadApiKey(); // Use the unified function
70
71
  if (!key) {
71
72
  setAuthState(AuthState.AwaitingApiKeyInput);
72
73
  return;
73
74
  }
74
75
  }
75
- const error = validateAuthMethodWithSettings(authType, settings);
76
+ const error = validateAuthMethodWithSettings(effectiveAuthType, settings);
76
77
  if (error) {
77
78
  onAuthError(error);
78
79
  return;
@@ -85,8 +86,8 @@ export const useAuthCommand = (settings, config) => {
85
86
  return;
86
87
  }
87
88
  try {
88
- await config.refreshAuth(authType);
89
- debugLogger.log(`Authenticated via "${authType}".`);
89
+ await config.refreshAuth(effectiveAuthType);
90
+ debugLogger.log(`Authenticated via "${effectiveAuthType}".`);
90
91
  setAuthError(null);
91
92
  setAuthState(AuthState.Authenticated);
92
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../../src/ui/auth/useAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../../src/ui/auth/useAuth.ts"],"names":[],"mappings":"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"}
@@ -104,7 +104,7 @@ describe('useAuth', () => {
104
104
  it('should set error if no auth type is selected and no env key', async () => {
105
105
  const { result } = renderHook(() => useAuthCommand(createSettings(undefined), mockConfig));
106
106
  await waitFor(() => {
107
- expect(result.current.authError).toBe('No authentication method selected.');
107
+ expect(result.current.authError).toBe('No authentication method selected. Run /auth to set up.');
108
108
  expect(result.current.authState).toBe(AuthState.Updating);
109
109
  });
110
110
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/useAuth.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAuth.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/useAuth.test.tsx"],"names":[],"mappings":"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"}