Files
openchamber/packages/web/server/lib/quota/credentials/providers.js
T
Bohdan Triapitsyn 5917325d49 feat: switch OpenCode Go usage to API
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
2026-08-12 01:49:22 +03:00

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);