OpenCode Go now reads quota usage with a bearer API key from OpenCode auth.json Removes the old workspace ID and browser cookie credential flow Deletes legacy OpenCode Go credential files during upgrade
37 lines
1.5 KiB
JavaScript
37 lines
1.5 KiB
JavaScript
import { deleteQuotaCredential, readQuotaCredential, writeQuotaCredential } from './store.js';
|
|
|
|
const clean = (value) => typeof value === 'string' && !/[\r\n]/.test(value) ? value.trim() : '';
|
|
|
|
export const normalizers = {
|
|
'ollama-cloud': (value) => {
|
|
const cookie = clean(value?.cookie);
|
|
return cookie ? { cookie } : null;
|
|
},
|
|
cursor: (value) => {
|
|
const accessToken = clean(value?.accessToken);
|
|
const refreshToken = clean(value?.refreshToken);
|
|
return accessToken || refreshToken ? { accessToken, refreshToken } : null;
|
|
},
|
|
};
|
|
|
|
export const readManagedCredential = (providerId) => {
|
|
const normalize = normalizers[providerId];
|
|
return normalize ? readQuotaCredential(providerId, normalize) : null;
|
|
};
|
|
|
|
export const writeManagedCredential = (providerId, value) => {
|
|
const credential = normalizers[providerId]?.(value);
|
|
if (!credential) throw new Error('Invalid credential');
|
|
writeQuotaCredential(providerId, credential);
|
|
return getManagedCredentialStatus(providerId);
|
|
};
|
|
|
|
export const getManagedCredentialStatus = (providerId) => {
|
|
const credential = readManagedCredential(providerId);
|
|
if (!credential) return { configured: false };
|
|
if (providerId === 'cursor') return { configured: true, hasRefreshToken: Boolean(credential.refreshToken), secretMasked: '••••••••' };
|
|
return { configured: true, secretMasked: '••••••••' };
|
|
};
|
|
|
|
export const deleteManagedCredential = (providerId) => deleteQuotaCredential(providerId);
|