AuthService.ts 971 B

123456789101112131415161718192021222324252627282930313233343536
  1. import EventEmitter from "events"
  2. import type { CloudUserInfo } from "@roo-code/types"
  3. export interface AuthServiceEvents {
  4. "auth-state-changed": [
  5. data: {
  6. state: AuthState
  7. previousState: AuthState
  8. },
  9. ]
  10. "user-info": [data: { userInfo: CloudUserInfo }]
  11. }
  12. export type AuthState = "initializing" | "logged-out" | "active-session" | "attempting-session" | "inactive-session"
  13. export interface AuthService extends EventEmitter<AuthServiceEvents> {
  14. // Lifecycle
  15. initialize(): Promise<void>
  16. // Authentication methods
  17. login(): Promise<void>
  18. logout(): Promise<void>
  19. handleCallback(code: string | null, state: string | null, organizationId?: string | null): Promise<void>
  20. // State methods
  21. getState(): AuthState
  22. isAuthenticated(): boolean
  23. hasActiveSession(): boolean
  24. hasOrIsAcquiringActiveSession(): boolean
  25. // Token and user info
  26. getSessionToken(): string | undefined
  27. getUserInfo(): CloudUserInfo | null
  28. getStoredOrganizationId(): string | null
  29. }