import Foundation// MARK: - OpenAI web error messagingextension UsageStore { func openAIDashboardFriendlyError( body: String, targetEmail: String?, cookieImportStatus: String?) -> String? { let trimmed = body.trimmingCharacters(in: .whitespacesAndNewlines) let status = cookieImportStatus?.trimmingCharacters(in: .whitespacesAndNewlines) if trimmed.isEmpty { return [ "OpenAI web dashboard returned an empty page.", "Sign in to chatgpt.com and update OpenAI cookies in Providers → Codex.", ].joined(separator: " ") } let lower = trimmed.lowercased() let looksLikePublicLanding = lower.contains("skip to content") && (lower.contains("about") || lower.contains("openai") || lower.contains("chatgpt")) let looksLoggedOut = lower.contains("sign in") || lower.contains("log in") || lower.contains("create account") || lower.contains("continue with google") || lower.contains("continue with apple") || lower.contains("continue with microsoft") guard looksLikePublicLanding || looksLoggedOut else { return nil } let emailLabel = targetEmail?.trimmingCharacters(in: .whitespacesAndNewlines) let targetLabel = (emailLabel?.isEmpty == false) ? emailLabel! : "your OpenAI account" if let status, !status.isEmpty { if status.contains("cookies do not match Codex account") || status.localizedCaseInsensitiveContains("cookie import failed") { return [ status, "Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.", ].joined(separator: " ") } } return [ "OpenAI web dashboard returned a public page (not signed in).", "Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.", ].joined(separator: " ") }}
import Foundation
// MARK: - OpenAI web error messaging
extension UsageStore {
func openAIDashboardFriendlyError(
body: String,
targetEmail: String?,
cookieImportStatus: String?) -> String?
{
let trimmed = body.trimmingCharacters(in: .whitespacesAndNewlines)
let status = cookieImportStatus?.trimmingCharacters(in: .whitespacesAndNewlines)
if trimmed.isEmpty {
return [
"OpenAI web dashboard returned an empty page.",
"Sign in to chatgpt.com and update OpenAI cookies in Providers → Codex.",
].joined(separator: " ")
}
let lower = trimmed.lowercased()
let looksLikePublicLanding = lower.contains("skip to content")
&& (lower.contains("about") || lower.contains("openai") || lower.contains("chatgpt"))
let looksLoggedOut = lower.contains("sign in")
|| lower.contains("log in")
|| lower.contains("create account")
|| lower.contains("continue with google")
|| lower.contains("continue with apple")
|| lower.contains("continue with microsoft")
guard looksLikePublicLanding || looksLoggedOut else { return nil }
let emailLabel = targetEmail?.trimmingCharacters(in: .whitespacesAndNewlines)
let targetLabel = (emailLabel?.isEmpty == false) ? emailLabel! : "your OpenAI account"
if let status, !status.isEmpty {
if status.contains("cookies do not match Codex account")
|| status.localizedCaseInsensitiveContains("cookie import failed")
{
return [
status,
"Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.",
].joined(separator: " ")
}
}
return [
"OpenAI web dashboard returned a public page (not signed in).",
"Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.",
].joined(separator: " ")
}
}