Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

32 строки
716 B

  1. export const CODEX_CREDENTIAL_MODE = {
  2. API_KEY: 'api_key',
  3. OAUTH: 'oauth',
  4. };
  5. export function isCodexOAuthCredential(rawKey) {
  6. const trimmed = String(rawKey || '').trim();
  7. if (!trimmed.startsWith('{')) {
  8. return false;
  9. }
  10. try {
  11. const parsed = JSON.parse(trimmed);
  12. if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
  13. return false;
  14. }
  15. return (
  16. String(parsed.access_token || '').trim() !== '' &&
  17. String(parsed.account_id || '').trim() !== ''
  18. );
  19. } catch {
  20. return false;
  21. }
  22. }
  23. export function detectCodexCredentialMode(rawKey) {
  24. return isCodexOAuthCredential(rawKey)
  25. ? CODEX_CREDENTIAL_MODE.OAUTH
  26. : CODEX_CREDENTIAL_MODE.API_KEY;
  27. }