import type { Logger } from 'pino'; import type { AppConfig } from './config.js'; import type { AppDatabase } from './db.js'; import { AuthAuditLogRepository } from './repositories/authAuditLogRepository.js'; import { AuthIdentityRepository } from './repositories/authIdentityRepository.js'; import { AuthRiskBlockRepository } from './repositories/authRiskBlockRepository.js'; import type { RpgAgentSessionRepository } from './repositories/RpgAgentSessionRepository.js'; import type { RpgSaveArchiveRepository } from './repositories/rpg-entry/RpgSaveArchiveRepository.js'; import type { RpgWorldLibraryRepository } from './repositories/rpg-entry/RpgWorldLibraryRepository.js'; import type { RpgBrowseHistoryRepository } from './repositories/rpg-profile/RpgBrowseHistoryRepository.js'; import type { RpgProfileDashboardRepository } from './repositories/rpg-profile/RpgProfileDashboardRepository.js'; import type { RpgRuntimeSnapshotRepository } from './repositories/rpg-runtime/RpgRuntimeSnapshotRepository.js'; import type { RpgWorldProfileRepository } from './repositories/RpgWorldProfileRepository.js'; import { RuntimeRepository } from './repositories/runtimeRepository.js'; import { SmsAuthEventRepository } from './repositories/smsAuthEventRepository.js'; import { UserRepository } from './repositories/userRepository.js'; import { UserSessionRepository } from './repositories/userSessionRepository.js'; import { CaptchaChallengeStore } from './services/captchaChallengeStore.js'; import { CustomWorldAgentOrchestrator } from './services/customWorldAgentOrchestrator.js'; import { CustomWorldAgentSessionStore } from './services/customWorldAgentSessionStore.js'; import { UpstreamLlmClient } from './services/llmClient.js'; import type { RpgWorldWorkSummaryService } from './services/RpgWorldWorkSummaryService.js'; import type { SmsVerificationService } from './services/smsVerificationService.js'; import type { WechatAuthService } from './services/wechatAuthService.js'; import { WechatAuthStateStore } from './services/wechatAuthStateStore.js'; export type AppContext = { config: AppConfig; logger: Logger; db: AppDatabase; userRepository: UserRepository; authIdentityRepository: AuthIdentityRepository; authAuditLogRepository: AuthAuditLogRepository; authRiskBlockRepository: AuthRiskBlockRepository; smsAuthEventRepository: SmsAuthEventRepository; userSessionRepository: UserSessionRepository; rpgAgentSessionRepository: RpgAgentSessionRepository; rpgWorldProfileRepository: RpgWorldProfileRepository; rpgProfileDashboardRepository: RpgProfileDashboardRepository; rpgBrowseHistoryRepository: RpgBrowseHistoryRepository; rpgSaveArchiveRepository: RpgSaveArchiveRepository; rpgWorldLibraryRepository: RpgWorldLibraryRepository; rpgRuntimeSnapshotRepository: RpgRuntimeSnapshotRepository; runtimeRepository: RuntimeRepository; llmClient: UpstreamLlmClient; customWorldAgentSessions: CustomWorldAgentSessionStore; customWorldAgentOrchestrator: CustomWorldAgentOrchestrator; rpgWorldWorkSummaryService: RpgWorldWorkSummaryService; smsVerificationService: SmsVerificationService; wechatAuthService: WechatAuthService; wechatAuthStates: WechatAuthStateStore; captchaChallenges: CaptchaChallengeStore; };