diff --git a/ratings-ui-demo/src/services/ai-service.ts b/ratings-ui-demo/src/services/ai-service.ts index 021b71ddec050b8b03eadc89d2534fe9740bf04e..92c7722468ac934a0d1772667406591cc166274f 100644 --- a/ratings-ui-demo/src/services/ai-service.ts +++ b/ratings-ui-demo/src/services/ai-service.ts @@ -19,12 +19,40 @@ import { let aiDelegateInitialized = false; let promptsRegistered = false; +/** + * Check if local auth mode should be enabled for ai-delegate. + * Local auth mode allows direct API calls without going through the server proxy. + * + * Priority: + * 1. NEXT_PUBLIC_AI_DELEGATE_LOCAL_AUTH env var (explicit override) + * 2. Development mode (NODE_ENV === 'development') + */ +function isLocalAuthEnabled(): boolean { + const envOverride = process.env.NEXT_PUBLIC_AI_DELEGATE_LOCAL_AUTH; + + // If explicit env var is set, use that + if (envOverride !== undefined && envOverride !== '') { + return envOverride === 'true' || envOverride === '1'; + } + + // Default to development mode + return process.env.NODE_ENV === 'development'; +} + /** * Ensure AiDelegate is initialized and prompts are registered */ async function ensureAiDelegateInitialized(): Promise { if (!aiDelegateInitialized) { - await AiDelegate.init({ endpoint: '/ai-delegate' }); + const allowLocalMode = isLocalAuthEnabled(); + + console.log( + `[ai-service] Initializing ai-delegate: allowLocalMode=${allowLocalMode}`, + `(NODE_ENV=${process.env.NODE_ENV},`, + `NEXT_PUBLIC_AI_DELEGATE_LOCAL_AUTH=${process.env.NEXT_PUBLIC_AI_DELEGATE_LOCAL_AUTH ?? 'not set'})` + ); + + await AiDelegate.init({ endpoint: '/ai-delegate', allowLocalMode }); aiDelegateInitialized = true; }