@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
38 lines (29 loc) • 1.26 kB
text/typescript
import debug from 'debug';
import { getServerFeatureFlagsStateFromEdgeConfig } from '@/config/featureFlags';
import { publicProcedure, router } from '@/libs/trpc/lambda';
import { getServerDefaultAgentConfig, getServerGlobalConfig } from '@/server/globalConfig';
import { GlobalRuntimeConfig } from '@/types/serverConfig';
const log = debug('config-router');
export const configRouter = router({
getDefaultAgentConfig: publicProcedure.query(async () => {
return getServerDefaultAgentConfig();
}),
getGlobalConfig: publicProcedure.query(async ({ ctx }): Promise<GlobalRuntimeConfig> => {
log('[GlobalConfig] Starting global config retrieval for user:', ctx.userId || 'anonymous');
const serverConfig = await getServerGlobalConfig();
log('[GlobalConfig] Server config retrieved');
const serverFeatureFlags = await getServerFeatureFlagsStateFromEdgeConfig(
ctx.userId || undefined,
);
log(
'[GlobalConfig] Final feature flags to return (evaluated booleans only):',
serverFeatureFlags,
);
const result = { serverConfig, serverFeatureFlags };
log(
'[GlobalConfig] Returning global config with feature flags keys:',
Object.keys(serverFeatureFlags),
);
return result;
}),
});