()
| 4335 | } |
| 4336 | } |
| 4337 | // Verify again |
| 4338 | if (serviceEl.value !== selectedService) { |
| 4339 | console.error('[AI Config] Failed to set service select to:', selectedService, 'current value:', serviceEl.value); |
| 4340 | } |
| 4341 | } |
| 4342 | |
| 4343 | // Ensure service is saved if it was undefined |
| 4344 | if (!serviceValue || serviceValue !== selectedService) { |
| 4345 | await window.electron.saveSetting('aiService', selectedService).catch((err) => { |
| 4346 | console.error('[AI Config] Error saving service:', err); |
| 4347 | }); |
| 4348 | console.log('[AI Config] Saved service to database:', selectedService); |
| 4349 | } |
| 4350 | |
| 4351 | console.log('[AI Config] Service set to:', selectedService, 'serviceEl.value:', serviceEl.value, 'selectedIndex:', serviceEl.selectedIndex); |
| 4352 | |
| 4353 | // Helper function to check if a value is empty/null/undefined |
| 4354 | const isEmpty = (val) => val === null || val === undefined || val === ''; |
| 4355 | |
| 4356 | // Set defaults based on service if values are empty |
| 4357 | if (selectedService === 'puter') { |
| 4358 | // Load Puter.js when Puter service is selected in the dialog |
| 4359 | loadPuterJS().catch(err => { |
| 4360 | console.warn('[AI Config] Failed to preload Puter.js:', err); |
| 4361 | // Don't block dialog opening if Puter.js fails to load |
| 4362 | }); |
| 4363 | |
| 4364 | // For Puter.com, always use defaults (endpoint and model are required for Puter.com) |
| 4365 | const puterEndpoint = 'https://js.puter.com/v2/'; |
| 4366 | const puterModel = 'gpt-5-nano'; |
| 4367 | |
| 4368 | console.log('[AI Config] Setting Puter.com defaults:', { endpointEl: !!endpointEl, modelEl: !!modelEl, endpointValue, modelValue }); |
| 4369 | |
| 4370 | if (endpointEl) { |
| 4371 | // Always set the Puter.com endpoint |
| 4372 | endpointEl.value = puterEndpoint; |
| 4373 | endpointEl.required = false; |
| 4374 | console.log('[AI Config] Set endpoint to:', endpointEl.value); |
| 4375 | // Save it if it wasn't already saved or if it's different |
| 4376 | if (isEmpty(endpointValue) || endpointValue !== puterEndpoint) { |
| 4377 | await window.electron.saveSetting('apiEndpoint', puterEndpoint).catch((err) => { |
| 4378 | console.error('[AI Config] Error saving endpoint:', err); |
| 4379 | }); |
| 4380 | } |
| 4381 | } else { |
| 4382 | console.error('[AI Config] endpointEl not found!'); |
| 4383 | } |
| 4384 | if (modelEl) { |
| 4385 | // Always set the Puter.com model |
| 4386 | modelEl.value = puterModel; |
| 4387 | console.log('[AI Config] Set model to:', modelEl.value); |
| 4388 | // Save it if it wasn't already saved or if it's different |
| 4389 | if (isEmpty(modelValue) || modelValue !== puterModel) { |
| 4390 | await window.electron.saveSetting('aiModel', puterModel).catch((err) => { |
| 4391 | console.error('[AI Config] Error saving model:', err); |
| 4392 | }); |
| 4393 | } |
| 4394 | } else { |
no test coverage detected