(accountResponse, configResponse)
| 815 | } |
| 816 | |
| 817 | function buildAppServerAuthStatus(accountResponse, configResponse) { |
| 818 | const account = accountResponse?.account ?? null; |
| 819 | const requiresOpenaiAuth = |
| 820 | typeof accountResponse?.requiresOpenaiAuth === "boolean" ? accountResponse.requiresOpenaiAuth : null; |
| 821 | const { providerId, providerConfig } = resolveProviderConfig(configResponse); |
| 822 | const providerLabel = formatProviderLabel(providerId, providerConfig); |
| 823 | |
| 824 | if (account?.type === "chatgpt") { |
| 825 | const email = typeof account.email === "string" && account.email.trim() ? account.email.trim() : null; |
| 826 | return buildAuthStatus({ |
| 827 | loggedIn: true, |
| 828 | detail: email ? `ChatGPT login active for ${email}` : "ChatGPT login active", |
| 829 | source: "app-server", |
| 830 | authMethod: "chatgpt", |
| 831 | verified: true, |
| 832 | requiresOpenaiAuth, |
| 833 | provider: providerId |
| 834 | }); |
| 835 | } |
| 836 | |
| 837 | if (account?.type === "apiKey") { |
| 838 | return buildAuthStatus({ |
| 839 | loggedIn: true, |
| 840 | detail: "API key configured (unverified)", |
| 841 | source: "app-server", |
| 842 | authMethod: "apiKey", |
| 843 | verified: false, |
| 844 | requiresOpenaiAuth, |
| 845 | provider: providerId |
| 846 | }); |
| 847 | } |
| 848 | |
| 849 | if (requiresOpenaiAuth === false) { |
| 850 | return buildAuthStatus({ |
| 851 | loggedIn: true, |
| 852 | detail: `${providerLabel} is configured and does not require OpenAI authentication`, |
| 853 | source: "app-server", |
| 854 | requiresOpenaiAuth, |
| 855 | provider: providerId |
| 856 | }); |
| 857 | } |
| 858 | |
| 859 | return buildAuthStatus({ |
| 860 | loggedIn: false, |
| 861 | detail: `${providerLabel} requires OpenAI authentication`, |
| 862 | source: "app-server", |
| 863 | requiresOpenaiAuth, |
| 864 | provider: providerId |
| 865 | }); |
| 866 | } |
| 867 | |
| 868 | async function getCodexAuthStatusFromClient(client, cwd) { |
| 869 | try { |
no test coverage detected