FoundationaLLM.Client.Management 0.9.7-rc399

This is a prerelease version of FoundationaLLM.Client.Management.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package FoundationaLLM.Client.Management --version 0.9.7-rc399
                    
NuGet\Install-Package FoundationaLLM.Client.Management -Version 0.9.7-rc399
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FoundationaLLM.Client.Management" Version="0.9.7-rc399" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FoundationaLLM.Client.Management" Version="0.9.7-rc399" />
                    
Directory.Packages.props
<PackageReference Include="FoundationaLLM.Client.Management" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FoundationaLLM.Client.Management --version 0.9.7-rc399
                    
#r "nuget: FoundationaLLM.Client.Management, 0.9.7-rc399"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FoundationaLLM.Client.Management@0.9.7-rc399
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FoundationaLLM.Client.Management&version=0.9.7-rc399&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FoundationaLLM.Client.Management&version=0.9.7-rc399&prerelease
                    
Install as a Cake Tool

FoundationaLLM Management Client

The FoundationaLLM Management Client is a .NET client library that simplifies the process of interacting with the FoundationaLLM Management API. The client library provides a set of classes and methods that allow you to interact with the FoundationaLLM Management API in a more intuitive way.

This library contains two primary classes:

  • ManagementRESTClient: A class that provides a set of methods for interacting with the FoundationaLLM Management API using REST. This is considered the low-level client and provides direct access to all Management API endpoints.
  • ManagementClient: A class that provides a set of methods for interacting with the FoundationaLLM Management API using a higher-level abstraction. This class is designed to simplify the process of interacting with the Management API by providing a more intuitive interface. It does not contain all the methods available in the ManagementRESTClient class, but it provides a more user-friendly way to interact with the Management API.

These two classes are mutually exclusive, and you should choose one based on your requirements. If you need direct access to all Management API endpoints, use the ManagementRESTClient class. If you need a more user-friendly interface, use the ManagementClient class.

Getting started

If you do not have FoundationaLLM deployed, follow the Quick Start Deployment instructions to get FoundationaLLM deployed in your Azure subscription.

Install the NuGet package:

dotnet add package FoundationaLLM.Client.Management

Manual service instantiation

Complete the following steps if you do not want to use dependency injection:

  1. Create a new instance of the ManagementRESTClient and ManagementClient classes:

    var managementUri = "<YOUR_MANAGEMENT_API_URL>"; // e.g., "https://myfoundationallmmanagementapi.com"
    var instanceId = "<YOUR_INSTANCE_ID>"; // Each FoundationaLLM deployment has a unique (GUID) ID. Locate this value in the FoundationaLLM Management Portal or in Azure App Config (FoundationaLLM:Instance:Id key)
    
    var credential = new AzureCliCredential(); // Can use any TokenCredential implementation, such as ManagedIdentityCredential or AzureCliCredential.
    var options = new APIClientSettings // Optional settings parameter. Default timeout is 900 seconds.
    {
        Timeout = TimeSpan.FromSeconds(600)
    };
    
    var managementRestClient = new ManagementRESTClient(
        managementUri,
        credential,
        instanceId,
        options);
    var managementClient = new ManagementClient(
        managementUri,
        credential,
        instanceId,
        options);
    
  2. Make a request to the Management API with the ManagementRESTClient class:

    var status = await managementRestClient.Status.GetServiceStatusAsync();
    
  3. Make a request to the Management API with the ManagementClient class:

    await managementClient.DataSources.DeleteDataSourceAsync("<DATASOURCE_NAME>");
    // Purge the data source so we can reuse the name.
    await managementClient.DataSources.PurgeDataSourceAsync("<DATASOURCE_NAME>");
    

You can use the FoundationaLLM.Common.Authentication.DefaultAuthentication class to generate the TokenCredential. This class sets the AzureCredential property using the ManagedIdentityCredential when running in a production environment (production parameter of the Initialize method) and the AzureCliCredential when running in a development environment.

Example:

DefaultAuthentication.Initialize(false, "Test"); var credentials = DefaultAuthentication.AzureCredential;

Use dependency injection with a configuration file

Rather than manually instantiating the ManagementRESTClient and ManagementClient classes, you can use dependency injection to manage the instances. This approach is more flexible and allows you to easily switch between different implementations of the IManagementClient and IManagementRESTClient interfaces.

  1. Create a configuration file (e.g., appsettings.json) with the following content:

    {
        "FoundationaLLM": {
            "APIEndpoints": {
     	        "ManagementAPI": {
     	            "Essentials": {
                        "APIUrl": "https://localhost:63267/"
                    }
                }
            },
            "Instance": {
                "Id": "00000000-0000-0000-0000-000000000000"
            }
        }
    }
    
  2. Read the configuration file:

    var configuration = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .Build();
    
  3. Use the ManagementClient extension method to add the ManagementClient and ManagementRESTClient to the service collection:

    var services = new ServiceCollection();
    var credential = new AzureCliCredential(); // Can use any TokenCredential implementation, such as ManagedIdentityCredential or AzureCliCredential.
    services.AddManagementClient(
        configuration[AppConfigurationKeys.FoundationaLLM_APIEndpoints_ManagementAPI_Essentials_APIUrl]!,
        credential,
        configuration[AppConfigurationKeys.FoundationaLLM_Instance_Id]!);
    
    var serviceProvider = services.BuildServiceProvider();
    
  4. Retrieve the ManagementClient and ManagementRESTClient instances from the service provider:

    var managementClient = serviceProvider.GetRequiredService<IManagementClient>();
    var managementRestClient = serviceProvider.GetRequiredService<IManagementRESTClient>();
    

Alternately, you can inject the ManagementClient and ManagementRESTClient instances directly into your classes using dependency injection.

public class MyService
{
    private readonly IManagementClient _managementClient;
    private readonly IManagementRESTClient _managementRestClient;

    public MyService(IManagementClient managementClient, IManagementRESTClient managementRestClient)
    {
        _managementClient = managementClient;
        _managementRestClient = managementRestClient;
    }
}

Use dependency injection with Azure App Configuration

If you prefer to retrieve the configuration settings from Azure App Configuration, you can use the Microsoft.Azure.AppConfiguration.AspNetCore or Microsoft.Extensions.Configuration.AzureAppConfiguration package to retrieve the configuration settings from Azure App Configuration.

  1. Connect to Azure App Configuration:

    var configuration = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .AddAzureAppConfiguration(options =>
        {
            options.Connect("<connection-string>");
            options.ConfigureKeyVault(kv =>
            {
                kv.SetCredential(Credentials);
            });
            options.Select(AppConfigurationKeyFilters.FoundationaLLM_Instance);
            options.Select(AppConfigurationKeyFilters.FoundationaLLM_APIEndpoints_ManagementAPI_Essentials);
        })
        .Build();
    

    If you have configured your local development environment, you can obtain the App Config connection string from an environment variable (Environment.GetEnvironmentVariable(EnvironmentVariables.FoundationaLLM_AppConfig_ConnectionString)) when developing locally.

  2. Use the ManagementClient extension method to add the ManagementClient and ManagementRESTClient to the service collection:

    var services = new ServiceCollection();
    var credential = new AzureCliCredential(); // Can use any TokenCredential implementation, such as ManagedIdentityCredential or AzureCliCredential.
    
    services.AddManagementClient(
        configuration[AppConfigurationKeys.FoundationaLLM_APIEndpoints_ManagementAPI_Essentials_APIUrl]!,
        credential,
        configuration[AppConfigurationKeys.FoundationaLLM_Instance_Id]!);
    
  3. Retrieve the ManagementClient and ManagementRESTClient instances from the service provider:

    var managementClient = serviceProvider.GetRequiredService<IManagementClient>();
    var managementRestClient = serviceProvider.GetRequiredService<IManagementRESTClient>();
    

Example projects

The Core.Examples test project contains several examples that demonstrate how to use the ManagementClient and ManagementRESTClient classes to interact with the Management API through a series of end-to-end tests.

FoundationaLLM: The platform for deploying, scaling, securing and governing generative AI in the enterprises 🚀

License

FoundationaLLM provides the platform for deploying, scaling, securing and governing generative AI in the enterprise. With FoundationaLLM you can:

  • Create AI agents that are grounded in your enterprise data, be that text, semi-structured or structured data.
  • Make AI agents available to your users through a branded chat interface or integrate the REST API to the AI agent into your application for a copilot experience or integrate the Agent API in a machine-to-machine automated process.
  • Experiment building agents that can use a variety of large language models including OpenAI GPT-4, Mistral and Llama 2 or any models pulled from the Hugging Face model catalog that provide a REST completions endpoint.
  • Centrally manage, configure and secure your AI agents AND their underlying assets including prompts, data sources, vectorization data pipelines, vector databases and large language models using the management portal.
  • Enable everyone in your enterprise to create their own AI agents. Your non-developer users can create and deploy their own agents in a self-service fashion from the management portal, but we don't get in the way of your advanced AI developers who can deploy their own orchestrations built in LangChain, Semantic Kernel, Prompt Flow or any orchestration that exposes a completions endpoint.
  • Deploy and manage scalable vectorization data pipelines that can ingest millions of documents to provide knowledge to your model.
  • Empower your users with as many task-focused AI agents as desired.
  • Control access to the AI agents and the resources they access using role-based access controls (RBAC).
  • Harness the rapidly evolving capabilities from Azure AI and Azure OpenAI from one integrated stack.

FoundationaLLM is not a large language model. It enables you to use the large language models of your choice (e.g., OpenAI GPT-4, Mistral, LLama 2, etc.)

FoundationaLLM deploys a secure, comprehensive and highly configurable copilot platform to your Azure cloud environment:

  • Simplifies integration with enterprise data sources used by agent for in-context learning (e.g., enabling RAG, CoT, ReAct and inner monologue patterns).
  • Provides defense in depth with fine-grain security controls over data used by agent and pre/post completion filters that guard against attack.
  • Hardened solution attacked by an LLM red team from inception.
  • Scalable solution load balances across multiple LLM endpoints.
  • Extensible to new data sources, new LLM orchestrators and LLMs.

Why is FoundationaLLM Needed?

Simply put we saw a lot of folks reinventing the wheel just to get a customized copilot or AI agent that was grounded and bases its responses in their own data as opposed to the trained parametric knowledge of the model. Many of the solutions we saw made for great demos, but were effectively toys wrapping calls to OpenAI endpoints- they were not something intended or ready to take into production at enterprise scale. We built FoundationaLLM to provide a continuous journey, one that was quick to get started with so folks could experiment quickly with LLM's but not fall off a cliff after that with a solution that would be insecure, unlicensed, inflexible and not fully featured enough to grow from the prototype into a production solution without having to start all over.

The core problems to deliver enterprise copilots or AI agents are:

  • Enterprise grade copilots or AI agents are complex and have lots of moving parts (not to mention infrastructure).
  • The industry has a skills gap when it comes to filling the roles needed to deliver these complex copilot solutions.
  • The top AI risks (inaccuracy, cybersecurity, compliance, explainability, privacy) are not being mitigated by individual tools.
  • Delivery of a copilot or AI agent solution is time consuming, expensive and frustrating when starting from scratch.

Documentation

Get up to speed with FoundationaLLM by reading the documentation. This includes deployment instructions, quickstarts, architecture, and API references.

Getting Started

FoundationaLLM provides a simple command line driven approach to getting your first deployment up and running. Basically, it's two commands. After that, you can customize the solution, run it locally on your machine and update the deployment with your customizations.

Follow the Quick Start Deployment instructions to get FoundationaLLM deployed in your Azure subscription.

Reporting Issues and Support

If you encounter any issues with FoundationaLLM, please open an issue on GitHub. We will respond to your issue as soon as possible. Please use the Labels (bug, documentation, general question, release x.x.x) to categorize your issue and provide as much detail as possible to help us understand and resolve the issue.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FoundationaLLM.Client.Management:

Package Downloads
FoundationaLLM.Core.Examples

FoundationaLLM.Core.Examples contains custom development examples packaged as tests.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.7-rc488 54 11/21/2025
0.9.7-rc487 84 11/21/2025
0.9.7-rc485 171 11/19/2025
0.9.7-rc484 173 11/18/2025
0.9.7-rc483 171 11/18/2025
0.9.7-rc481 176 11/18/2025
0.9.7-rc480 201 11/17/2025
0.9.7-rc479 231 11/17/2025
0.9.7-rc474 221 11/16/2025
0.9.7-rc473 236 11/16/2025
0.9.7-rc471 240 11/10/2025
0.9.7-rc470 242 11/10/2025
0.9.7-rc467 238 11/10/2025
0.9.7-rc466 115 11/7/2025
0.9.7-rc461 174 11/4/2025
0.9.7-rc460 169 11/4/2025
0.9.7-rc452 169 10/28/2025
0.9.7-rc451 167 10/28/2025
0.9.7-rc440 157 10/21/2025
0.9.7-rc439 160 10/20/2025
0.9.7-rc428 154 10/1/2025
0.9.7-rc418 155 9/29/2025
0.9.7-rc408 127 9/26/2025
0.9.7-rc407 133 9/26/2025
0.9.7-rc406 177 9/25/2025
0.9.7-rc405 152 9/25/2025
0.9.7-rc404 154 9/25/2025
0.9.7-rc403 174 9/25/2025
0.9.7-rc402 162 9/24/2025
0.9.7-rc401 167 9/23/2025
0.9.7-rc400 151 9/23/2025
0.9.7-rc399 167 9/23/2025
0.9.7-rc398 168 9/23/2025
0.9.7-rc397 164 9/23/2025
0.9.7-rc396 164 9/23/2025
0.9.7-rc395 162 9/23/2025
0.9.7-rc394 167 9/23/2025
0.9.7-rc393 180 9/22/2025
0.9.7-rc392 177 9/22/2025
0.9.7-rc391 170 9/22/2025
0.9.7-rc390 180 9/22/2025
0.9.7-rc389 190 9/22/2025
0.9.7-rc388 186 9/22/2025
0.9.7-rc387 199 9/22/2025
0.9.7-rc386 185 9/22/2025
0.9.7-rc385 204 9/22/2025
0.9.7-rc384 221 9/22/2025
0.9.7-rc383 238 9/19/2025
0.9.7-rc382 291 9/17/2025
0.9.7-rc381 295 9/17/2025
0.9.7-rc380 303 9/16/2025
0.9.7-rc379 308 9/16/2025
0.9.7-rc378 305 9/16/2025
0.9.7-rc377 305 9/16/2025
0.9.7-rc376 298 9/16/2025
0.9.7-rc375 298 9/16/2025
0.9.7-rc374 299 9/16/2025
0.9.7-rc373 232 9/15/2025
0.9.7-rc372 120 9/12/2025
0.9.7-rc371 131 9/12/2025
0.9.7-rc370 133 9/12/2025
0.9.7-rc369 125 9/12/2025
0.9.7-rc368 170 9/11/2025
0.9.7-rc367 174 9/10/2025
0.9.7-rc366 167 9/10/2025
0.9.7-rc365 161 9/10/2025
0.9.7-rc364 165 9/9/2025
0.9.7-rc363 160 9/9/2025
0.9.7-rc362 167 9/9/2025
0.9.7-rc361 166 9/9/2025
0.9.7-rc360 166 9/9/2025
0.9.7-rc359 166 9/9/2025
0.9.7-rc358 163 9/9/2025
0.9.7-rc357 181 9/8/2025
0.9.7-rc356 126 9/5/2025
0.9.7-rc355 135 9/5/2025
0.9.7-rc354 151 9/5/2025
0.9.7-rc353 135 9/5/2025
0.9.7-rc352 149 9/5/2025
0.9.7-rc351 149 9/5/2025
0.9.7-rc350 175 9/5/2025
0.9.7-rc349 180 9/5/2025
0.9.7-rc348 176 9/4/2025
0.9.7-rc347 187 9/4/2025
0.9.7-rc346 183 9/4/2025
0.9.7-rc345 180 9/3/2025
0.9.7-rc344 176 9/3/2025
0.9.7-rc343 180 9/3/2025
0.9.7-rc342 178 9/3/2025
0.9.7-rc341 177 9/3/2025
0.9.7-rc340 174 9/3/2025
0.9.7-rc339 177 9/3/2025
0.9.7-rc338 186 9/3/2025
0.9.7-rc337 178 9/2/2025
0.9.7-rc336 174 9/2/2025
0.9.7-rc335 169 9/2/2025
0.9.7-rc334 161 9/2/2025
0.9.7-rc333 159 9/2/2025
0.9.7-rc332 159 9/2/2025
0.9.7-rc331 173 9/2/2025
0.9.7-rc330 168 9/1/2025
0.9.7-rc329 183 8/31/2025
0.9.7-rc328 163 8/31/2025
0.9.7-rc327 166 8/31/2025
0.9.7-rc326 168 8/31/2025
0.9.7-rc325 187 8/31/2025
0.9.7-rc324 197 8/29/2025
0.9.7-rc323 201 8/29/2025
0.9.7-rc322 219 8/29/2025
0.9.7-rc321 200 8/29/2025
0.9.7-rc320 208 8/29/2025
0.9.7-rc319 212 8/28/2025
0.9.7-rc318 212 8/28/2025
0.9.7-rc317 217 8/28/2025
0.9.7-rc316 215 8/26/2025
0.9.7-rc315 211 8/26/2025
0.9.7-rc314 215 8/26/2025
0.9.7-rc313 214 8/26/2025
0.9.7-rc312 215 8/26/2025
0.9.7-rc311 232 8/26/2025
0.9.7-rc310 231 8/26/2025
0.9.7-rc309 183 8/25/2025
0.9.7-rc308 186 8/25/2025
0.9.7-rc307 181 8/25/2025
0.9.7-rc306 188 8/25/2025
0.9.7-rc305 305 8/25/2025
0.9.7-rc304 302 8/25/2025
0.9.7-rc303 277 8/25/2025
0.9.7-rc302 280 8/25/2025
0.9.7-rc301 114 8/22/2025
0.9.7-rc300 106 8/22/2025
0.9.7-rc299 136 8/22/2025
0.9.7-rc298 134 8/22/2025
0.9.7-rc297 165 8/21/2025
0.9.7-rc296 161 8/21/2025
0.9.7-rc295 163 8/21/2025
0.9.7-rc293 158 8/21/2025
0.9.7-rc292 161 8/21/2025
0.9.7-rc291 160 8/21/2025
0.9.7-rc290 150 8/20/2025
0.9.7-rc289 166 8/19/2025
0.9.7-rc288 168 8/19/2025
0.9.7-rc287 164 8/19/2025
0.9.7-rc286 172 8/19/2025
0.9.7-rc285 176 8/18/2025
0.9.7-rc284 161 8/18/2025
0.9.7-rc283 162 8/18/2025
0.9.7-rc282 162 8/18/2025
0.9.7-rc281 170 8/18/2025
0.9.7-rc280 166 8/18/2025
0.9.7-rc279 162 8/18/2025
0.9.7-rc278 159 8/18/2025
0.9.7-rc277 162 8/18/2025
0.9.7-rc276 160 8/18/2025
0.9.7-rc275 162 8/18/2025
0.9.7-rc274 168 8/18/2025
0.9.7-rc273 164 8/17/2025
0.9.7-rc272 149 8/16/2025
0.9.7-rc271 162 8/10/2025
0.9.7-rc270 124 8/9/2025
0.9.7-rc269 148 8/9/2025
0.9.7-rc268 154 8/9/2025
0.9.7-rc267 161 8/9/2025
0.9.7-rc266 181 8/8/2025
0.9.7-rc265 173 8/8/2025
0.9.7-rc264 184 8/8/2025
0.9.7-rc263 205 8/8/2025
0.9.7-rc262 211 8/8/2025
0.9.7-rc261 212 8/8/2025
0.9.7-rc260 219 8/8/2025
0.9.7-rc259 240 8/7/2025
0.9.7-rc258 199 8/4/2025
0.9.7-rc257 183 8/4/2025
0.9.7-rc256 169 7/27/2025
0.9.7-rc255 511 7/24/2025
0.9.7-rc254 550 7/22/2025
0.9.7-rc253 544 7/22/2025
0.9.7-rc252 509 7/21/2025
0.9.7-rc251 441 7/21/2025
0.9.7-rc250 354 7/20/2025
0.9.7-rc249.1 305 7/20/2025
0.9.7-rc249 253 7/20/2025
0.9.7-rc248.1 166 8/29/2025
0.9.7-rc248 95 7/18/2025
0.9.7-rc247 96 7/18/2025
0.9.7-rc246 104 7/18/2025
0.9.7-rc245 108 7/18/2025
0.9.7-rc244 123 7/18/2025
0.9.7-rc243 128 7/18/2025
0.9.7-rc242 144 7/18/2025
0.9.7-rc241 166 7/17/2025
0.9.7-rc240 159 7/17/2025
0.9.7-rc239 159 7/17/2025
0.9.7-rc238 160 7/17/2025
0.9.7-rc237 160 7/17/2025
0.9.7-rc236 157 7/17/2025
0.9.7-rc235 171 7/17/2025
0.9.7-rc234 167 7/16/2025
0.9.7-rc233 159 7/16/2025
0.9.7-rc232 158 7/16/2025
0.9.7-rc231 172 7/16/2025
0.9.7-rc230 161 7/16/2025
0.9.7-rc229 163 7/16/2025
0.9.7-rc228 166 7/16/2025
0.9.7-rc227 152 7/16/2025
0.9.7-rc226 164 7/16/2025
0.9.7-rc225 155 7/15/2025
0.9.7-rc224 155 7/15/2025
0.9.7-rc223 168 7/15/2025
0.9.7-rc222 166 7/15/2025
0.9.7-rc220 180 7/10/2025
0.9.7-rc219 165 7/10/2025
0.9.7-rc218 167 7/10/2025
0.9.7-rc217 161 7/10/2025
0.9.7-rc216 167 7/10/2025
0.9.7-rc215 170 7/10/2025
0.9.7-rc214 163 7/9/2025
0.9.7-rc213 163 7/8/2025
0.9.7-rc212 160 7/8/2025
0.9.7-rc211 172 7/8/2025
0.9.7-rc208 170 7/8/2025
0.9.7-rc207 169 7/8/2025
0.9.7-rc206 179 7/8/2025
0.9.7-rc205 164 7/7/2025
0.9.7-rc204 164 7/7/2025
0.9.7-rc203 165 7/7/2025
0.9.7-rc202 170 7/7/2025
0.9.7-rc201 155 7/7/2025
0.9.7-rc200 151 7/3/2025
0.9.7-rc199 152 7/3/2025
0.9.7-rc198 159 7/3/2025
0.9.7-rc197 165 7/3/2025
0.9.7-rc196 166 7/2/2025
0.9.7-rc195 150 7/2/2025
0.9.7-rc194 179 7/1/2025
0.9.7-rc193 163 7/1/2025
0.9.7-rc192 161 7/1/2025
0.9.7-rc191 165 6/30/2025
0.9.7-rc190 156 6/30/2025
0.9.7-rc188 164 6/26/2025
0.9.7-rc187 163 6/26/2025
0.9.7-rc186 161 6/26/2025
0.9.7-rc185 153 6/26/2025
0.9.7-rc184 159 6/24/2025
0.9.7-rc181 194 6/23/2025
0.9.7-rc180 167 6/23/2025
0.9.7-rc179 171 6/23/2025
0.9.7-rc178 169 6/23/2025
0.9.7-rc177 132 6/20/2025
0.9.7-rc176 113 6/20/2025
0.9.7-rc175 106 6/20/2025
0.9.7-rc174 107 6/20/2025
0.9.7-rc173 109 6/20/2025
0.9.7-rc172 175 6/19/2025
0.9.7-rc171 174 6/19/2025
0.9.7-rc170 166 6/19/2025
0.9.7-rc169 175 6/19/2025
0.9.7-rc168 191 6/19/2025
0.9.7-rc167 157 6/19/2025
0.9.7-rc166 186 6/17/2025
0.9.7-rc165 167 6/17/2025
0.9.7-rc164 160 6/16/2025
0.9.7-rc163 170 6/16/2025
0.9.7-rc162 157 6/16/2025
0.9.7-rc161 175 6/15/2025
0.9.7-rc160 253 6/13/2025
0.9.7-rc159 275 6/13/2025
0.9.7-rc158 309 6/12/2025
0.9.7-rc157 316 6/11/2025
0.9.7-rc156 302 6/11/2025
0.9.7-rc155 337 6/10/2025
0.9.7-rc154 318 6/10/2025
0.9.7-rc153 312 6/10/2025
0.9.7-rc152 323 6/10/2025
0.9.7-rc151 310 6/10/2025
0.9.7-rc150.4 473 7/23/2025
0.9.7-rc150.3 124 6/23/2025
0.9.7-rc150.2 129 6/23/2025
0.9.7-rc150 313 6/10/2025
0.9.7-rc149 303 6/9/2025
0.9.7-rc148 291 6/9/2025
0.9.7-rc147 300 6/9/2025
0.9.7-rc146 290 6/9/2025
0.9.7-rc145 295 6/9/2025
0.9.7-rc144 264 6/9/2025
0.9.7-rc143 230 6/8/2025
0.9.7-rc142 227 6/8/2025
0.9.7-rc141 140 6/8/2025
0.9.7-rc140 142 6/7/2025
0.9.7-rc139 125 6/6/2025
0.9.7-rc138 134 6/6/2025
0.9.7-rc137 133 6/6/2025
0.9.7-rc136 164 6/5/2025
0.9.7-rc135 172 6/5/2025
0.9.7-rc134 179 6/5/2025
0.9.7-rc133 169 6/5/2025
0.9.7-rc132 159 6/5/2025
0.9.7-rc131 176 6/5/2025
0.9.7-rc130 172 6/5/2025
0.9.7-rc129 173 6/5/2025
0.9.7-rc128 163 6/4/2025
0.9.7-rc127 194 6/4/2025
0.9.7-rc126 148 6/4/2025
0.9.7-rc125 160 6/4/2025
0.9.7-rc124 172 6/3/2025
0.9.7-rc123 188 6/3/2025
0.9.7-rc122 169 6/3/2025
0.9.7-rc121 172 6/3/2025
0.9.7-rc120 175 6/3/2025
0.9.7-rc119 171 6/2/2025
0.9.7-rc118 166 6/2/2025
0.9.7-rc117 176 6/2/2025
0.9.7-rc116 124 5/30/2025
0.9.7-rc115 172 5/30/2025
0.9.7-rc114 160 5/29/2025
0.9.7-rc113 189 5/29/2025
0.9.7-rc112 174 5/29/2025
0.9.7-rc111 174 5/29/2025
0.9.7-rc110 166 5/29/2025
0.9.7-rc109 172 5/28/2025
0.9.7-rc108 158 5/28/2025
0.9.7-rc107 169 5/27/2025
0.9.7-rc106 198 5/27/2025
0.9.7-rc105 178 5/27/2025
0.9.7-rc104 177 5/26/2025
0.9.7-rc103 176 5/25/2025
0.9.7-rc102 195 5/25/2025
0.9.7-rc101 86 5/24/2025
0.9.7-rc100 133 5/23/2025
0.9.7-ex331 154 9/2/2025
0.9.7-beta159 175 5/20/2025
0.9.7-beta158 208 5/16/2025
0.9.7-beta157 248 5/13/2025
0.9.7-beta156 253 5/12/2025
0.9.7-beta155 181 5/6/2025
0.9.7-beta154 175 5/6/2025
0.9.7-beta153 174 5/5/2025
0.9.7-beta152 202 4/30/2025
0.9.7-beta151 182 4/21/2025
0.9.7-beta150 195 4/21/2025
0.9.7-beta149 186 4/20/2025
0.9.7-beta148 178 4/18/2025
0.9.7-beta147 233 4/17/2025
0.9.7-beta146 229 4/17/2025
0.9.7-beta145 133 4/11/2025
0.9.7-beta144 176 4/11/2025
0.9.7-beta143 191 4/11/2025
0.9.7-beta142 156 4/11/2025
0.9.7-beta141 168 4/11/2025
0.9.7-beta140 209 4/10/2025
0.9.7-beta139 197 4/10/2025
0.9.7-beta138 206 4/9/2025
0.9.7-beta137 194 4/3/2025
0.9.7-beta136 187 4/2/2025
0.9.7-beta135 188 4/2/2025
0.9.7-beta134 189 4/2/2025
0.9.7-beta133 186 4/2/2025
0.9.7-beta132 192 4/2/2025
0.9.7-beta131 207 4/1/2025
0.9.7-beta130 194 4/1/2025
0.9.7-beta129 201 3/31/2025
0.9.7-beta128 194 3/31/2025
0.9.7-beta127 200 3/30/2025
0.9.7-beta126 189 3/30/2025
0.9.7-beta125 510 3/26/2025
0.9.7-beta124 526 3/26/2025
0.9.7-beta123 511 3/26/2025
0.9.7-beta122 513 3/25/2025
0.9.7-beta121 533 3/25/2025
0.9.7-beta120 507 3/25/2025
0.9.7-beta119 524 3/25/2025
0.9.7-beta118 519 3/25/2025
0.9.7-beta117 537 3/25/2025
0.9.7-beta116 530 3/24/2025
0.9.7-beta115 442 3/24/2025
0.9.7-beta114 308 3/23/2025
0.9.7-beta113 126 3/21/2025
0.9.7-beta112 152 3/21/2025
0.9.7-beta111 188 3/19/2025
0.9.7-beta110 185 3/19/2025
0.9.7-beta109 184 3/18/2025
0.9.7-beta108 185 3/17/2025
0.9.7-beta107 183 3/17/2025
0.9.7-beta106 199 3/17/2025
0.9.7-beta105 195 3/13/2025
0.9.7-beta104 193 3/12/2025
0.9.7-beta103 217 3/11/2025
0.9.7-beta102 192 3/9/2025
0.9.7-beta101 245 3/7/2025
0.9.7-beta100 239 3/5/2025
0.9.6 293 3/3/2025
0.9.6-rc100 152 2/28/2025
0.9.5 169 2/26/2025
0.9.5-rc102 139 2/25/2025
0.9.5-rc101 140 2/24/2025
0.9.5-rc100 145 2/23/2025
0.9.4 155 2/21/2025
0.9.3 158 2/17/2025
0.9.3-rc018 140 2/17/2025
0.9.3-rc017 156 2/12/2025
0.9.3-rc016 173 2/12/2025
0.9.3-rc015 156 2/7/2025
0.9.3-rc014 155 2/6/2025
0.9.3-rc013 154 2/5/2025
0.9.3-rc012 183 2/5/2025
0.9.3-rc011 142 2/5/2025
0.9.3-rc010 148 2/5/2025
0.9.3-rc009 152 2/4/2025
0.9.3-rc008 143 2/4/2025
0.9.3-rc007 145 2/4/2025
0.9.3-rc006 132 2/3/2025
0.9.3-rc005 145 2/3/2025
0.9.3-rc004 136 1/31/2025
0.9.3-rc003 143 1/30/2025
0.9.3-rc002 136 1/29/2025
0.9.3-rc001 142 1/29/2025
0.9.2 154 1/24/2025
0.9.2-rc007 135 1/24/2025
0.9.2-rc006 142 1/23/2025
0.9.2-rc005 143 1/23/2025
0.9.2-rc004 147 1/23/2025
0.9.2-rc003 136 1/23/2025
0.9.2-rc002 138 1/23/2025
0.9.2-rc001 138 1/22/2025
0.9.2-a001 151 1/21/2025
0.9.1 175 1/21/2025
0.9.1-rc131 135 1/19/2025
0.9.1-rc130 133 1/19/2025
0.9.1-rc129 124 1/19/2025
0.9.1-rc128 133 1/18/2025
0.9.1-rc127 141 1/18/2025
0.9.1-rc126 134 1/17/2025
0.9.1-rc125 140 1/17/2025
0.9.1-rc124 131 1/16/2025
0.9.1-rc123 135 1/15/2025
0.9.1-rc122 141 1/14/2025
0.9.1-rc121 127 1/14/2025
0.9.1-rc120 129 1/14/2025
0.9.1-rc118 137 1/13/2025
0.9.1-rc117 136 1/13/2025
0.9.1-rc116 130 1/8/2025
0.9.1-rc115 153 1/2/2025
0.9.1-rc114 136 12/24/2024
0.9.1-rc113 140 12/23/2024
0.9.1-rc112 149 12/22/2024
0.9.1-rc111 137 12/22/2024
0.9.1-rc110 135 12/21/2024
0.9.1-rc109 144 12/21/2024
0.9.1-rc108 129 12/21/2024
0.9.1-rc107 149 12/20/2024
0.9.1-rc106 144 12/20/2024
0.9.1-rc105 134 12/19/2024
0.9.1-rc104 144 12/19/2024
0.9.1-rc100 144 12/16/2024
0.9.1-alpha4 180 12/15/2024
0.9.1-alpha3 146 12/15/2024
0.9.0-rc3 137 12/9/2024
0.9.0-rc2 139 12/9/2024
0.9.0-alpha5 141 11/28/2024
0.9.0-alpha1 142 11/27/2024
0.8.4 162 11/20/2024
0.8.3 173 9/18/2024
0.8.2 187 9/3/2024
0.8.2-alpha2 146 9/23/2024
0.8.1 193 8/23/2024
0.8.1-alpha2 158 9/18/2024