@terminai/cli 0.26.0 → 0.27.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 (183) hide show
  1. package/LICENSE +247 -0
  2. package/README.md +422 -0
  3. package/dist/index.js +0 -0
  4. package/dist/package.json +4 -4
  5. package/dist/src/config/config.d.ts +1 -0
  6. package/dist/src/config/config.integration.test.js +2 -3
  7. package/dist/src/config/config.integration.test.js.map +1 -1
  8. package/dist/src/config/config.js +13 -3
  9. package/dist/src/config/config.js.map +1 -1
  10. package/dist/src/config/config.test.js +6 -15
  11. package/dist/src/config/config.test.js.map +1 -1
  12. package/dist/src/config/extension.test.js +1 -1
  13. package/dist/src/config/extension.test.js.map +1 -1
  14. package/dist/src/config/settingsSchema.d.ts +11 -2
  15. package/dist/src/config/settingsSchema.js +14 -5
  16. package/dist/src/config/settingsSchema.js.map +1 -1
  17. package/dist/src/core/initializer.d.ts +1 -1
  18. package/dist/src/core/initializer.js +2 -2
  19. package/dist/src/core/initializer.js.map +1 -1
  20. package/dist/src/core/initializer.test.js +4 -0
  21. package/dist/src/core/initializer.test.js.map +1 -1
  22. package/dist/src/gemini.d.ts +2 -1
  23. package/dist/src/gemini.js +25 -5
  24. package/dist/src/gemini.js.map +1 -1
  25. package/dist/src/gemini.test.js +2 -1
  26. package/dist/src/gemini.test.js.map +1 -1
  27. package/dist/src/generated/git-commit.d.ts +2 -2
  28. package/dist/src/generated/git-commit.js +2 -2
  29. package/dist/src/generated/git-commit.js.map +1 -1
  30. package/dist/src/nonInteractiveCli.test.js +2 -3
  31. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  32. package/dist/src/services/BuiltinCommandLoader.d.ts +1 -1
  33. package/dist/src/services/BuiltinCommandLoader.js +7 -5
  34. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  35. package/dist/src/ui/AppContainer.d.ts +3 -2
  36. package/dist/src/ui/AppContainer.js +6 -1
  37. package/dist/src/ui/AppContainer.js.map +1 -1
  38. package/dist/src/ui/AppContainer.test.js +17 -0
  39. package/dist/src/ui/AppContainer.test.js.map +1 -1
  40. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.js +268 -84
  41. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.js.map +1 -1
  42. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.test.d.ts +7 -0
  43. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.test.js +116 -0
  44. package/dist/src/ui/auth/OpenAIChatGptOAuthSetupDialog.test.js.map +1 -0
  45. package/dist/src/ui/auth/ProviderWizard.js +6 -10
  46. package/dist/src/ui/auth/ProviderWizard.js.map +1 -1
  47. package/dist/src/ui/commands/aboutCommand.js +1 -0
  48. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  49. package/dist/src/ui/commands/auditCommand.js +1 -0
  50. package/dist/src/ui/commands/auditCommand.js.map +1 -1
  51. package/dist/src/ui/commands/authCommand.js +9 -0
  52. package/dist/src/ui/commands/authCommand.js.map +1 -1
  53. package/dist/src/ui/commands/authCommand.test.js +1 -0
  54. package/dist/src/ui/commands/authCommand.test.js.map +1 -1
  55. package/dist/src/ui/commands/bugCommand.js +3 -0
  56. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  57. package/dist/src/ui/commands/categories.d.ts +32 -0
  58. package/dist/src/ui/commands/categories.js +45 -0
  59. package/dist/src/ui/commands/categories.js.map +1 -0
  60. package/dist/src/ui/commands/chatCommand.js +5 -0
  61. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  62. package/dist/src/ui/commands/clearCommand.js +3 -0
  63. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  64. package/dist/src/ui/commands/compressCommand.js +1 -0
  65. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  66. package/dist/src/ui/commands/copyCommand.js +3 -0
  67. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  68. package/dist/src/ui/commands/directoryCommand.js +8 -0
  69. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  70. package/dist/src/ui/commands/docsCommand.js +2 -1
  71. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  72. package/dist/src/ui/commands/docsCommand.test.js +3 -3
  73. package/dist/src/ui/commands/docsCommand.test.js.map +1 -1
  74. package/dist/src/ui/commands/editorCommand.js +1 -0
  75. package/dist/src/ui/commands/editorCommand.js.map +1 -1
  76. package/dist/src/ui/commands/evaluateCommand.js +1 -0
  77. package/dist/src/ui/commands/evaluateCommand.js.map +1 -1
  78. package/dist/src/ui/commands/extensionsCommand.js +4 -1
  79. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  80. package/dist/src/ui/commands/extensionsCommand.test.js +4 -4
  81. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  82. package/dist/src/ui/commands/helpCommand.js +7 -2
  83. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  84. package/dist/src/ui/commands/helpCommand.test.js +1 -1
  85. package/dist/src/ui/commands/helpCommand.test.js.map +1 -1
  86. package/dist/src/ui/commands/hooksCommand.js +1 -0
  87. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  88. package/dist/src/ui/commands/ideCommand.js +2 -0
  89. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  90. package/dist/src/ui/commands/llmCommand.d.ts +14 -0
  91. package/dist/src/ui/commands/llmCommand.js +131 -0
  92. package/dist/src/ui/commands/llmCommand.js.map +1 -0
  93. package/dist/src/ui/commands/logsCommand.d.ts +8 -0
  94. package/dist/src/ui/commands/logsCommand.js +109 -0
  95. package/dist/src/ui/commands/logsCommand.js.map +1 -0
  96. package/dist/src/ui/commands/mcpCommand.js +3 -0
  97. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  98. package/dist/src/ui/commands/memoryCommand.js +8 -0
  99. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  100. package/dist/src/ui/commands/modelCommand.js +3 -0
  101. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  102. package/dist/src/ui/commands/permissionsCommand.js +1 -0
  103. package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
  104. package/dist/src/ui/commands/pinSecurityCommand.d.ts +13 -0
  105. package/dist/src/ui/commands/pinSecurityCommand.js +61 -0
  106. package/dist/src/ui/commands/pinSecurityCommand.js.map +1 -0
  107. package/dist/src/ui/commands/policiesCommand.js +1 -0
  108. package/dist/src/ui/commands/policiesCommand.js.map +1 -1
  109. package/dist/src/ui/commands/privacyCommand.js +1 -0
  110. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  111. package/dist/src/ui/commands/profileCommand.js +1 -0
  112. package/dist/src/ui/commands/profileCommand.js.map +1 -1
  113. package/dist/src/ui/commands/quitCommand.js +3 -0
  114. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  115. package/dist/src/ui/commands/recipesCommand.js +3 -0
  116. package/dist/src/ui/commands/recipesCommand.js.map +1 -1
  117. package/dist/src/ui/commands/restoreCommand.js +3 -0
  118. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  119. package/dist/src/ui/commands/resumeCommand.js +3 -0
  120. package/dist/src/ui/commands/resumeCommand.js.map +1 -1
  121. package/dist/src/ui/commands/sessionsCommand.js +1 -0
  122. package/dist/src/ui/commands/sessionsCommand.js.map +1 -1
  123. package/dist/src/ui/commands/settingsCommand.js +3 -0
  124. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  125. package/dist/src/ui/commands/setupGithubCommand.js +1 -0
  126. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  127. package/dist/src/ui/commands/statsCommand.js +3 -0
  128. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  129. package/dist/src/ui/commands/terminalSetupCommand.js +1 -0
  130. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  131. package/dist/src/ui/commands/themeCommand.js +1 -0
  132. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  133. package/dist/src/ui/commands/thinkCommand.js +3 -0
  134. package/dist/src/ui/commands/thinkCommand.js.map +1 -1
  135. package/dist/src/ui/commands/toolsCommand.js +3 -0
  136. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  137. package/dist/src/ui/commands/types.d.ts +22 -0
  138. package/dist/src/ui/commands/viewModeCommand.js +1 -0
  139. package/dist/src/ui/commands/viewModeCommand.js.map +1 -1
  140. package/dist/src/ui/commands/vimCommand.js +1 -0
  141. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  142. package/dist/src/ui/components/DialogManager.js +5 -5
  143. package/dist/src/ui/components/DialogManager.js.map +1 -1
  144. package/dist/src/ui/components/Help.d.ts +3 -2
  145. package/dist/src/ui/components/Help.js +43 -9
  146. package/dist/src/ui/components/Help.js.map +1 -1
  147. package/dist/src/ui/components/Help.test.js +3 -1
  148. package/dist/src/ui/components/Help.test.js.map +1 -1
  149. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  150. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  151. package/dist/src/ui/components/SessionSeparator.d.ts +16 -0
  152. package/dist/src/ui/components/SessionSeparator.js +48 -0
  153. package/dist/src/ui/components/SessionSeparator.js.map +1 -0
  154. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
  155. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  156. package/dist/src/ui/components/shared/text-buffer.test.js +4 -1
  157. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  158. package/dist/src/ui/hooks/useAtCompletion.test.js +5 -1
  159. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  160. package/dist/src/ui/hooks/useReplay.d.ts +11 -0
  161. package/dist/src/ui/hooks/useReplay.js +64 -0
  162. package/dist/src/ui/hooks/useReplay.js.map +1 -0
  163. package/dist/src/ui/types.d.ts +1 -0
  164. package/dist/src/ui/types.js.map +1 -1
  165. package/dist/src/ui/utils/clipboardUtils.js +1 -1
  166. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  167. package/dist/src/ui/utils/clipboardUtils.test.js +49 -11
  168. package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
  169. package/dist/src/ui/utils/terminalSetup.test.js +5 -0
  170. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
  171. package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  172. package/dist/src/utils/replay.d.ts +14 -0
  173. package/dist/src/utils/replay.js +62 -0
  174. package/dist/src/utils/replay.js.map +1 -0
  175. package/dist/src/utils/replay.test.d.ts +7 -0
  176. package/dist/src/utils/replay.test.js +46 -0
  177. package/dist/src/utils/replay.test.js.map +1 -0
  178. package/dist/src/utils/updateEventEmitter.d.ts +1 -1
  179. package/dist/src/utils/webRemoteServer.test.js +1 -1
  180. package/dist/src/voice/voiceController.test.js +1 -1
  181. package/dist/src/voice/voiceController.test.js.map +1 -1
  182. package/dist/tsconfig.tsbuildinfo +1 -1
  183. package/package.json +4 -4
@@ -7,7 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  */
8
8
  import { Box, Text } from 'ink';
9
9
  import { useCallback, useEffect, useRef, useState } from 'react';
10
- import { buildWizardSettingsPatch, ChatGptOAuthClient, ChatGptOAuthCredentialStorage, DEFAULT_CHATGPT_CODEX_BASE_URL, DEFAULT_OPENAI_OAUTH_REDIRECT_PORT, tryImportFromCodexCli, tryImportFromOpenCode, coreEvents, CoreEvent, } from '@terminai/core';
10
+ import { buildWizardSettingsPatch, ChatGptOAuthClient, ChatGptOAuthCredentialStorage, DEFAULT_CHATGPT_CODEX_BASE_URL, DEFAULT_OPENAI_OAUTH_REDIRECT_PORT, tryImportFromCodexCli, tryImportFromOpenCode, coreEvents, openBrowserSecurely, shouldLaunchBrowser, } from '@terminai/core';
11
11
  import { SettingScope } from '../../config/settings.js';
12
12
  import { theme } from '../semantic-colors.js';
13
13
  import { useTextBuffer } from '../components/shared/text-buffer.js';
@@ -15,9 +15,23 @@ import { TextInput } from '../components/shared/TextInput.js';
15
15
  import { checkExhaustive } from '../../utils/checks.js';
16
16
  import process from 'node:process';
17
17
  import * as http from 'node:http';
18
+ import * as net from 'node:net';
18
19
  import { URL } from 'node:url';
19
20
  import { CliSpinner } from '../components/CliSpinner.js';
20
- import open from 'open';
21
+ function isTruthyEnvVar(name) {
22
+ const raw = process.env[name];
23
+ if (raw === undefined)
24
+ return false;
25
+ const normalized = raw.trim().toLowerCase();
26
+ return (normalized === '1' ||
27
+ normalized === 'true' ||
28
+ normalized === 'yes' ||
29
+ normalized === 'on');
30
+ }
31
+ const OAUTH_DEBUG = isTruthyEnvVar('TERMINAI_OAUTH_DEBUG');
32
+ // Module-scoped to avoid re-evaluation on each render
33
+ const REDIRECT_HOST = process.env['OAUTH_REDIRECT_HOST'] || 'localhost';
34
+ const BIND_HOST = process.env['OAUTH_BIND_HOST'] || '127.0.0.1';
21
35
  export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack, onComplete, onAuthError, }) {
22
36
  const viewportWidth = Math.max(20, (terminalWidth ?? process.stdout.columns ?? 80) - 8);
23
37
  const [step, setStep] = useState('model');
@@ -25,7 +39,9 @@ export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack,
25
39
  const [oauthState, setOauthState] = useState(null);
26
40
  const [codeVerifier, setCodeVerifier] = useState(null);
27
41
  const [oauthInProgress, setOauthInProgress] = useState(false);
42
+ const [callbackServerStatus, setCallbackServerStatus] = useState('idle');
28
43
  const serverRef = useRef(null);
44
+ const oauthCallbackTimeoutRef = useRef(null);
29
45
  const openaiSettings = settings.merged.llm?.openaiChatgptOauth;
30
46
  const defaultModel = openaiSettings?.model || '';
31
47
  const defaultBaseUrl = openaiSettings?.baseUrl || DEFAULT_CHATGPT_CODEX_BASE_URL;
@@ -74,57 +90,100 @@ export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack,
74
90
  // ignore
75
91
  }
76
92
  serverRef.current = null;
93
+ if (oauthCallbackTimeoutRef.current) {
94
+ clearTimeout(oauthCallbackTimeoutRef.current);
95
+ }
96
+ oauthCallbackTimeoutRef.current = null;
77
97
  }, []);
78
98
  const startOauthFlow = useCallback(async (client) => {
79
- const redirectUri = `http://localhost:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}/auth/callback`;
99
+ if (OAUTH_DEBUG)
100
+ console.log('[OAuth DEBUG] startOauthFlow called');
101
+ setCallbackServerStatus('binding');
102
+ const redirectUri = `http://${REDIRECT_HOST}:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}/auth/callback`;
80
103
  const start = client.startAuthorization({ redirectUri });
104
+ if (OAUTH_DEBUG)
105
+ console.log('[OAuth DEBUG] Authorization started, state:', start.state);
81
106
  setAuthUrl(start.authUrl);
82
107
  setOauthState(start.state);
83
108
  setCodeVerifier(start.codeVerifier);
84
109
  setOauthInProgress(true);
85
- // Auto-open browser like Google OAuth does
86
- coreEvents.emit(CoreEvent.UserFeedback, {
87
- severity: 'info',
88
- message: `\nChatGPT OAuth login required.\n` +
89
- `Attempting to open authentication page in your browser.\n` +
90
- `Otherwise navigate to:\n${start.authUrl}\n`,
91
- });
110
+ // Show URL first (fallback for manual copy-paste)
111
+ coreEvents.emitFeedback('info', `\nChatGPT OAuth login required.\n` +
112
+ `Please sign in via your browser. If it doesn't open automatically, copy this URL:\n${start.authUrl}\n`);
113
+ if (OAUTH_DEBUG)
114
+ console.log('[OAuth DEBUG] About to call bindOAuthServerWithCancelRetry');
92
115
  try {
93
- const childProcess = await open(start.authUrl);
94
- childProcess.on('error', (error) => {
95
- coreEvents.emit(CoreEvent.UserFeedback, {
96
- severity: 'warning',
97
- message: `Could not auto-open browser: ${error.message}. Please copy the URL above.`,
98
- });
116
+ const server = await bindOAuthServerWithCancelRetry({
117
+ host: BIND_HOST,
118
+ expectedState: start.state,
119
+ onCode: async (code) => {
120
+ if (OAUTH_DEBUG)
121
+ console.log('[OAuth DEBUG] onCode callback triggered with code');
122
+ if (oauthCallbackTimeoutRef.current) {
123
+ clearTimeout(oauthCallbackTimeoutRef.current);
124
+ }
125
+ oauthCallbackTimeoutRef.current = null;
126
+ const creds = await client.exchangeAuthorizationCode({
127
+ code,
128
+ redirectUri,
129
+ codeVerifier: start.codeVerifier,
130
+ });
131
+ await ChatGptOAuthCredentialStorage.save(creds);
132
+ coreEvents.emitFeedback('info', 'ChatGPT OAuth authentication succeeded!\n');
133
+ void onComplete();
134
+ },
135
+ onError: (e) => {
136
+ if (OAUTH_DEBUG)
137
+ console.log('[OAuth DEBUG] onError callback triggered:', e.message);
138
+ onAuthError(e.message);
139
+ },
140
+ });
141
+ if (OAUTH_DEBUG)
142
+ console.log('[OAuth DEBUG] bindOAuthServerWithCancelRetry returned, server:', !!server);
143
+ setCallbackServerStatus('listening');
144
+ serverRef.current = server;
145
+ if (oauthCallbackTimeoutRef.current) {
146
+ clearTimeout(oauthCallbackTimeoutRef.current);
147
+ }
148
+ oauthCallbackTimeoutRef.current = setTimeout(() => {
149
+ onAuthError('Timed out waiting for OAuth callback. Paste the full redirect URL from your browser.');
150
+ setCallbackServerStatus('failed');
151
+ try {
152
+ server.close();
153
+ }
154
+ catch {
155
+ // ignore
156
+ }
157
+ }, 2 * 60 * 1000);
158
+ server.once('close', () => {
159
+ if (oauthCallbackTimeoutRef.current) {
160
+ clearTimeout(oauthCallbackTimeoutRef.current);
161
+ }
162
+ oauthCallbackTimeoutRef.current = null;
99
163
  });
100
164
  }
101
- catch (_err) {
102
- // Browser auto-open failed, user can still copy the URL
103
- coreEvents.emit(CoreEvent.UserFeedback, {
104
- severity: 'warning',
105
- message: 'Could not auto-open browser. Please copy the URL above.',
165
+ catch (e) {
166
+ setCallbackServerStatus('failed');
167
+ throw e;
168
+ }
169
+ // Now launch the browser after server is listening (if GUI available)
170
+ if (shouldLaunchBrowser()) {
171
+ const launchTimeoutMs = 5000;
172
+ const launchPromise = openBrowserSecurely(start.authUrl).catch((error) => {
173
+ coreEvents.emitFeedback('warning', `Could not auto-open browser: ${error.message}. Please copy the URL above.`);
106
174
  });
175
+ const timeoutPromise = new Promise((resolve) => setTimeout(() => {
176
+ if (OAUTH_DEBUG)
177
+ console.log('[OAuth DEBUG] Browser launch attempt timed out');
178
+ resolve();
179
+ }, launchTimeoutMs));
180
+ // We don't await the launch indefinitely to prevent pathological hangs
181
+ void Promise.race([launchPromise, timeoutPromise]);
182
+ }
183
+ else {
184
+ if (OAUTH_DEBUG)
185
+ console.log('[OAuth DEBUG] Skipping browser launch (headless/SSH)');
107
186
  }
108
- const server = await bindOAuthServerWithCancelRetry({
109
- expectedState: start.state,
110
- onCode: async (code) => {
111
- const creds = await client.exchangeAuthorizationCode({
112
- code,
113
- redirectUri,
114
- codeVerifier: start.codeVerifier,
115
- });
116
- await ChatGptOAuthCredentialStorage.save(creds);
117
- coreEvents.emit(CoreEvent.UserFeedback, {
118
- severity: 'info',
119
- message: 'ChatGPT OAuth authentication succeeded!\n',
120
- });
121
- void onComplete();
122
- },
123
- onError: (e) => {
124
- onAuthError(e.message);
125
- },
126
- });
127
- serverRef.current = server;
128
187
  }, [onAuthError, onComplete]);
129
188
  const applyProviderSettings = useCallback(() => {
130
189
  const model = modelBuffer.text.trim();
@@ -159,14 +218,21 @@ export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack,
159
218
  onAuthError(null);
160
219
  if (!applyProviderSettings())
161
220
  return;
162
- const client = new ChatGptOAuthClient();
163
- const imported = (await tryImportFromCodexCli(client)) ??
164
- (await tryImportFromOpenCode(client));
165
- // Ensure imported credentials strictly have the required account ID
166
- if (imported && imported.accountId) {
167
- await ChatGptOAuthCredentialStorage.save(imported);
168
- void onComplete();
169
- return;
221
+ try {
222
+ const client = new ChatGptOAuthClient();
223
+ const imported = (await tryImportFromCodexCli(client)) ??
224
+ (await tryImportFromOpenCode(client));
225
+ // Ensure imported credentials strictly have the required account ID
226
+ if (imported && imported.accountId) {
227
+ await ChatGptOAuthCredentialStorage.save(imported);
228
+ void onComplete();
229
+ return;
230
+ }
231
+ }
232
+ catch (e) {
233
+ // Log but continue to OAuth flow - import is optional
234
+ const msg = e instanceof Error ? e.message : String(e);
235
+ coreEvents.emitFeedback('warning', `Could not import existing credentials: ${msg}`);
170
236
  }
171
237
  setStep('oauth');
172
238
  return;
@@ -174,30 +240,37 @@ export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack,
174
240
  case 'oauth': {
175
241
  // Manual paste submit
176
242
  onAuthError(null);
177
- const redirectUrl = manualPasteBuffer.text.trim();
178
- const parsed = parseRedirectUrl(redirectUrl);
179
- if (!parsed) {
180
- onAuthError('Could not parse redirect URL. Paste the full URL from your browser.');
181
- return;
182
- }
183
- if (!oauthState || parsed.state !== oauthState) {
184
- onAuthError('State mismatch. Restart the OAuth flow and try again.');
243
+ try {
244
+ const redirectUrl = manualPasteBuffer.text.trim();
245
+ const parsed = parseRedirectUrl(redirectUrl);
246
+ if (!parsed) {
247
+ onAuthError('Could not parse redirect URL. Paste the full URL from your browser.');
248
+ return;
249
+ }
250
+ if (!oauthState || parsed.state !== oauthState) {
251
+ onAuthError('State mismatch. Restart the OAuth flow and try again.');
252
+ return;
253
+ }
254
+ if (!codeVerifier) {
255
+ onAuthError('OAuth state is missing. Restart the OAuth flow.');
256
+ return;
257
+ }
258
+ const redirectUri = `http://${REDIRECT_HOST}:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}/auth/callback`;
259
+ const client = new ChatGptOAuthClient();
260
+ const creds = await client.exchangeAuthorizationCode({
261
+ code: parsed.code,
262
+ redirectUri,
263
+ codeVerifier,
264
+ });
265
+ await ChatGptOAuthCredentialStorage.save(creds);
266
+ void onComplete();
185
267
  return;
186
268
  }
187
- if (!codeVerifier) {
188
- onAuthError('OAuth state is missing. Restart the OAuth flow.');
269
+ catch (e) {
270
+ const msg = e instanceof Error ? e.message : String(e);
271
+ onAuthError(msg);
189
272
  return;
190
273
  }
191
- const redirectUri = `http://localhost:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}/auth/callback`;
192
- const client = new ChatGptOAuthClient();
193
- const creds = await client.exchangeAuthorizationCode({
194
- code: parsed.code,
195
- redirectUri,
196
- codeVerifier,
197
- });
198
- await ChatGptOAuthCredentialStorage.save(creds);
199
- void onComplete();
200
- return;
201
274
  }
202
275
  default:
203
276
  checkExhaustive(step);
@@ -241,7 +314,13 @@ export function OpenAIChatGptOAuthSetupDialog({ settings, terminalWidth, onBack,
241
314
  : step === 'base_url'
242
315
  ? baseUrlBuffer
243
316
  : manualPasteBuffer;
244
- 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 }) }), step === 'oauth' && authUrl && (_jsxs(Box, { marginTop: 1, flexDirection: "column", width: "100%", children: [_jsx(Text, { color: theme.text.secondary, children: "If browser didn't open, copy this URL:" }), _jsx(Box, { marginTop: 1, width: "100%", children: _jsx(Text, { color: theme.text.link, wrap: "wrap", children: authUrl }) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.text.secondary, children: [_jsx(CliSpinner, { type: "dots" }), " Waiting for OAuth callback on", ' ', `localhost:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}`] }) })] })), _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 }) }) }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: theme.text.secondary, children: "(Press Enter to continue, Esc to go back)" }), _jsxs(Text, { color: theme.text.secondary, children: ["Saving config scope:", ' ', targetScope === SettingScope.Workspace ? 'workspace' : 'user'] })] })] }));
317
+ 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 }) }), step === 'oauth' && authUrl && (_jsxs(Box, { marginTop: 1, flexDirection: "column", width: "100%", children: [_jsx(Text, { color: theme.text.secondary, children: "If browser didn't open, copy this URL:" }), _jsx(Box, { marginTop: 1, width: "100%", children: _jsx(Text, { color: theme.text.link, wrap: "wrap", children: authUrl }) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.text.secondary, children: [callbackServerStatus === 'failed' ? null : (_jsx(CliSpinner, { type: "dots" })), ' ', callbackServerStatus === 'listening'
318
+ ? 'Waiting for OAuth callback on '
319
+ : callbackServerStatus === 'failed'
320
+ ? 'Local callback server unavailable. Paste the full redirect URL below.'
321
+ : 'Starting local callback server on ', callbackServerStatus === 'failed'
322
+ ? null
323
+ : `localhost:${DEFAULT_OPENAI_OAUTH_REDIRECT_PORT}`] }) })] })), _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 }) }) }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: theme.text.secondary, children: "(Press Enter to continue, Esc to go back)" }), _jsxs(Text, { color: theme.text.secondary, children: ["Saving config scope:", ' ', targetScope === SettingScope.Workspace ? 'workspace' : 'user'] })] })] }));
245
324
  }
246
325
  function parseRedirectUrl(urlText) {
247
326
  try {
@@ -258,13 +337,22 @@ function parseRedirectUrl(urlText) {
258
337
  }
259
338
  async function bindOAuthServerWithCancelRetry(input) {
260
339
  const port = DEFAULT_OPENAI_OAUTH_REDIRECT_PORT;
261
- const host = 'localhost';
340
+ const host = input.host;
341
+ if (OAUTH_DEBUG)
342
+ console.log('[OAuth DEBUG] Creating callback server for', host, port);
262
343
  const server = http.createServer((req, res) => {
344
+ if (OAUTH_DEBUG)
345
+ console.log('[OAuth DEBUG] Received request:', req.method, req.url);
263
346
  try {
264
347
  const url = new URL(req.url ?? '/', `http://${host}:${port}`);
265
348
  if (url.pathname === '/cancel') {
266
- res.writeHead(200, { 'Content-Type': 'text/plain' });
267
- res.end('cancelled');
349
+ res.writeHead(200, {
350
+ 'Content-Type': 'text/plain',
351
+ Connection: 'close',
352
+ });
353
+ res.end('cancelled', () => {
354
+ req.socket.destroy();
355
+ });
268
356
  try {
269
357
  server.close();
270
358
  }
@@ -274,24 +362,50 @@ async function bindOAuthServerWithCancelRetry(input) {
274
362
  return;
275
363
  }
276
364
  if (url.pathname !== '/auth/callback') {
277
- res.writeHead(404, { 'Content-Type': 'text/plain' });
278
- res.end('not found');
365
+ res.writeHead(404, {
366
+ 'Content-Type': 'text/plain',
367
+ Connection: 'close',
368
+ });
369
+ res.end('not found', () => {
370
+ req.socket.destroy();
371
+ });
279
372
  return;
280
373
  }
281
374
  const code = url.searchParams.get('code') ?? '';
282
375
  const state = url.searchParams.get('state') ?? '';
283
376
  if (!code || !state) {
284
- res.writeHead(400, { 'Content-Type': 'text/plain' });
285
- res.end('missing code/state');
377
+ res.writeHead(400, {
378
+ 'Content-Type': 'text/plain',
379
+ Connection: 'close',
380
+ });
381
+ res.end('missing code/state', () => {
382
+ req.socket.destroy();
383
+ });
286
384
  return;
287
385
  }
288
386
  if (state !== input.expectedState) {
289
- res.writeHead(400, { 'Content-Type': 'text/plain' });
290
- res.end('state mismatch');
387
+ res.writeHead(400, {
388
+ 'Content-Type': 'text/plain',
389
+ Connection: 'close',
390
+ });
391
+ res.end('state mismatch', () => {
392
+ req.socket.destroy();
393
+ });
291
394
  return;
292
395
  }
293
- res.writeHead(200, { 'Content-Type': 'text/html' });
294
- res.end('<!doctype html><meta charset="utf-8"><title>TerminaI</title><p>Authentication complete. You can close this tab.</p>');
396
+ res.writeHead(200, {
397
+ 'Content-Type': 'text/html',
398
+ Connection: 'close',
399
+ });
400
+ res.end('<!doctype html><meta charset="utf-8"><title>TerminaI</title><p>Authentication complete. You can close this tab.</p>', () => {
401
+ req.socket.destroy();
402
+ });
403
+ try {
404
+ server.close();
405
+ }
406
+ catch {
407
+ // ignore
408
+ }
295
409
  void input.onCode(code).catch((e) => {
296
410
  const err = e instanceof Error ? e : new Error('OAuth exchange failed');
297
411
  input.onError(err);
@@ -300,8 +414,19 @@ async function bindOAuthServerWithCancelRetry(input) {
300
414
  catch (e) {
301
415
  const err = e instanceof Error ? e : new Error('OAuth callback failed');
302
416
  input.onError(err);
303
- res.writeHead(500, { 'Content-Type': 'text/plain' });
304
- res.end('error');
417
+ res.writeHead(500, {
418
+ 'Content-Type': 'text/plain',
419
+ Connection: 'close',
420
+ });
421
+ res.end('error', () => {
422
+ req.socket.destroy();
423
+ });
424
+ try {
425
+ server.close();
426
+ }
427
+ catch {
428
+ // ignore
429
+ }
305
430
  }
306
431
  });
307
432
  await listenWithCancelRetry(server, { host, port });
@@ -310,16 +435,35 @@ async function bindOAuthServerWithCancelRetry(input) {
310
435
  async function listenWithCancelRetry(server, input) {
311
436
  const attempts = 10;
312
437
  const delayMs = 200;
438
+ const listenTimeoutMs = 2_000;
313
439
  for (let i = 0; i < attempts; i++) {
440
+ if (OAUTH_DEBUG)
441
+ console.log(`[OAuth DEBUG] Bind attempt ${i + 1}/${attempts} to ${input.host}:${input.port}`);
314
442
  try {
315
443
  await new Promise((resolve, reject) => {
444
+ const timer = setTimeout(() => {
445
+ server.off('error', onError);
446
+ try {
447
+ server.close();
448
+ }
449
+ catch {
450
+ // ignore
451
+ }
452
+ reject(new Error(`Timed out while binding ${input.host}:${input.port} (attempt ${i + 1}/${attempts})`));
453
+ }, listenTimeoutMs);
316
454
  const onError = (err) => {
455
+ if (OAUTH_DEBUG)
456
+ console.log('[OAuth DEBUG] Server error during bind:', err);
317
457
  server.off('error', onError);
458
+ clearTimeout(timer);
318
459
  reject(err);
319
460
  };
320
461
  server.once('error', onError);
321
462
  server.listen(input.port, input.host, () => {
463
+ if (OAUTH_DEBUG)
464
+ console.log(`[OAuth DEBUG] Server successfully listening on ${input.host}:${input.port}`);
322
465
  server.off('error', onError);
466
+ clearTimeout(timer);
323
467
  resolve();
324
468
  });
325
469
  });
@@ -332,13 +476,53 @@ async function listenWithCancelRetry(server, input) {
332
476
  typeof e.code === 'string'
333
477
  ? e.code
334
478
  : '';
479
+ if (OAUTH_DEBUG)
480
+ console.log(`[OAuth DEBUG] Bind failed with code: ${code}`, e);
335
481
  if (code !== 'EADDRINUSE') {
482
+ if (OAUTH_DEBUG)
483
+ console.log('[OAuth DEBUG] Non-EADDRINUSE error, throwing');
336
484
  throw e;
337
485
  }
338
- await fetch(`http://${input.host}:${input.port}/cancel`).catch(() => { });
486
+ if (OAUTH_DEBUG)
487
+ console.log('[OAuth DEBUG] Port in use, sending cancel request');
488
+ await sendCancelRequest({ host: input.host, port: input.port }).catch(() => { });
339
489
  await new Promise((r) => setTimeout(r, delayMs));
340
490
  }
341
491
  }
342
492
  throw new Error(`Failed to bind ${input.host}:${input.port}`);
343
493
  }
494
+ async function sendCancelRequest(input) {
495
+ const host = input.host === '0.0.0.0' ? '127.0.0.1' : input.host;
496
+ await new Promise((resolve, reject) => {
497
+ let settled = false;
498
+ const settle = (error) => {
499
+ if (settled)
500
+ return;
501
+ settled = true;
502
+ if (error) {
503
+ reject(error);
504
+ return;
505
+ }
506
+ resolve();
507
+ };
508
+ const socket = net.connect({ host, port: input.port });
509
+ socket.setTimeout(2_000);
510
+ socket.on('timeout', () => {
511
+ socket.destroy();
512
+ settle(new Error('Cancel request timed out'));
513
+ });
514
+ socket.on('error', (error) => {
515
+ socket.destroy();
516
+ settle(error);
517
+ });
518
+ socket.on('connect', () => {
519
+ socket.write(`GET /cancel HTTP/1.1\r\n`);
520
+ socket.write(`Host: ${host}:${input.port}\r\n`);
521
+ socket.write(`Connection: close\r\n\r\n`);
522
+ });
523
+ socket.on('close', () => {
524
+ settle();
525
+ });
526
+ });
527
+ }
344
528
  //# sourceMappingURL=OpenAIChatGptOAuthSetupDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIChatGptOAuthSetupDialog.js","sourceRoot":"","sources":["../../../../src/ui/auth/OpenAIChatGptOAuthSetupDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIChatGptOAuthSetupDialog.js","sourceRoot":"","sources":["../../../../src/ui/auth/OpenAIChatGptOAuthSetupDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * Portions Copyright 2025 TerminaI Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ export {};