mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-04-18 11:31:30 +00:00
Move provider-backed session history and message normalization calls out of the generic providers service so the service name reflects the behavior it owns. Add a dedicated sessions service for listing session-capable providers, normalizing live provider events, and fetching persisted session history through the provider registry. Update realtime handlers and the unified messages route to depend on `sessionsService` instead of `providersService`. This separates session message operations from other provider concerns such as auth and MCP, keeping the provider services easier to navigate as the module grows.
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { providerRegistry } from '@/modules/providers/provider.registry.js';
|
|
import type {
|
|
FetchHistoryOptions,
|
|
FetchHistoryResult,
|
|
LLMProvider,
|
|
NormalizedMessage,
|
|
} from '@/shared/types.js';
|
|
|
|
/**
|
|
* Application service for provider-backed session message operations.
|
|
*
|
|
* Callers pass a provider id and this service resolves the concrete provider
|
|
* class, keeping normalization/history call sites decoupled from implementation
|
|
* file layout.
|
|
*/
|
|
export const sessionsService = {
|
|
/**
|
|
* Lists provider ids that can load session history and normalize live messages.
|
|
*/
|
|
listProviderIds(): LLMProvider[] {
|
|
return providerRegistry.listProviders().map((provider) => provider.id);
|
|
},
|
|
|
|
/**
|
|
* Normalizes one provider-native event into frontend session message events.
|
|
*/
|
|
normalizeMessage(
|
|
providerName: string,
|
|
raw: unknown,
|
|
sessionId: string | null,
|
|
): NormalizedMessage[] {
|
|
return providerRegistry.resolveProvider(providerName).normalizeMessage(raw, sessionId);
|
|
},
|
|
|
|
/**
|
|
* Fetches normalized persisted session history for one provider/session pair.
|
|
*/
|
|
fetchHistory(
|
|
providerName: string,
|
|
sessionId: string,
|
|
options?: FetchHistoryOptions,
|
|
): Promise<FetchHistoryResult> {
|
|
return providerRegistry.resolveProvider(providerName).fetchHistory(sessionId, options);
|
|
},
|
|
};
|