|
|
@@ -4,9 +4,10 @@ import { Package } from "../../../shared/package"
|
|
|
/**
|
|
|
* Gets the API request timeout from VSCode configuration with validation.
|
|
|
*
|
|
|
- * @returns The timeout in milliseconds. Returns 0 for no timeout.
|
|
|
+ * @returns The timeout in milliseconds. Returns undefined to disable timeout
|
|
|
+ * (letting the SDK use its default), or a positive number for explicit timeout.
|
|
|
*/
|
|
|
-export function getApiRequestTimeout(): number {
|
|
|
+export function getApiRequestTimeout(): number | undefined {
|
|
|
// Get timeout with validation to ensure it's a valid non-negative number
|
|
|
const configTimeout = vscode.workspace.getConfiguration(Package.name).get<number>("apiRequestTimeout", 600)
|
|
|
|
|
|
@@ -15,8 +16,11 @@ export function getApiRequestTimeout(): number {
|
|
|
return 600 * 1000 // Default to 600 seconds
|
|
|
}
|
|
|
|
|
|
- // Allow 0 (no timeout) but clamp negative values to 0
|
|
|
- const timeoutSeconds = configTimeout < 0 ? 0 : configTimeout
|
|
|
+ // 0 or negative means "no timeout" - return undefined to let SDK use its default
|
|
|
+ // (OpenAI SDK interprets 0 as "abort immediately", so we return undefined instead)
|
|
|
+ if (configTimeout <= 0) {
|
|
|
+ return undefined
|
|
|
+ }
|
|
|
|
|
|
- return timeoutSeconds * 1000 // Convert to milliseconds
|
|
|
+ return configTimeout * 1000 // Convert to milliseconds
|
|
|
}
|