mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-04-23 05:51:33 +00:00
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).sessions.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).sessions.fetchHistory(sessionId, options);
|
|
},
|
|
};
|