get_endpoint(); return rtrim( $endpoint, '/' ); } protected static function createModel( ModelMetadata $model_metadata, ProviderMetadata $provider_metadata ): ModelInterface { return new ExoTextGenerationModel( $model_metadata, $provider_metadata ); } protected static function createProviderMetadata(): ProviderMetadata { return new ProviderMetadata( 'aiprfoex', __( 'exo', 'ai-provider-for-exo' ), ProviderTypeEnum::server(), 'https://github.com/exo-explore/exo', RequestAuthenticationMethod::apiKey() ); } protected static function createProviderAvailability(): ProviderAvailabilityInterface { return new ListModelsApiBasedProviderAvailability( static::modelMetadataDirectory() ); } protected static function createModelMetadataDirectory(): ModelMetadataDirectoryInterface { return new ExoModelMetadataDirectory(); } }