()
| 151 | } |
| 152 | |
| 153 | function onProviderChange() { |
| 154 | const provider = PROVIDERS[getProviderValue()]; |
| 155 | apiKeyLabelEl.innerHTML = `${provider.apiKeyLabel}<span class="small">stored in browser memory; only sent to provider servers</span>`; |
| 156 | apiKeyEl.placeholder = provider.apiKeyPlaceholder; |
| 157 | baseUrlRowEl.hidden = !provider.baseUrlDefault; |
| 158 | if (provider.baseUrlDefault) { |
| 159 | baseUrlLabelEl.innerHTML = `${provider.baseUrlLabel}<span class="small">override the API endpoint for OpenAI-compatible providers</span>`; |
| 160 | baseUrlEl.placeholder = provider.baseUrlPlaceholder; |
| 161 | baseUrlEl.value = provider.baseUrlDefault; |
| 162 | } else { |
| 163 | baseUrlEl.value = ""; |
| 164 | baseUrlEl.placeholder = ""; |
| 165 | } |
| 166 | modelEl.innerHTML = provider.models.map(m => `<option value="${m.value}">${m.label}</option>`).join(""); |
| 167 | } |
| 168 | |
| 169 | for (const providerEl of providerEls) { |
| 170 | providerEl.addEventListener("change", onProviderChange); |
no test coverage detected