@@ -40,6 +40,7 @@ import {
4040} from '../../../../../apis/llmProviderApis' ;
4141import { useAppShell } from '../../../../../contexts/AppShellContext' ;
4242import { useAIEntity } from '../../../../../contexts/AIEntitiesContext' ;
43+ import { useLLMProvider } from '../../../../../contexts/llmProvider' ;
4344import { PLATFORM_API_BASE_URL } from '../../../../../config.env' ;
4445import type { LLMProvider } from '../../../../../utils/types' ;
4546
@@ -66,6 +67,7 @@ type LLLMStepBannerProps = {
6667} ;
6768
6869const DEFAULT_TOTAL_STEPS = 4 ;
70+ const DEFAULT_TRACKING_POLICY_NAME = 'llm-cost' ;
6971
7072export default function LLLMStepBanner ( {
7173 providerName,
@@ -80,15 +82,23 @@ export default function LLLMStepBanner({
8082 hasConsumptions : false ,
8183 } ) ;
8284 const { entityType, entity } = useAIEntity ( ) ;
85+ const { provider : liveProvider } = useLLMProvider ( ) ;
8386 const { currentOrganization } = useAppShell ( ) ;
84- const selectedProvider =
87+ const entityProvider =
8588 entityType === 'llm-provider' ? ( entity as LLMProvider | null ) : null ;
89+ const selectedProvider = liveProvider ?? entityProvider ;
8690 const selectedProviderId = selectedProvider ?. id ?? '' ;
8791 const organizationId = currentOrganization ?. uuid ?? '' ;
88- const hasGuardrails =
89- ( selectedProvider ?. policies ?. filter (
90- ( p ) => ! ( p . name === 'llm-cost' && p . version === 'v1' )
91- ) . length ?? 0 ) > 0 ;
92+
93+ const hasGuardrails = useMemo (
94+ ( ) =>
95+ [
96+ ...( selectedProvider ?. globalPolicies ?? [ ] ) ,
97+ ...( selectedProvider ?. operationPolicies ?? [ ] ) ,
98+ ...( selectedProvider ?. policies ?? [ ] ) ,
99+ ] . some ( ( policy ) => policy . name !== DEFAULT_TRACKING_POLICY_NAME ) ,
100+ [ selectedProvider ]
101+ ) ;
92102 const resolvedProviderName = providerName ?. trim ( ) || 'LLM Provider' ;
93103
94104 useEffect ( ( ) => {
0 commit comments