-## Integration with GitHub, GitLab and Azure DevOps
+## Core features
-> **CodeRabbit** integrates with GitHub, GitLab and Azure DevOps repositories to deliver continuous and incremental reviews for each commit in a pull request (PR) or merge request (MR). Review feedback is automatically sent back to the PR/MR and can be committed directly.
+Core CodeRabbit features include the following:
-It works via a webhook, monitoring Pull Request (PR) and Merge Request (MR) events. A comprehensive review is performed when a PR or MR is created, and for
-incremental commits and comments addressed to the bot. The feedback is then sent directly back to the Pull Request or Merge Request.
+- Integrates rapidly with popular Git platforms and workflows.
+- Applies dozens of open-source, industry-standard code analyzers to every commit.
+- Implements code reviews as familiar pull-request comments.
+- Works with contributors through natural-language conversation in comments.
+- Learns and adapts to your team's code style and review preferences.
+- Provides an observability dashboard of code-contribution activity.
+- Practices strong privacy and security, with no retention of analyzed code.
+- Offers free use for public repositories, and flexible pricing for private codebases.
-
+## Seamless workflow integration
-## Data Privacy and Security
+CodeRabbit shares its reviews as comments attached to pull requests, using the same Git platform that your team already uses. Further commits in the same pull review prompt CodeRabbit to make further reviews, using the earlier reviews as context.
-> **CodeRabbit** does not use data collected from code reviews to train or influence its models. All queries to Large Language Models (LLMs) are ephemeral, with zero retention. No data is shared with third parties.
+Each time that it performs a code review, CodeRabbit runs the relevant code changes through [an array of industry-standard code linters, security analyzers, and other tools](/tools/). CodeRabbit synthesizes the output of these tools into its reviews, offering a high-level analysis that can suggest areas for further focus and improvement.
-- **Temporary Storage**: Code is temporarily stored in memory during the review process and deleted afterward.
-- **Stored Embeddings**: While the code itself isn’t stored, **CodeRabbit** stores embeddings based on chat conversations and workflow systems (Linear, Jira, GitHub/GitLab issues) to improve future reviews.
-- **Compliance**: All data is kept confidential, isolated by organization, and complies with **SOC2 Type II** and **GDPR** standards.
+Your team can have conversations with CodeRabbit about its reviews by replying to it with follow-up comments on pull requests, asking it questions or making observations about the review using natural language. CodeRabbit continues the conversation appropriately, offering further insights about the code changes, or adjusting its own review style based on feedback.
-### Opting Out
+### Customizable review preferences
-You can opt out of data storage at any time without affecting your access to **CodeRabbit**.
-:::warning
-However, opting out may reduce the level of personalized review feedback.
-:::
+As you interact with CodeRabbit through chat, it learns the review preferences of your team, and applies them to all future reviews on a given repository.
-## Try CodeRabbit Now
+For example, if CodeRabbit uses a linter to suggest that your pull request use four-space indentations, but your team uses a two-space indentation style, then you can reply to CodeRabbit's pull-request comment to tell it exactly that. CodeRabbit acknowledges your feedback and adjusts all of its subsequent reviews with that repository appropriately.
-> Ready to experience **CodeRabbit** in action?
+For a video introduction to this feature, see [CodeRabbit Learnings](https://www.youtube.com/watch?v=Yu0cmmOYA-U).
-:::tip
-For open source projects CodeRabbit Pro is **_FREE_**, forever.
+If you need to fine-tune CodeRabbit's behavior beyond this, then you can [add a CodeRabbit-specific configuration file](/getting-started/configure-coderabbit) to your repository, or use the CodeRabbit web UI to set further preferences. This file can include [path-based instructions](/guides/review-instructions) for how CodeRabbit should review different files within your codebase.
-- No credit card required
-- Unlimited public repositories
+No matter how you tune and customize CodeRabbit, its default settings make it useful out of the box, able to meaningfully review pull requests within minutes of its introduction to a repository.
-:::
+### Git platform integration
-
+CodeRabbit integrates in just a few clicks with many popular Git platforms:
+
+- GitHub, GitHub Enterprise Cloud, GitHub Enterprise Server,
+- GitLab, GitLab Self-Managed
+- Azure DevOps
+- Bitbucket Cloud
+
+For more information, see [Supported Git Platforms](/platforms/).
+
+### Issue-management integration
+
+You can integrate CodeRabbit with issue-management platforms. This lets you ask CodeRabbit to create tickets during code reviews, or chat with CodeRabbit about your code from within issue comments. Compatible platforms include the following:
+
+- GitHub Issues
+- GitLab Issues
+- Jira
+- Linear
+
+For more information, see [Issue Creation](/guides/issue-creation) and [Issue Chat](/guides/issue-chat).
+
+## Data privacy and security
+
+CodeRabbit collects only the minimum amount of information needed to provide you with our code review services. Our privacy and security posture centers around protecting your data through ephemerality:
+
+- All queries to large language models (LLMs) exist in-memory only, with zero retention after each query completes.
+- We don't use your code, code reviews, or other collected data to train LLMs.
+- CodeRabbit doesn't share any collected customer data with third parties.
+- We keep all customer data confidential, and isolated by organization.
+- Our data collection and storage practices comply with SOC 2 and GDPR standards.
+
+For more information about how we protect your data, see [the CodeRabbit Trust Center](https://trust.coderabbit.ai).
+
+## Flexible pricing, free for public repositories
+
+Public repositories can use the Pro tier of CodeRabbit at no charge, including all of the code-review features described on this page. Rate limits might apply.
+
+For private repositories, a number of pricing tiers are available. These range from a Free tier that offers unlimited code-change summaries, to an Enterprise tier with access to advanced features and SLA support. For more information, see [Pricing](https://www.coderabbit.ai/pricing).
+
+## Review local changes from within VSCode
+
+As a separate, free product, CodeRabbit offers a VSCode extension that brings a subset of core CodeRabbit features to VSCode. This lets you use the power of CodeRabbit to tune and tidy your code changes locally before pushing your changes into a formal pull request for more thorough reviews.
+
+For more information, see [Review local changes](/code-editors).
+
+## What's next
+
+- [Quickstart](/getting-started/quickstart/) lets you experience your first CodeRabbit code review first-hand.
+
+- [Review local changes](/code-editors) guides you through installing and using a subset of CodeRabbit features directly from your code editor.
+
+- [Why CodeRabbit?](/overview/why-coderabbit) dives further into the philosophies and technologies that drive CodeRabbit.
diff --git a/docs/overview/why-coderabbit.md b/docs/overview/why-coderabbit.md
index 5c94ea91..cbdfc5f6 100644
--- a/docs/overview/why-coderabbit.md
+++ b/docs/overview/why-coderabbit.md
@@ -41,7 +41,7 @@ Features such as:
- CodeRabbit Commands
- PR summary on the fly
- Visual diagrams
-- Docstrings (Beta)
+- Docstrings generation
- Custom review rules
> All these features improve the developer experience by reducing review time, maintaining consistency, and sharing knowledge effectively across teams.
@@ -348,7 +348,7 @@ CodeRabbit is built for production environments with:
### Three Steps to Better Code Reviews
-1. **Sign in** with [GitHub](/platforms/github-com), [GitLab](/platforms/gitlab-com), or [Azure DevOps](/platforms/azure-devops)
+1. **Sign in** with [GitHub](../platforms/github-com.md), [GitLab](../platforms/gitlab-com.mdx), or [Azure DevOps](../platforms/azure-devops.md)
2. Select and add repositories in CodeRabbit dashboard
3. That's it. You're good to go.
diff --git a/docs/platforms/azure-devops.md b/docs/platforms/azure-devops.md
index 7accacc6..12b70765 100644
--- a/docs/platforms/azure-devops.md
+++ b/docs/platforms/azure-devops.md
@@ -70,7 +70,7 @@ you will need to add the Personal Access Token.
management.
- **Use the CodeRabbit logo as the profile picture** - This further ensures easy
recognition. You can download our logo from
- [here](/img/integrations/logo.svg "download").
+ [here](/img/integrations/logo.png "download").
### Key Points to Remember
@@ -95,7 +95,8 @@ Follow these steps to generate the token:
accessible organizations."
6. Enter a name and an expiry date for the token.
7. We need to have read & write access to "Work Items" & "Code" to post reviews
- on pull requests.
+ on pull requests. If you are on the Pro tier also add "Build" access for pipeline
+ failure remediation.
8. Click "Create"

diff --git a/docs/platforms/bitbucket-cloud.md b/docs/platforms/bitbucket-cloud.md
new file mode 100644
index 00000000..acb37f34
--- /dev/null
+++ b/docs/platforms/bitbucket-cloud.md
@@ -0,0 +1,129 @@
+---
+title: "Bitbucket Cloud"
+description: "Learn how to integrate CodeRabbit with Bitbucket Cloud."
+sidebar_label: "Bitbucket Cloud"
+sidebar_position: 6
+---
+
+CodeRabbit integrates with Bitbucket Cloud to enhance code review and collaboration by:
+
+- Automatically initiating code reviews for newly created merge requests.
+- Displaying review comments and suggestions directly on merge requests.
+- Enabling seamless interaction with the CodeRabbit bot for real-time feedback and assistance.
+
+This guide will assist you in effectively integrating CodeRabbit with Bitbucket Cloud.
+
+## Configure App Password
+
+To enable CodeRabbit to interact with your Bitbucket repositories, an app password is required. This token grants the necessary permissions for interacting with the Merge Requests and Discussions APIs.
+
+1. Create a new Bitbucket account specifically for CodeRabbit and treat it as a service account.
+2. Name the account "CodeRabbit".
+3. Generate an App Password to enable seamless integration between CodeRabbit and your Bitbucket repositories.
+
+We recommend creating a new user as a service account, associating this user to the workspace you'd like to install CodeRabbit on, and providing CodeRabbit with the app password to allow access. During the installation process, CodeRabbit will automatically configure the required webhook for seamless integration.
+
+
+
+
+
+:::note
+
+If you wish to change the review user, you must provide the app password for the new user who will post reviews and comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once this is done, you will need to reinstall the CodeRabbit app for each project.
+
+:::
+
+### Recommendations
+
+- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
+- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
+- **Use a dedicated email address** - This helps in easy identification and management.
+- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
+- **Developer Access** Ensure the service account user has developer access to the projects that you wish to install CodeRabbit on.
+
+#### Key Points to Remember
+
+- Code reviews will be attributed to the owner of the app password.
+
+#### Generating an App password
+
+Bitbucket provides an option to generate an app password for a new user. Follow these steps to generate the password:
+
+1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews and related activities.
+2. Go to "Personal Bitbucket Settings".
+3. Choose **App passwords**.
+4. Click **Create app password**.
+5. Enter a label easily recognizable for this app passwords usage.
+6. Ensure the following scopes are selected:
+ 1. Account - Read
+ 2. Issues - Write
+ 3. Workspace membership - Read
+ 4. Projects - Write
+ 5. Repositories - Write
+ 6. Pull requests - Write
+ 7. Webhooks - Read and write
+ 8. Pipelines - Read
+ 9. Runners - Read
+7. Click **Create**
+8. Note down the app password as it will only be displayed once.
+
+
+
+
+
+
+
+
+### Where to Provide CodeRabbit the App Password
+
+By default, if no app password is provided, CodeRabbit will prompt you to provide one during the installation process. However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, and selecting the **Bitbucket User** tab on the sidebar. Once entering the app password, the password will be validated and saved for future use.
+
+You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the service account user you created.
+
+---
+
+### Installing CodeRabbit into your Bitbucket Repositories
+
+1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app.
+2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories at once, select the checkbox at the top.
+3. Select **Install Repositories**.
+
+
+
+
+
+The webhook `https://coderabbit.ai/bitbucketHandler` will now be installed for the projects selected.
+
+
+
+
+
+### Troubleshooting
+
+:::note
+
+If you are experiencing issues with the webhook, such as CodeRabbit not being able to access the repository, or not reviewing pull requests, you can manually delete the webhook to the repository.
+
+Then refresh the repository page in the CodeRabbit app and you can reinstall the webhook.
+
+If you cannot install the webhook please check that your Bitbucket user has the necessary permissions to install the webhook and the App Password is properly configured.
+
+:::
diff --git a/docs/platforms/github-com.md b/docs/platforms/github-com.md
index 4866fd00..ecc07272 100644
--- a/docs/platforms/github-com.md
+++ b/docs/platforms/github-com.md
@@ -109,7 +109,7 @@ CodeRabbit generates detailed statistics and test plans for each pull request.

-> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](https://docs.coderabbit.ai/guides/review-instructions/)
+> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](/guides/review-instructions)
Whether you manage a popular repository or are working on a smaller project, whether it's hosted on **GitLab, GitHub, or self-hosted GitHub or GitLab**, CodeRabbit can help streamline your development process. This AI Code Review assistant is designed to save you time by automating code reviews and offering insightful feedback.
diff --git a/docs/platforms/github-enterprise-server.md b/docs/platforms/github-enterprise-server.md
index cb0e8084..733607cb 100644
--- a/docs/platforms/github-enterprise-server.md
+++ b/docs/platforms/github-enterprise-server.md
@@ -75,8 +75,7 @@ steps below to
[create a GitHub App](https://docs.github.com/en/enterprise-server@latest/apps/creating-github-apps/registering-a-github-app/registering-a-github-app):
1. Sign in to your GitHub Enterprise account.
-2. In the upper-right corner of any page, click your profile photo, then click
- **Settings**.
+2. In the upper-right corner of any page, click your profile photo, then click **Settings**.
3. In the left sidebar, click **Developer settings** > **GitHub Apps**
4. Click **New GitHub App**.
5. Set the following fields:
@@ -90,8 +89,10 @@ steps below to
- **Webhook secret**: Use a secure string and keep it handy.
- **Permissions**:
- **Repository permissions**:
+ - **Actions**: Read-only
- **Checks**: Read-only
- **Contents**: Read and write
+ - **Commit statuses**: Read and write
- **Discussions**: Read-only
- **Issues**: Read and write
- **Metadata**: Read-only
@@ -110,6 +111,7 @@ steps below to
- Pull request review thread
- Push
- Release
+ - **Where can this GitHub App be installed?**: Select `Any account`
6. Click **Create GitHub App**.
Once the GitHub App has been created, click on **Generate a new client secret**
@@ -129,6 +131,8 @@ Keep the following details handy:

+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
### **Step 4: CodeRabbit UI Onboarding**
Submit the details that were accumulated in previous steps:
@@ -166,4 +170,20 @@ Use this CodeRabbit IP if your instance requires IP whitelisting
`35.222.179.152/32` and `34.170.211.100/32`.
VPN tunneling is available as an add-on package. Please reach out to us at
-[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested.
+[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested.
+
+### **FAQ**
+
+#### Who should create the OAuth App and GitHub App?
+
+The OAuth App and GitHub App should be created by a user with administrative
+privileges on the GitHub Enterprise Server instance. This user will be responsible for managing the integration with CodeRabbit.
+
+#### I see an error when trying to log in to CodeRabbit. What should I do?
+
+If you encounter an error during the login process, please ensure that:
+
+- The OAuth App and GitHub App are correctly configured with the right URLs and permissions.
+- The browser local storage and cookies related to CodeRabbit are cleared.
+
+If the issue persists, contact our support team.
diff --git a/docs/platforms/gitlab-com.md b/docs/platforms/gitlab-com.md
deleted file mode 100644
index 386f6473..00000000
--- a/docs/platforms/gitlab-com.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Integrating CodeRabbit with GitLab.com
-description: Learn how to integrate CodeRabbit and add to your GitLab workflow.
-sidebar_label: GitLab.com
-sidebar_position: 2
----
-
-This guide will assist you in effectively integrating CodeRabbit with SaaS GitLab.
-
-## How it works
-
-For the CodeRabbit app to post reviews on merge requests, it needs to interact with the GitLab API, which requires a Personal Access Token. This token can be generated either by using our default CodeRabbit user or by creating a Personal Access Token from one of your existing users.
-
-The CodeRabbit default user, named "coderabbitai", is already set up in GitLab SaaS and will be added to your project when you install the CodeRabbit app. During installation, the necessary webhook for the project will also be created.
-
-If your organization prefers to use an organization user, you can create a new user in GitLab and generate a Personal Access Token for that user, following [our recommendations](#recommendations).
-
-:::note
-
-Keep in mind that if you want to change the review user, you can either disable the organization user or add a new user via the CodeRabbit UI. However, this will require manually removing the previous user from the projects and associated webhooks. Afterward, you will need to reinstall the CodeRabbit app for each project.
-
-:::
-
-## GitLab Access Tokens
-
-To interact with the GitLab API, a **Personal Access Token** is required. This token can either be generated by using our default CodeRabbit user or by creating a **Personal Access Token** from one of your existing users.
-
-Upon first login to the application (immediately after the onboarding screen), you will need to choose based on your organization's requirements.
-
-
-
-**We recommend using the default CodeRabbit user** for most organizations, as it is pre-configured. However, we understand that some organizations may prefer more control over the user or have restrictions regarding user inclusion within their organization.
-
-### Personal Access Tokens
-
-If your organization opts to use another user within the organization, you can do so by [generating a personal access token](#generating-a-personal-access-token).
-
-
-
-#### Recommendations
-
-- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
-- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
-- **Use a dedicated email address** - This helps in easy identification and management.
-- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
-
-#### Key Points to Remember
-
-- Personal access tokens have expiration dates. Ensure the expiration date covers the duration of your intended use of the CodeRabbit app.
-- Code reviews will be attributed to the owner of the personal access token.
-- If the personal access token expires, you can add a new one via the CodeRabbit UI:
- - Navigate to the "GitLab User" page in the sidebar.
- - Click the "Update" button on the displayed card to see the same modal as the initial login.
-
-### Generating a Personal Access Token
-
-GitLab provides an option to generate a personal access token for a new user. Follow these steps to generate the token:
-
-1. Log in as the user intended for CodeRabbit reviews.
-2. Select your avatar on the left sidebar.
-3. Choose "Edit Profile."
-4. Select "Access Tokens" from the left sidebar.
-5. [Click "Add New Token."](https://gitlab.com/-/user_settings/personal_access_tokens)
-6. Enter a name and an expiry date for the token.
-7. If no expiry date is entered, it defaults to 365 days from the current date.
-8. Ensure the following scopes are selected: `api`, `read_api`, `read_user`.
-9. Click "Create Personal Access Token."
-10. Note down the token as it will only be displayed once.
-
-
-
-### Installing CodeRabbit into your GitLab Repositories
-
-1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app.
-2. Click the check box to the left of the repos you want to install CodeRabbit into. Click the box at the top to install onto all repos at once.
-3. Click **Install Repositories**.
-
-
-
-The webhook `https://coderabbit.ai/gitlabHandler` will now be installed in your repositories.
-
-
diff --git a/docs/platforms/gitlab-com.mdx b/docs/platforms/gitlab-com.mdx
new file mode 100644
index 00000000..c276cd35
--- /dev/null
+++ b/docs/platforms/gitlab-com.mdx
@@ -0,0 +1,154 @@
+---
+title: Integrating CodeRabbit with GitLab.com
+description: Learn how to integrate CodeRabbit and add to your GitLab workflow.
+sidebar_label: GitLab.com
+sidebar_position: 2
+---
+
+CodeRabbit integrates with GitLab to enhance code review and collaboration by:
+
+- Automatically initiating code reviews for newly created merge requests.
+- Displaying review comments and suggestions directly on merge requests.
+- Enabling seamless interaction with the CodeRabbit bot for real-time feedback and assistance.
+
+This guide will assist you in effectively integrating CodeRabbit with SaaS GitLab.
+
+## GitLab Access Tokens
+
+To enable CodeRabbit to interact with your GitLab repositories, an access token is required. This token grants the necessary permissions for interacting with the Merge Requests and Discussions APIs.
+
+ 1. Personal Access Token (PAT): You can create a new GitLab account specifically for CodeRabbit, name it “CodeRabbit” and treat it as a service account. Then generate a PAT from it where PAT will enable seamless integration between CodeRabbit and your GitLab repositories.
+ 2. Group Access Token: If your organization uses GitLab Premium or Ultimate, you can generate a Group Access Token. This option automatically creates a bot user associated with the group for managing access and posting reviews.
+
+### Personal Access Token
+
+We recommend creating a new user as a service account, associating this user to the group you'd like to install CodeRabbit on, and providing CodeRabbit with the personal access token to allow access. During the installation process, CodeRabbit will automatically configure the required webhook for seamless integration.
+
+
+
+
+
+:::note
+
+If you wish to change the review user, you must provide the access token for the new user who will post reviews and comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once this is done, you will need to reinstall the CodeRabbit app for each project.
+
+:::
+
+
+
+
+
+#### Recommendations
+
+- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control.
+- **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference.
+- **Use a dedicated email address** - This helps in easy identification and management.
+- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download").
+- **Ensure Developer Access** - Ensure the dedicated user has (at least) **Developer** access to the group or projects that you wish to install CodeRabbit on.
+
+#### Key Points to Remember
+
+- Personal access tokens have expiration dates. Ensure the expiration date **covers the duration** of your intended use of CodeRabbit.
+- Code reviews will be attributed to the owner of the personal access token.
+- If the personal access token expires, you can add a new one via the CodeRabbit UI:
+ - Navigate to the **GitLab User** page in the sidebar.
+ - Enter the new Access token, and click the **Update** button on the page.
+
+#### Generating a Personal Access Token
+
+GitLab provides an option to generate a personal access token for a new user. Follow these steps to generate the token:
+
+1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews and related activities.
+2. Select your avatar on the left sidebar.
+3. Choose **Edit Profile**.
+4. Select **Access Tokens** from the left sidebar.
+5. Click [Add New Token.](https://gitlab.com/-/user_settings/personal_access_tokens)
+6. Enter a name and an expiry date for the token.
+7. If no expiry date is entered, it defaults to 365 days from the current date.
+8. Ensure the following scopes are selected: `api`, `read_api`, `read_user`.
+9. Click **Create Personal Access Token**
+10. Note down the token as it will only be displayed once.
+
+
+
+
+
+---
+
+### Group Access Token
+
+Creating a Group Access Token in GitLab automatically generates a bot user. Ensure that the token is configured with Developer access. Once set up, you only need to provide this token for integration. Note that a Group Access Token is limited to the scope of the group where it was created. To configure additional groups, you will need to generate a separate Group Access Token for each group.
+
+:::note
+
+By default, GitLab restricts this option to users on the Premium or Ultimate tiers.
+
+:::
+
+#### Generating a Group Access Token
+
+1. Navigate to the group you wish to install CodeRabbit on.
+2. Select **Settings** from the left sidebar.
+3. Select **Access Tokens** within the Settings heading.
+4. Create a Group Access Token.
+5. Ensure the following scopes are selected: `api`.
+6. Ensure Developer Access is provided.
+
+---
+
+### Where to Provide CodeRabbit the Access Token
+
+By default, if no access token is provided, CodeRabbit will prompt you to provide one during the installation process. However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, and selecting the **GitLab User** tab on the sidebar. Once entering the token, the token will be validated and saved for future use.
+
+You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the service account user you created.
+
+---
+
+### Installing CodeRabbit into your GitLab Repositories
+
+1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app.
+2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories at once, select the checkbox at the top.
+3. Select **Install Repositories**.
+
+
+
+
+
+The webhook `https://coderabbit.ai/gitlabHandler` will now be installed for the projects selected.
+
+
+
+
+
+### Troubleshooting
+
+:::note
+
+If you are experiencing issues with the webhook, such as coderabbit not being able to access the repository, or not reviewing pull requests, you can manually delete the webhook to the repository.
+
+Then refresh the repository page in the CodeRabbit app and you can reinstall the webhook.
+
+If you cannot install the webhook please check that your GitLab user has the necessary permissions to install the webhook and the PAT is not expired.
+
+:::
diff --git a/docs/platforms/platforms.md b/docs/platforms/platforms.md
index ab0cc068..996089fc 100644
--- a/docs/platforms/platforms.md
+++ b/docs/platforms/platforms.md
@@ -1,8 +1,6 @@
---
-title: Supported Git Platforms
-sidebar_label: Supported Git Platforms
+title: Integrate with Git platforms
description: Overview of CodeRabbit's supported Git platforms.
-sidebar_position: 1
---
CodeRabbit supports various Git platforms to provide code review for your repositories. For the cloud-hosted Git platforms, you can [login][login] to CodeRabbit and add your repositories. The following platforms are supported:
@@ -13,28 +11,25 @@ CodeRabbit supports various Git platforms to provide code review for your reposi
| ------------------------ | ---------------------------------------- |
| GitHub.com | [Supported](github-com.md) |
| GitHub Enterprise Server | [Supported](github-enterprise-server.md) |
-| GitHub Self Hosted | [Supported](../self-hosted/github.md) |
## GitLab
-| Host | Support |
-| ------------------- | ------------------------------------- |
-| GitLab.com | [Supported](gitlab-com.md) |
-| GitLab Self Managed | [Supported](self-hosted-gitlab.md) |
-| GitLab Self Hosted | [Supported](../self-hosted/gitlab.md) |
+| Host | Support |
+| ------------------- | ---------------------------------- |
+| GitLab.com | [Supported](gitlab-com.mdx) |
+| GitLab Self Managed | [Supported](self-hosted-gitlab.md) |
## Azure DevOps
-| Host | Support |
-| ------------------- | ------------------------------------------- |
-| Azure DevOps | [Supported](azure-devops.md) |
-| Azure DevOps Server | [Supported](../self-hosted/azure-devops.md) |
+| Host | Support |
+| ------------ | ---------------------------- |
+| Azure DevOps | [Supported](azure-devops.md) |
## Bitbucket
| Host | Support |
| -------------------- | ---------------------------------------- |
| Bitbucket Datacenter | [Supported](../self-hosted/bitbucket.md) |
-| Bitbucket Cloud | Coming soon |
+| Bitbucket Cloud | [Supported](./bitbucket-cloud.md) |
[login]: https://app.coderabbit.ai/login
diff --git a/docs/platforms/self-hosted-gitlab.md b/docs/platforms/self-hosted-gitlab.md
index 4ef7623c..3fa18a71 100644
--- a/docs/platforms/self-hosted-gitlab.md
+++ b/docs/platforms/self-hosted-gitlab.md
@@ -71,6 +71,8 @@ After the user is created, you can retrieve the **User ID** from that user's
profile and generate an [**access token**](#generating-personal-access-token).
The access token is used to post reviews on merge requests.
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
#### **Creating OAuth2 application**
For self-managed GitLab, we recommend creating an instance-wide application
@@ -120,4 +122,4 @@ Use this CodeRabbit IP if your instance requires IP whitelisting
`35.222.179.152/32` and `34.170.211.100/32`.
VPN tunneling is available as an add-on package. Please reach out to us at
-[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested.
+[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested.
diff --git a/docs/reference/caching.md b/docs/reference/caching.md
new file mode 100644
index 00000000..cea907c0
--- /dev/null
+++ b/docs/reference/caching.md
@@ -0,0 +1,20 @@
+# Caching
+
+CodeRabbit provides caching capabilities for code and dependencies to accelerate the review process. This feature enhances your development workflow by delivering faster feedback.
+
+## Security and Privacy
+
+- Cached data is encrypted (except for OSS projects)
+- Cache expires after a maximum of one week
+- Cached data is used exclusively for speeding up reviews
+
+## Configuration
+
+You can opt out of caching in two ways:
+
+1. **Disable Cache**: Configure `Review - Disable Cache` at either:
+
+ - Organization level
+ - Repository level
+
+2. **Disable Data Retention**: Turn off the `Data Retention` setting in your Organization Settings to disable all data retention across your organization.
diff --git a/docs/reference/review-commands.md b/docs/reference/review-commands.md
new file mode 100644
index 00000000..011bf9d5
--- /dev/null
+++ b/docs/reference/review-commands.md
@@ -0,0 +1,47 @@
+---
+title: Code review commands
+description: A list of commands that you can issue to CodeRabbit during code reviews.
+---
+
+This page lists the various commands that you can issue to CodeRabbit through
+its chat interface during code reviews. For more information about working with
+CodeRabbit through chat, see [Interact with CodeRabbit reviews](/guides/code-review-overview#interact).
+
+| Command | Description | Use Case |
+| --------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `@coderabbitai review` | Triggers an incremental review of new changes | When automatic reviews are disabled or you want to manually trigger a review |
+| `@coderabbitai full review` | Performs a complete review of all files from scratch | When you want to get fresh insights on the entire PR |
+| `@coderabbitai summary` | Regenerates the PR summary | When you want an updated overview after making changes |
+
+## Code review flow control
+
+| Command | Description | Use Case |
+| ---------------------- | ---------------------------------------- | --------------------------------------------------- |
+| `@coderabbitai pause` | Temporarily stops reviews on the PR | When you're making multiple rapid changes |
+| `@coderabbitai resume` | Restarts reviews after a pause | When you're ready for CodeRabbit to review again |
+| `@coderabbitai ignore` | Permanently disables reviews for this PR | When you want to handle the review process manually |
+
+## Comment management
+
+| Command | Description | Use Case |
+| ----------------------- | --------------------------------------- | ------------------------------------------------------- |
+| `@coderabbitai resolve` | Resolves all CodeRabbit review comments | When you've addressed all feedback and want to clean up |
+
+## Documentation commands
+
+| Command | Description | Use Case |
+| ----------------------------------- | -------------------------------------------- | --------------------------------------------------- |
+| `@coderabbitai generate docstrings` | Generates docstrings for functions in the PR | When you need automatic documentation for your code |
+| `@coderabbitai configuration` | Shows current CodeRabbit settings | When you need to check or export your configuration |
+
+## Agentic chat commands
+
+| Command | Description | Use Case |
+| -------------------- | ---------------------------------------------------------- | ---------------------------------------------------- |
+| `@coderabbitai plan` | Get the agentic chat to plan an edit for previous comments | When you want CodeRabbit to change your code for you |
+
+## Help and support
+
+| Command | Description | Use Case |
+| -------------------- | ------------------------------------------ | ------------------------------------------ |
+| `@coderabbitai help` | Displays available commands and usage info | When you need guidance on using CodeRabbit |
diff --git a/docs/self-hosted/_category_.yaml b/docs/self-hosted/_category_.yaml
index 1025807f..84f0b578 100644
--- a/docs/self-hosted/_category_.yaml
+++ b/docs/self-hosted/_category_.yaml
@@ -1,4 +1,4 @@
-label: Self-Hosted
+label: Self-Hosted CodeRabbit
position: 4
collapsible: true
collapsed: false
diff --git a/docs/self-hosted/azure-devops.md b/docs/self-hosted/azure-devops.md
index e56f937c..f1a820a3 100644
--- a/docs/self-hosted/azure-devops.md
+++ b/docs/self-hosted/azure-devops.md
@@ -11,11 +11,13 @@ The self-hosted option is only available for CodeRabbit Enterprise customers wit
:::
-## Create a Azure DevOps User
+## Create an Azure DevOps User
- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Add User to Projects
Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with rights to post reviews & open PRs.
@@ -28,6 +30,7 @@ Generate a personal access token for the CodeRabbit user to be added in the `.en
- `Code` - Full
- `Work Items` - Read, write, and manage
+- `Build` - Read
Consult official CodeRabbitAI documentation for a detailed [guide](https://docs.coderabbit.ai/platforms/azure-devops#generating-a-personal-access-token) on creating personal access tokens.
@@ -61,39 +64,68 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-## it is recommended to use gpt-4o-mini, o1-mini, and o1-preview deployments
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_O1MINI_DEPLOYMENT_NAME=[]
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4o is optional
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## gpt-4-turbo is optional: it’s expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=azure-devops
AZURE_DEVOPS_BOT_TOKEN=
AZURE_DEVOPS_BOT_USERNAME=
+
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
@@ -115,7 +147,7 @@ docker pull /coderabbit-agent:latest
### Verify the image is up
-You can query `/health` endpoint to verify that the coderabbit-agent service is up and running.
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
```bash
curl 127.0.0.1:8080/health
diff --git a/docs/self-hosted/bitbucket.md b/docs/self-hosted/bitbucket.md
index 9559b6e0..51cb1895 100644
--- a/docs/self-hosted/bitbucket.md
+++ b/docs/self-hosted/bitbucket.md
@@ -1,5 +1,5 @@
---
-title: Use Self-Hosted CodeRabbit With Bitbucket Datacenter
+title: Use Self-Hosted CodeRabbit With Bitbucket Datacenter
sidebar_label: Bitbucket Datacenter
description: Instructions to self-host CodeRabbit and integrate it with Bitbucket Datacenter.
sidebar_position: 4
@@ -16,6 +16,8 @@ The self-hosted option is only available for CodeRabbit Enterprise customers wit
- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Add User to Projects
Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with permissions to:
@@ -36,9 +38,9 @@ Generate a personal access token for the CodeRabbit user to be added in the `.en
- "Comment Added"
3. **Add Webhook URL**: Enter the URL pointing to the CodeRabbit service, followed by `/bitbucket_server_webhooks` (e.g., `http://127.0.0.1:8080/bitbucket_server_webhooks`).
-## Prepare an `.env` file
+## Prepare a `.env` file
-Create an `.env` file with the following content:
+Create a `.env` file with the following content:
```bash
# if using OpenAI
@@ -54,38 +56,71 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-## it is recommended to use gpt-4o-mini, o1-mini, and o1-preview deployments
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_O1MINI_DEPLOYMENT_NAME=[]
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4o is optional
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## gpt-4-turbo is optional: it’s expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
# System Configuration
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
+
SELF_HOSTED=bitbucket-server
+
BITBUCKET_SERVER_URL=/rest
BITBUCKET_SERVER_WEBHOOK_SECRET=
BITBUCKET_SERVER_BOT_TOKEN=
BITBUCKET_SERVER_BOT_USERNAME=
+
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-# Optional Features
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
+
JIRA_HOST=[]
JIRA_PAT=[]
+
LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
@@ -107,7 +142,7 @@ docker pull us-docker.pkg.dev/coderabbitprod/self-hosted/coderabbit-agent:latest
### Verify the image is up
-You can query `/health` endpoint to verify that the coderabbit-agent service is up and running.
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
```bash
curl 127.0.0.1:8080/health
diff --git a/docs/self-hosted/github.md b/docs/self-hosted/github.md
index 422b5e14..cce4296c 100644
--- a/docs/self-hosted/github.md
+++ b/docs/self-hosted/github.md
@@ -22,6 +22,7 @@ Set the following Repository permissions:
- Issues: Read & write
- Metadata: Read-only
- Pull requests: Read & write
+- Actions: Read-only
Set the following Organization permissions:
@@ -41,6 +42,8 @@ Set the following events:
- Push
- Release
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Gather information from the GitHub App
- App ID
@@ -64,16 +67,41 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-## it is recommended to use gpt-4o-mini, o1-mini, and o1-preview deployments
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_O1MINI_DEPLOYMENT_NAME=[]
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4o is optional
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## gpt-4-turbo is optional: it’s expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+# it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
@@ -86,9 +114,6 @@ ANTHROPIC_BASE_URL=[]
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=github
GH_WEBHOOK_SECRET=
@@ -100,26 +125,20 @@ GITHUB_APP_PEM_FILE=
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-# This will use your CodeRabbit API key to store learnings on our servers.
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
-OAUTH2_ENDPOINT=[]
-OAUTH2_CLIENT_ID=[]
-OAUTH2_CLIENT_SECRET=[]
-
-# Set to true to use the on-prem knowledge base features. This will take precedence over the ENABLE_LEARNINGS flag above.
-SELF_HOSTED_KNOWLEDGE_BASE=[true]
-# The branch which CodeRabbit will store the knowledge base json files in.
-SELF_HOSTED_KNOWLEDGE_BASE_BRANCH=[coderabbitai/data]
-# URL to the host running ChromaDB 0.5.20.
-CHROMADB_URL=[http://chromadb:8000]
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
@@ -129,7 +148,7 @@ CHROMADB_URL=[http://chromadb:8000]
- For `GITHUB_APP_PEM_FILE`, flatten the PEM file by replacing newlines with `\n`.
- For `GITHUB_HOSTNAME`, use GitHub Enterprise server's hostname, for example, “github.acme-inc.com”
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
-- Refer to the [Self-hosted knowledge base](/integrations/knowledge-base#self-hosted) section for details on the `ON_PREM_KNOWLEDGE_BASE`.
+- When `ENABLE_LEARNINGS` is set to `true`, CodeRabbit will use `CODERABBIT_API_KEY` to store learnings on our servers.
:::
@@ -152,7 +171,7 @@ docker run --env-file .env --publish 127.0.0.1:8080:8080 /coder
### Verify the image is up
-You can query `/health` endpoint to verify that the coderabbit-agent service is up and running.
+You can query `/health` endpoint to verify that the `coderabbit-agent` service is up and running.
```bash
curl 127.0.0.1:8080/health
diff --git a/docs/self-hosted/gitlab.md b/docs/self-hosted/gitlab.md
index b594b509..9b3a6a28 100644
--- a/docs/self-hosted/gitlab.md
+++ b/docs/self-hosted/gitlab.md
@@ -16,6 +16,8 @@ The self-hosted option is only available for CodeRabbit Enterprise customers wit
- **Username**: Set the username to "CodeRabbit" for easier identification (optional).
- **Profile Image**: Use the CodeRabbitAI logo for the user image (optional).
+We recommend using the CodeRabbit [logo](/img/integrations/logo.png) as the profile picture to ensures easy recognition.
+
## Add User to Projects
Add the CodeRabbit user to each project where you want CodeRabbit to post reviews, with at least `Developer` access.
@@ -42,9 +44,9 @@ Consult official CodeRabbitAI documentation for a detailed [guide](https://docs.
- Issues events
- Merge request events
-## Prepare an `.env` file
+## Prepare a `.env` file
-Create an `.env` file with the following content:
+Create a `.env` file with the following content:
```bash
# if using OpenAI
@@ -60,16 +62,41 @@ LLM_PROVIDER=azure-openai
LLM_TIMEOUT=360000
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
-## it is recommended to use gpt-4o-mini, o1-mini, and o1-preview deployments
-AZURE_GPT4OMINI_DEPLOYMENT_NAME=
-AZURE_O1MINI_DEPLOYMENT_NAME=[]
-AZURE_O1_DEPLOYMENT_NAME=[]
-## gpt-4o is optional
-AZURE_GPT4O_DEPLOYMENT_NAME=
-## gpt-4-turbo is optional: it’s expensive but provides better reviews than gpt-4o
-AZURE_GPT4TURBO_DEPLOYMENT_NAME=[]
+## it is recommended to deploy gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally).
+AZURE_GPT41MINI_DEPLOYMENT_NAME=
+AZURE_O4MINI_DEPLOYMENT_NAME=
+AZURE_O3_DEPLOYMENT_NAME=
+AZURE_GPT41_DEPLOYMENT_NAME=[]
+# optionally, deploy gpt-4o-mini instead of gpt-4.1-mini
+AZURE_GPT4OMINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o3-mini instead of o4-mini
+AZURE_O3MINI_DEPLOYMENT_NAME=[]
+# optionally, deploy o1 instead of o3
+AZURE_O1_DEPLOYMENT_NAME=[]
+
+# OAuth2 Configuration (optional)
+# This will use client_credentials flow to get an access token,
+# and use it to make requests to the LLM provider.
+# Here is more information on this flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#first-case-access-token-request-with-a-shared-secret
+# It is expected that the response from the OAuth2 server will be in the format
+# {
+# "access_token": "",
+# "token_type": "Bearer",
+# "expires_in": 3599,
+# }
+OAUTH2_ENDPOINT=[]
+OAUTH2_CLIENT_ID=[]
+OAUTH2_CLIENT_SECRET=[]
+OAUTH2_SCOPE=[]
+
+HTTP_PROXY=[]
+HTTPS_PROXY=[]
+NO_PROXY=[]
# if using AWS Bedrock
+# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4.
+LLM_PROVIDER=bedrock-anthropic
+LLM_TIMEOUT=360000
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
@@ -82,23 +109,27 @@ ANTHROPIC_BASE_URL=[]
TEMP_PATH=/cache
-AST_GREP_RULES_PATH=/home/jailuser/ast-grep-rules
-AST_GREP_ESSENTIALS=ast-grep-essentials
-
SELF_HOSTED=gitlab
GITLAB_BOT_TOKEN=
GITLAB_WEBHOOK_SECRET=
+
CODERABBIT_LICENSE_KEY=
-CODERABBIT_API_KEY=[]
-ENABLE_LEARNINGS=[true]
+CODERABBIT_API_KEY=
ENABLE_METRICS=[true]
+ENABLE_LEARNINGS=[true]
+# if using CodeRabbit's learnings, also provide the following
+# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc.
+OBJECT_STORE_URI=[]
JIRA_HOST=[]
JIRA_PAT=[]
LINEAR_PAT=[]
+
+ENABLE_WEB_SEARCH=[true]
+PERPLEXITY_API_KEY=[]
```
:::note
diff --git a/docs/tools/actionlint.md b/docs/tools/actionlint.md
index 0fa4f628..ab787e0d 100644
--- a/docs/tools/actionlint.md
+++ b/docs/tools/actionlint.md
@@ -1,7 +1,7 @@
---
-title: Actionlint
-sidebar_label: Actionlint
-description: CodeRabbit's guide to Actionlint.
+title: actionlint
+sidebar_label: actionlint
+description: CodeRabbit's guide to actionlint.
---
```mdx-code-block
@@ -10,7 +10,7 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Actionlint](https://github.com/rhysd/actionlint/) is a static checker for
+[`actionlint`](https://github.com/rhysd/actionlint/) is a static checker for
GitHub Actions workflow files.
## Files
@@ -26,4 +26,4 @@ CodeRabbit will use the default configuration.
## Links
-- [Actionlint Configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md/)
+- [`actionlint` Configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md/)
diff --git a/docs/tools/brakeman.md b/docs/tools/brakeman.md
new file mode 100644
index 00000000..d9fac002
--- /dev/null
+++ b/docs/tools/brakeman.md
@@ -0,0 +1,40 @@
+---
+title: Brakeman
+sidebar_label: Brakeman
+description: CodeRabbit's guide to Brakeman.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Brakeman](https://brakemanscanner.org/) is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities. It scans your application's code for potential security issues and provides detailed reports about any vulnerabilities it finds.
+
+## Supported Files
+
+Brakeman will run on files with the following extensions:
+
+- `Gemfile`
+- `*.rb`
+- `*.erb`
+
+## Features
+
+Brakeman can detect many critical vulnerabilities such as:
+
+- SQL injection
+- Cross-site scripting (XSS)
+- Mass assignment
+- Remote code execution
+- And many more security vulnerabilities
+- Out of date package versions
+- Etc
+
+## Links
+
+- [Brakeman Official Website](https://brakemanscanner.org/)
+- [Brakeman GitHub Repository](https://github.com/presidentbeef/brakeman)
+- [Brakeman Documentation](https://brakemanscanner.org/docs/)
+- [Warning Types](https://brakemanscanner.org/docs/warning_types/)
diff --git a/docs/tools/circleci.md b/docs/tools/circleci.md
index ebd2318a..b7b54fb9 100644
--- a/docs/tools/circleci.md
+++ b/docs/tools/circleci.md
@@ -1,7 +1,7 @@
---
-title: CircleCi
-sidebar_label: CircleCi
-description: CodeRabbit's guide to CircleCi.
+title: CircleCI
+sidebar_label: CircleCI
+description: CodeRabbit's guide to CircleCI.
---
```mdx-code-block
@@ -10,11 +10,11 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[CircleCi](https://circleci.com/) is a static checker and validator for circleci config files.
+[CircleCI](https://circleci.com/) is a static checker and validator for circleci config files.
## Files
-We look for `CircleCi Configuration` files specifically in the following directory:
+We look for `CircleCI Configuration` files specifically in the following directory:
- `.circleci/config.yml`
- `.circleci/config.yaml`
@@ -25,4 +25,4 @@ CodeRabbit will use the default configuration.
## Links
-- [CircleCi Configuration](https://circleci.com/docs/configuration-reference/)
+- [CircleCI Configuration](https://circleci.com/docs/configuration-reference/)
diff --git a/docs/tools/clippy.md b/docs/tools/clippy.md
new file mode 100644
index 00000000..257af0e3
--- /dev/null
+++ b/docs/tools/clippy.md
@@ -0,0 +1,50 @@
+---
+title: Clippy
+sidebar_label: Clippy
+description: CodeRabbit's guide to Clippy.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Clippy](https://github.com/rust-lang/rust-clippy) is a collection of lints to catch common mistakes and improve your Rust code. It is the official linter for the Rust programming language.
+
+## Supported Files
+
+Clippy will run on files with the following extensions:
+
+- `*.rs`
+
+## Configuration
+
+Clippy supports the following configuration files:
+
+- `clippy.toml`
+- `.clippy.toml`
+
+:::note
+
+Clippy does not require configuration to run. If no configuration file is found, it will use default settings.
+
+A Cargo.toml is required.
+
+:::
+
+## Features
+
+Clippy can detect many code quality issues such as:
+
+- Style violations
+- Common mistakes
+- Performance issues
+- Deprecated code patterns
+- And many more Rust-specific issues
+
+## Links
+
+- [Clippy GitHub Repository](https://github.com/rust-lang/rust-clippy)
+- [Clippy Documentation](https://rust-lang.github.io/rust-clippy/master/)
+- [Available Lints](https://rust-lang.github.io/rust-clippy/master/index.html)
diff --git a/docs/tools/detekt.md b/docs/tools/detekt.md
index 2a504a37..865dd69d 100644
--- a/docs/tools/detekt.md
+++ b/docs/tools/detekt.md
@@ -1,7 +1,7 @@
---
-title: Detekt
-sidebar_label: Detekt
-description: CodeRabbit's guide to Detekt.
+title: detekt
+sidebar_label: detekt
+description: CodeRabbit's guide to detekt.
---
```mdx-code-block
@@ -10,23 +10,23 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Detekt](https://detekt.dev/) is a static code analysis tool specifically designed for Kotlin projects
+[`detekt`](https://detekt.dev/) is a static code analysis tool specifically designed for Kotlin projects
## Files
-Detekt will run on files with the following extensions:
+`detekt` will run on files with the following extensions:
- `.kt`
- `.kts`
## Configuration
-Detekt uses a YAML style configuration file.
+`detekt` uses a YAML style configuration file.
-Detekt supports the following config files:
+`detekt` supports the following config files:
-- User-defined config file set at `reviews.tools.detekt.config_file` in your project's `.coderabbit.yaml` file or setting the "Review → Tools → Detekt → Config File" field in CodeRabbit's settings page.
+- User-defined config file set at `reviews.tools.detekt.config_file` in your project's `.coderabbit.yaml` file or setting the "Review → Tools → `detekt` → Config File" field in CodeRabbit's settings page.
## Links
-- [Detekt Configuration](https://detekt.dev/docs/introduction/configurations/)
+- [`detekt` Configuration](https://detekt.dev/docs/introduction/configurations/)
diff --git a/docs/tools/list.md b/docs/tools/list.md
new file mode 100644
index 00000000..b372bccd
--- /dev/null
+++ b/docs/tools/list.md
@@ -0,0 +1,80 @@
+---
+title: List of supported tools
+description: Overview of CodeRabbit's supported linters and security analysis tools
+---
+
+This is a list of the third-party open-source linters and security analysis tools that CodeRabbit uses to generate code reviews.
+
+For more information about fine-tuning the CodeRabbit configuration of a tool, click that tool's name in the following list.
+
+For an overview of how CodeRabbit uses these tools when generating code reviews, as well as general information about controlling their use, see [Configure third-party tools](/tools/).
+
+| Technology | Tools | Category |
+| :-------------------------- | :--------------------------------------------------------- | :-------------------------------------------------- |
+| All | [Gitleaks][Gitleaks], [Pipeline Remediation][Pipeline] | Code Security, CI/CD |
+| Azure DevOps Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation |
+| CircleCI | [CircleCI][CircleCI], [Pipeline Remediation][Pipeline] | Configuration Validation, CI/CD Failure Remediation |
+| CloudFormation | [Checkov][Checkov] | Code Security |
+| Cppcheck | [Cppcheck][Cppcheck] | Code Quality |
+| CSS | [Biome][Biome] | Code Quality |
+| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security |
+| GitHub Actions | [actionlint][actionlint], [Pipeline Remediation][Pipeline] | Code Quality, CI/CD Failure Remediation |
+| GitLab Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation |
+| Go | [golangci-lint][golangci-lint] | Code Quality |
+| Helm | [Checkov][Checkov] | Code Security |
+| Javascript | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| JSON, JSONC | [Biome][Biome] | Code Quality |
+| JSX | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| Kotlin | [detekt][detekt] | Code Quality |
+| Kubernetes | [Checkov][Checkov] | Code Security |
+| Lua | [Luacheck][Luacheck] | Code Quality |
+| Markdown | [markdownlint][markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking |
+| PHP | [PHPStan][PHPStan] | Code Quality |
+| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking |
+| Java | [PMD][PMD] | Code Quality |
+| Protobuf | [Buf][Buf] | Code Quality |
+| Python | [Ruff][Ruff], [Pylint][Pylint] | Code Quality |
+| Regal | [Regal][Regal] | Code Quality |
+| Ruby | [RuboCop][RuboCop], [Brakeman][Brakeman] | Code Quality, Code Security |
+| Rust | [Clippy][Clippy] | Code Quality |
+| Semgrep | [Semgrep][Semgrep] | Code Security |
+| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality |
+| Shopify | [Shopify CLI][ShopifyCLI] | Code Quality |
+| SQL | [SQLFluff][SQLFluff] | Code Quality |
+| Swift | [SwiftLint][SwiftLint] | Code Quality |
+| Terraform | [Checkov][Checkov] | Code Security |
+| TSX | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| Typescript | [Biome][Biome], [oxlint][oxlint] | Code Quality |
+| YAML | [YAMLlint][YAMLlint] | Code Quality |
+| Prisma | [Prisma Lint][PrismaLint] | Code Quality |
+
+[ShellCheck]: /tools/shellcheck.md
+[SQLFluff]: /tools/sqlfluff.md
+[Ruff]: /tools/ruff.md
+[markdownlint]: /tools/markdownlint.md
+[LanguageTool]: /tools/languagetool.md
+[Biome]: /tools/biome.md
+[Hadolint]: /tools/hadolint.md
+[SwiftLint]: /tools/swiftlint.md
+[PHPStan]: /tools/phpstan.md
+[golangci-lint]: /tools/golangci-lint.md
+[YAMLlint]: /tools/yamllint.md
+[Gitleaks]: /tools/gitleaks.md
+[Checkov]: /tools/checkov.md
+[detekt]: /tools/detekt.md
+[RuboCop]: /tools/rubocop.md
+[Buf]: /tools/buf.md
+[actionlint]: /tools/actionlint.md
+[Regal]: /tools/regal.md
+[PMD]: /tools/pmd.md
+[Cppcheck]: /tools/cppcheck.md
+[CircleCI]: /tools/circleci.md
+[Semgrep]: /tools/semgrep.md
+[Pipeline]: /tools/pipeline-remediation.md
+[PrismaLint]: /tools/prisma-lint.md
+[oxlint]: /tools/oxlint.md
+[ShopifyCLI]: /tools/shopify-cli.md
+[Luacheck]: /tools/luacheck.md
+[Brakeman]: /tools/brakeman.md
+[Clippy]: /tools/clippy.md
+[Pylint]: /tools/pylint.md
diff --git a/docs/tools/luacheck.md b/docs/tools/luacheck.md
new file mode 100644
index 00000000..3a8414b6
--- /dev/null
+++ b/docs/tools/luacheck.md
@@ -0,0 +1,49 @@
+---
+title: Luacheck
+sidebar_label: Luacheck
+description: CodeRabbit's guide to Luacheck.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Luacheck](https://github.com/mpeterv/luacheck) is a static analyzer and linter for Lua code that detects various issues such as undefined global variables, unused variables and values, accessing uninitialized variables, unreachable code, and more.
+
+## Supported Files
+
+Luacheck will run on files with the following extensions:
+
+- `.lua`
+
+## Configuration
+
+Luacheck supports the following configuration files:
+
+- `.luacheckrc`
+- `luacheckrc`
+- `.luacheckrc.lua`
+- `luacheckrc.lua`
+
+:::note
+
+Luacheck does not require configuration to run. If no configuration file is found, it will use default settings.
+
+:::
+
+## Features
+
+Luacheck can detect:
+
+- Usage of undefined global variables
+- Unused variables and values
+- Accessing uninitialized variables
+- Unreachable code
+- And many more issues
+
+## Links
+
+- [Luacheck GitHub Repository](https://github.com/mpeterv/luacheck)
+- [Luacheck Documentation](https://luacheck.readthedocs.io/)
diff --git a/docs/tools/markdownlint.md b/docs/tools/markdownlint.md
index 5b741843..0e883437 100644
--- a/docs/tools/markdownlint.md
+++ b/docs/tools/markdownlint.md
@@ -1,7 +1,7 @@
---
-title: Markdownlint
-sidebar_label: Markdownlint
-description: CodeRabbit's guide to Markdownlint.
+title: markdownlint
+sidebar_label: markdownlint
+description: CodeRabbit's guide to markdownlint.
---
```mdx-code-block
@@ -10,7 +10,7 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Markdownlint](https://github.com/DavidAnson/markdownlint) is a linter for Markdown.
+[`markdownlint-cli2`](https://github.com/DavidAnson/markdownlint) is a linter for Markdown.
## Files
@@ -21,7 +21,7 @@ Markdownlint will run on files with the following extensions:
## Configuration
-Markdownlint supports the following config files:
+`markdownlint-cli2` supports the following config files:
- `.markdownlint.jsonc`
- `.markdownlint.json`
@@ -32,4 +32,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Markdownlint Configuration](https://github.com/DavidAnson/markdownlint?tab=readme-ov-file#configuration)
+- [`markdownlint-cli2` Configuration](https://github.com/DavidAnson/markdownlint?tab=readme-ov-file#configuration)
diff --git a/docs/tools/oxlint.md b/docs/tools/oxlint.md
new file mode 100644
index 00000000..fd5e7e2c
--- /dev/null
+++ b/docs/tools/oxlint.md
@@ -0,0 +1,50 @@
+---
+title: Oxlint
+sidebar_label: Oxlint
+description: CodeRabbit's guide to Oxlint.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Oxlint](https://oxc.rs/docs/guide/usage/linter) is a blazingly fast JavaScript/TypeScript linter written in Rust that is 50-100x faster than ESLint.
+
+## Supported Files
+
+Oxlint will run on files with the following extensions:
+
+- `.js`
+- `.mjs`
+- `.cjs`
+- `.jsx`
+- `.ts`
+- `.mts`
+- `.cts`
+- `.tsx`
+- `.vue`
+- `.astro`
+- `.svelte`
+
+## Configuration
+
+Oxlint supports the following configuration file:
+
+- `.oxlintrc.json`
+
+:::note
+
+If no Oxlint config file is found and Biome is enabled, CodeRabbit will use Biome instead as Oxlint functionality is included within Biome.
+
+If Biome is not enabled or an Oxlint config file is found, CodeRabbit will use the `.oxlintrc.json` Oxlint config to run.
+
+Oxlint does not require configuration to run if Biome is disabled and Oxlint is enabled.
+
+:::
+
+## Links
+
+- [Oxlint GitHub Repository](https://github.com/oxc-project/oxc/releases/)
+- [Oxlint Website](https://oxc.rs/docs/guide/usage/linter)
diff --git a/docs/tools/pipeline-remediation.md b/docs/tools/pipeline-remediation.md
new file mode 100644
index 00000000..2beb0213
--- /dev/null
+++ b/docs/tools/pipeline-remediation.md
@@ -0,0 +1,177 @@
+---
+title: Pipeline Failure Remediation
+sidebar_label: Pipeline Remediation
+description: CodeRabbit's automated pipeline failure detection and remediation capabilities.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+## Overview
+
+Are pipeline failures holding up your pull requests? Is your latest code failing to build and digging through the failure logs is an absolute nightmare? CodeRabbit's Pipeline Failure Remediation tool automatically detects and fixes build failures across your CI/CD pipelines.
+
+Our intelligent AI system analyzes pipeline failures in real-time, providing inline comments and actionable suggestions to quickly resolve issues. We support multiple CI/CD platforms and integrate with popular security scanning tools to provide comprehensive remediation guidance.
+
+## Example Remediations
+
+With CodeRabbit CI/CD Pipeline Remediation, you have coderabbit automatically review the output of any tooling you desire. Here are some examples of the types of common issues we can help you fix:
+
+### Docker Build Issues
+
+- Missing build dependencies
+- Base image compatibility
+- Multi-stage build optimization
+- Cache utilization improvements
+
+
+
+### Java Build & Testing
+
+- Maven/Gradle dependency conflicts
+- Compilation errors
+- Test failures
+- Memory allocation issues
+
+
+
+### Kubernetes Deployments
+
+- Service configuration validation
+- Resource allocation optimization
+- Network policy fixes
+- Security context remediation
+
+
+
+### NPM Package Management
+
+- Package resolution conflicts
+- Version compatibility issues
+- Security vulnerability patches
+- Build script optimization
+
+
+
+### Python Environment
+
+- Package dependency resolution
+- Virtual environment setup
+- Test framework configuration
+- Code style compliance
+
+
+
+### Security Scanning
+
+- SAST finding remediation
+- Code injection prevention
+- Security best practices
+- Compliance validation
+
+
+
+### Terraform and Infrastructure as Code
+
+- Resource configuration validation
+- State management issues
+- Provider compatibility
+- Security group optimization
+
+
+
+## Supported Platforms
+
+### GitHub Actions
+
+- Automatic detection of workflow failures
+- Inline fixes for common build issues
+- Integration with GitHub Checks
+- Support for custom actions and workflows
+
+### GitLab CI/CD
+
+- GitLab CI/CD Pipeline failure analysis
+- Integration with GitLab Advanced Security
+- Support for DAST (Dynamic Application Security Testing) findings
+- Remediation for SAST (Static Application Security Testing) issues
+
+
+
+
+
+### CircleCI
+
+- CircleCI Pipeline failure analysis
+- Job-level error analysis
+- Configuration validation
+- Dependency resolution
+
+
+
+### Azure DevOps Pipelines
+
+- Azure DevOps CI/CD Pipeline failure analysis
+- Integration with Azure DevOps Checks
+- Support for custom tasks and pipelines
+- Remediation for build issues
+
+
+
+## Common Use Cases
+
+Our tool handles a wide range of pipeline failures including:
+
+### Build Failures
+
+- Docker build issues
+- Node.js dependency conflicts
+- Java compilation errors
+- Python package resolution
+- Go module management
+
+### Infrastructure as Code
+
+- Kubernetes manifest validation
+- Terraform template errors
+- CloudFormation stack issues
+- Ansible playbook failures
+
+### Security Pipeline Integration
+
+- SAST finding remediation
+- DAST vulnerability fixes
+- Dependency scanning
+- Container security
+
+### Testing Failures
+
+- Unit test failures
+- Integration test errors
+- End-to-end test issues
+- Performance test threshold violations
+
+## How It Works
+
+1. **Detection**: CodeRabbit monitors your pipeline runs and automatically detects failures
+2. **Analysis**: Our AI analyzes the failure logs and context to determine the root cause
+3. **Remediation**: We provide inline suggestions and automated fixes where possible
+4. **Learning**: The system learns from successful fixes to improve future recommendations
+
+## Best Practices
+
+1. **Keep Dependencies Updated**: Regular dependency updates help prevent build failures
+2. **Use Lock Files**: Lock files ensure consistent builds across environments
+3. **Implement Caching**: Proper caching strategies speed up builds and reduce failures
+4. **Monitor Resource Usage**: Ensure sufficient resources are allocated to prevent timeouts
+5. **Maintain Clean Tests**: Well-maintained tests reduce false positives
+
+## Links
+
+- [GitHub Actions Configuration](https://docs.github.com/en/actions)
+- [GitLab CI/CD Documentation](https://docs.gitlab.com/ee/ci/)
+- [CircleCI Documentation](https://circleci.com/docs/)
+- [Azure DevOps Pipeline Documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops)
diff --git a/docs/tools/prisma-lint.md b/docs/tools/prisma-lint.md
new file mode 100644
index 00000000..33a36904
--- /dev/null
+++ b/docs/tools/prisma-lint.md
@@ -0,0 +1,46 @@
+---
+title: Prisma Lint
+sidebar_label: Prisma Lint
+description: CodeRabbit's guide to Prisma Lint.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Prisma Lint](https://github.com/loop-payments/prisma-lint) is a linter for Prisma schema files that helps enforce consistent conventions and best practices in your Prisma schemas.
+
+## Files
+
+Prisma Lint will run on files with the following extensions:
+
+- `.prisma`
+
+## Configuration
+
+Prisma Lint supports the following config files:
+
+- `.prismalintrc.json`
+- `.prismalintrc`
+- `.prismalintrc.js`
+- `.prismalintrc.yaml`
+- `.prismalintrc.yml`
+- `prismalint.config.js`
+- User-defined config file set at `reviews.tools.prismalint.config_file` in your project's `.coderabbit.yaml` file or setting the "Review → Tools → Prisma Lint → Config File" field in CodeRabbit's settings page.
+
+:::note
+
+By default, Prisma Lint looks for schema files at `prisma/schema.prisma`. If you have a custom schema path specified in the `prisma.schema` field within `package.json`, that will be used instead.
+
+:::
+
+## Rule Configuration
+
+Rules can be configured in your `.prismalintrc.json` file. See the [Prisma Lint Rules Documentation](https://github.com/loop-payments/prisma-lint/blob/main/RULES.md) for more information on the available rules and their configuration options.
+
+## Links
+
+- [Prisma Lint GitHub Repository](https://github.com/loop-payments/prisma-lint)
+- [Prisma Lint Rules Documentation](https://github.com/loop-payments/prisma-lint/blob/main/RULES.md)
diff --git a/docs/tools/pylint.md b/docs/tools/pylint.md
new file mode 100644
index 00000000..f6793106
--- /dev/null
+++ b/docs/tools/pylint.md
@@ -0,0 +1,37 @@
+---
+title: Pylint
+sidebar_label: Pylint
+description: CodeRabbit's guide to Pylint.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Pylint](https://pylint.pycqa.org/) is a static code analysis tool for Python. It checks your Python code for errors, enforces a coding standard, and looks for code smells.
+
+## Supported Files
+
+Pylint will run on files with the following extensions:
+
+- `*.py`
+
+## Features
+
+Pylint can detect many issues such as:
+
+- Coding standard violations (PEP8)
+- Unused variables and imports
+- Undefined variables
+- Code smells and refactoring suggestions
+- Error-prone constructs
+- And many more
+
+## Links
+
+- [Pylint Official Website](https://pylint.pycqa.org/)
+- [Pylint GitHub Repository](https://github.com/pylint-dev/pylint)
+- [Pylint Documentation](https://pylint.pycqa.org/en/latest/)
+- [Message Control](https://pylint.pycqa.org/en/latest/user_guide/message-control.html)
diff --git a/docs/tools/regal.md b/docs/tools/regal.md
index 0783ebdd..d05be084 100644
--- a/docs/tools/regal.md
+++ b/docs/tools/regal.md
@@ -10,7 +10,7 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Regal](https://docs.styra.com/regal/) is a linter and language server for Rego.
+[Regal](https://docs.styra.com/regal/) is a linter and language server for Rego, the language of [Open Policy Agent](http://openpolicyagent.org) (OPA).
## Files
@@ -20,12 +20,10 @@ Regal will run on files with the following extensions:
## Configuration
-Regal uses a YAML style configuration file. We look for the following config file:
+Regal uses a YAML configuration file located at `.regal/config.yaml`.
-- `.regal/config.yaml`
-
-CodeRabbit will use the default settings based on the profile selected if no config file is found.
+CodeRabbit will use the default settings based on the profile selected if no configuration file is found.
## Links
-- [Regal Configuration](https://docs.styra.com/regal#configuration/)
+- [Regal Configuration](https://docs.styra.com/regal#configuration)
diff --git a/docs/tools/rubocop.md b/docs/tools/rubocop.md
index 9bb68286..45a24de7 100644
--- a/docs/tools/rubocop.md
+++ b/docs/tools/rubocop.md
@@ -1,7 +1,7 @@
---
-title: Rubocop
-sidebar_label: Rubocop
-description: CodeRabbit's guide to Rubocop.
+title: RuboCop
+sidebar_label: RuboCop
+description: CodeRabbit's guide to RuboCop.
---
```mdx-code-block
@@ -10,11 +10,11 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Rubocop](https://rubocop.org/) A Ruby static code analyzer and formatter, based on the community Ruby style guide.
+[RuboCop](https://rubocop.org/) A Ruby static code analyzer and formatter, based on the community Ruby style guide.
## Files
-Rubocop will run on the following files and extensions:
+RuboCop will run on the following files and extensions:
- `.rb`
- `.arb`
@@ -72,7 +72,7 @@ Rubocop will run on the following files and extensions:
## Configuration
-Rubocop uses a YAML style configuration file. We look for the following files anywhere in the repository:
+RuboCop uses a YAML style configuration file. We look for the following files anywhere in the repository:
- `.rubocop.yml`
- `.rubocop.yaml`
@@ -81,4 +81,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Rubocop Configuration](https://docs.rubocop.org/rubocop/1.65/configuration.html/)
+- [RuboCop Configuration](https://docs.rubocop.org/rubocop/1.65/configuration.html/)
diff --git a/docs/tools/semgrep.md b/docs/tools/semgrep.md
index 0442acfb..441dcf38 100644
--- a/docs/tools/semgrep.md
+++ b/docs/tools/semgrep.md
@@ -10,14 +10,13 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Semgrep](https://semgrep.dev/) is a static analysis tool designed to scan code
-for security vulnerabilities and code quality issues.
+[Semgrep](https://github.com/semgrep/semgrep) is an open-source static analysis tool designed to scan code for security vulnerabilities and code quality issues.
## Configuration
-Semgrep uses a YAML style configuration file. By default we will automatically
+Semgrep uses a YAML style configuration file. By default, we will automatically
use the following files if any are set in the root directory of your
-repostitory.
+repository.
- `semgrep.yml` or `semgrep.yaml`
- `semgrep.config.yml` or `semgrep.config.yaml`
@@ -28,10 +27,12 @@ Semgrep supports the following config files:
project's `.coderabbit.yaml` file or setting the "Review → Tools → Semgrep →
Config File" field in CodeRabbit's settings page.
-Due to licensing, CodeRabbit does not ship with the [community-created Semgrep rules](https://github.com/returntocorp/semgrep-rules), but you're free to use these in your own `semgrep.yml` config file.
+Due to licensing, CodeRabbit does not ship with the [community-created Semgrep rules](https://github.com/returntocorp/semgrep-rules).
:::note
-CodeRabbit will only run Semgrep if your repository contains a Semgrep config file. This config must use the default file names or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
+CodeRabbit will only run Semgrep if your repository contains a Semgrep config file. This config must use the default file names, or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
:::
## Links
@@ -41,43 +42,21 @@ CodeRabbit will only run Semgrep if your repository contains a Semgrep config fi
## Files
-Semgrep will run on the following files and extensions:
-
-- `Apex`
-- `Bash`
-- `.c`
-- `.cpp`
-- `.cs`
-- `.clj`
-- `.dart`
-- `Dockerfile`
-- `.ex`
-- `.html`
-- `.go`
-- `.java`
-- `.js`
-- `.jsx`
-- `.json`
-- `.jl`
-- `.jsonnet`
-- `.kt`
-- `.kts`
-- `Lisp`
-- `.lua`
-- `.ml`
-- `.php`
-- `.py`
-- `.r`
-- `.rb`
-- `.rs`
-- `.scala`
-- `Scheme`
-- `.sol`
-- `.swift`
-- `.tf`
-- `.ts`
-- `.tsx`
-- `.yaml`
-- `.xml`
-- `ERB`
-- `Jinja`
+Semgrep will run on the following files types:
+
+- C/C++
+- C#
+- Go
+- Java
+- JavaScript
+- Kotlin
+- Python
+- TypeScript
+- Ruby
+- Rust
+- JSX
+- PHP
+- Scala
+- Swift
+- Terraform
+- JSON
diff --git a/docs/tools/shopify-cli.md b/docs/tools/shopify-cli.md
new file mode 100644
index 00000000..934a6345
--- /dev/null
+++ b/docs/tools/shopify-cli.md
@@ -0,0 +1,56 @@
+---
+title: Shopify CLI
+sidebar_label: Shopify CLI
+description: CodeRabbit's guide to Shopify CLI.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[Shopify CLI](https://github.com/Shopify/cli) is a command-line tool that helps you build Shopify apps, themes, and custom storefronts. It provides functionality for initializing, building, developing, and deploying Shopify projects.
+
+## Validation Rules
+
+The tool checks for:
+
+### Theme Validation
+
+- Liquid syntax errors
+- Theme requirements compliance
+- Asset organization
+- Performance best practices
+- Accessibility standards
+
+### App Validation
+
+- App extension configuration
+- Function implementation
+- API version compatibility
+- Security best practices
+
+## Common Issues
+
+The tool helps identify and fix:
+
+1. Theme Issues:
+
+ - Invalid Liquid syntax
+ - Missing required templates
+ - Performance bottlenecks
+ - Accessibility violations
+
+2. App Issues:
+ - Invalid API usage
+ - Missing dependencies
+ - Configuration errors
+ - Security vulnerabilities
+
+## Links
+
+- [Shopify CLI GitHub Repository](https://github.com/Shopify/cli)
+- [Shopify CLI Theme Documentation](https://shopify.dev/docs/api/shopify-cli/theme)
+- [Shopify CLI App Documentation](https://shopify.dev/docs/apps/tools/cli)
+- [Theme Development Requirements](https://shopify.dev/docs/themes/store/requirements)
diff --git a/docs/tools/sqlfluff.md b/docs/tools/sqlfluff.md
new file mode 100644
index 00000000..9eb959f7
--- /dev/null
+++ b/docs/tools/sqlfluff.md
@@ -0,0 +1,41 @@
+---
+title: SQLFluff
+sidebar_label: SQLFluff
+description: CodeRabbit's guide to SQLFluff.
+---
+
+```mdx-code-block
+import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
+
+
+```
+
+[SQLFluff](https://github.com/sqlfluff/sqlfluff) is a SQL linter and auto-formatter for standardizing SQL code.
+
+## Files
+
+SQLFluff will run on files with the following extensions:
+
+- `.sql`
+
+## Configuration
+
+SQLFluff supports the following config files:
+
+- User-defined config file set at `reviews.tools.sqlfluff.config_file` in your project's `.coderabbit.yaml` file or setting the "Review → Tools → SQLFluff → Config File" field in CodeRabbit's settings page.
+- `setup.cfg`
+- `tox.ini`
+- `pep8.ini`
+- `.sqlfluff`
+- `pyproject.toml`
+
+:::note
+
+CodeRabbit will only run SQLFluff if your repository contains a SQLFluff config file. This config must use one of the default file names listed above, or you must define the path to this file in the `.coderabbit.yaml` or config UI.
+
+:::
+
+## Links
+
+- [SQLFluff Configuration](https://docs.sqlfluff.com/en/stable/configuration.html)
+- [SQLFluff Rules Reference](https://docs.sqlfluff.com/en/stable/rules.html)
diff --git a/docs/tools/tools.md b/docs/tools/tools.md
index 27313ab9..45b376c5 100644
--- a/docs/tools/tools.md
+++ b/docs/tools/tools.md
@@ -1,10 +1,10 @@
---
-title: Supported Tools
-sidebar_label: Supported Tools
+title: Configure third-party tool use
description: Overview of CodeRabbit's supported linters and security analysis tools.
-sidebar_position: 1
---
+This page provides an overview of how CodeRabbit uses third-party open-source tools to deliver its multifaceted code reviews. For a complete list of supported tools, see [Supported tools](/tools/list).
+
```mdx-code-block
import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
@@ -13,6 +13,8 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
CodeRabbit supports various linters and security analysis tools to improve the code review process. The output of these tools is used to enhance the feedback provided by CodeRabbit, making it possible to provide 1-click fixes for common issues.
+All tool runs are done in a secure sandboxed execution environment.
+
## Enabling/Disabling Tools
You can enable or disable tools by setting `reviews.tools..enabled` in your project's `.coderabbit.yaml` file or setting the "Review → Tools → Tool → Enabled" field in CodeRabbit's settings page.
@@ -40,58 +42,6 @@ Remove extraneous f prefix
(F541)
```
-## Supported Tools
-
-| Technology | Tools | Category |
-| :-------------------------- | :--------------------------------------------------------- | :----------------------------- |
-| All | [Gitleaks][Gitleaks] | Code Security |
-| CircleCi | [CircleCi][CircleCi] | Configuration Validation |
-| CloudFormation | [Checkov][Checkov] | Code Security |
-| Cppcheck | [Cppcheck][Cppcheck] | Code Quality |
-| CSS | [Biome][Biome] | Code Quality |
-| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security |
-| GitHub Actions | [Actionlint][Actionlint] | Code Quality |
-| Go | [golangci-lint][golangci-lint] | Code Quality |
-| Helm | [Checkov][Checkov] | Code Security |
-| Javascript | [Biome][Biome] | Code Quality |
-| JSON, JSONC | [Biome][Biome] | Code Quality |
-| JSX | [Biome][Biome] | Code Quality |
-| Kotlin | [Detekt][Detekt] | Code Quality |
-| Kubernetes | [Checkov][Checkov] | Code Security |
-| Markdown | [Markdownlint][Markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking |
-| PHP | [PHPStan][PHPStan] | Code Quality |
-| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking |
-| Java | [PMD][PMD] | Code Quality |
-| Protobuf | [Buf][Buf] | Code Quality |
-| Python | [Ruff][Ruff] | Code Quality |
-| Regal | [Regal][Regal] | Code Quality |
-| Ruby | [Rubocop][Rubocop] | Code Quality |
-| Semgrep | [Semgrep][Semgrep] | Code Security |
-| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality |
-| Swift | [SwiftLint][SwiftLint] | Code Quality |
-| Terraform | [Checkov][Checkov] | Code Security |
-| TSX | [Biome][Biome] | Code Quality |
-| Typescript | [Biome][Biome] | Code Quality |
-| YAML | [YamlLint][YamlLint] | Code Quality |
-
-[ShellCheck]: ./shellcheck.md
-[Ruff]: ./ruff.md
-[Markdownlint]: ./markdownlint.md
-[LanguageTool]: ./languagetool.md
-[Biome]: ./biome.md
-[Hadolint]: ./hadolint.md
-[SwiftLint]: ./swiftlint.md
-[PHPStan]: ./phpstan.md
-[golangci-lint]: ./golangci-lint.md
-[YamlLint]: ./yamllint.md
-[Gitleaks]: ./gitleaks.md
-[Checkov]: ./checkov.md
-[Detekt]: ./detekt.md
-[Rubocop]: ./rubocop.md
-[Buf]: ./buf.md
-[Actionlint]: ./actionlint.md
-[Regal]: ./regal.md
-[PMD]: ./pmd.md
-[Cppcheck]: ./cppcheck.md
-[CircleCi]: ./circleci.md
-[Semgrep]: ./semgrep.md
+## What's next
+
+- For a complete list of tools that CodeRabbit supports, see [Supported tools](/tools/list).
diff --git a/docs/tools/yamllint.md b/docs/tools/yamllint.md
index 293a4e57..31649cf0 100644
--- a/docs/tools/yamllint.md
+++ b/docs/tools/yamllint.md
@@ -1,7 +1,7 @@
---
-title: Yamllint
-sidebar_label: Yamllint
-description: CodeRabbit's guide to Yamllint.
+title: YAMLlint
+sidebar_label: YAMLlint
+description: CodeRabbit's guide to YAMLlint.
---
```mdx-code-block
@@ -10,18 +10,18 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';
```
-[Yamllint](https://yamllint.readthedocs.io/en/stable/) is a linter for YAML.
+[YAMLlint](https://yamllint.readthedocs.io/en/stable/) is a linter for YAML.
## Files
-Yamllint will run on files with the following extensions:
+YAMLlint will run on files with the following extensions:
- `.yaml`
- `.yml`
## Configuration
-Yamllint supports the following config files:
+YAMLlint supports the following config files:
- `.yamllint`
- `.yamllint.yaml`
@@ -31,4 +31,4 @@ CodeRabbit will use the default settings based on the profile selected if no con
## Links
-- [Yamllint Configuration](https://yamllint.readthedocs.io/en/stable/configuration.html)
+- [YAMLlint Configuration](https://yamllint.readthedocs.io/en/stable/configuration.html)
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 738de2d3..f4cd07ca 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -126,6 +126,48 @@ const config: Config = {
},
}
},
+ [
+ "@inkeep/cxkit-docusaurus",
+ {
+ SearchBar: {
+ baseSettings: {
+ apiKey: process.env.INKEEP_API_KEY,
+ primaryBrandColor: "#FF570A",
+ },
+ aiChatSettings: {
+ chatSubjectName: "CodeRabbit",
+ aiAssistantAvatar: "https://www.coderabbit.ai/favicon.ico",
+ getHelpOptions: [
+ {
+ name: "Discord",
+ icon: {
+ builtIn: "FaDiscord",
+ },
+ action: {
+ type: "open_link",
+ url: "https://discord.gg/coderabbit",
+ },
+ },
+ {
+ name: "Contact Us",
+ icon: {
+ builtIn: "IoChatbubblesOutline",
+ },
+ action: {
+ type: "open_link",
+ url: "https://www.coderabbit.ai/contact-us",
+ },
+ },
+ ],
+ exampleQuestions: [
+ "What is CodeRabbit?",
+ "How to integrate CodeRabbit with GitHub?",
+ "How to set up a AI Code Review?",
+ ],
+ },
+ },
+ },
+ ],
],
presets: [
diff --git a/package.json b/package.json
index 42ad5773..7c53d492 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
+ "format": "prettier --write .",
"lint": "markdownlint-cli2 \"**/*.md\" && prettier --check .",
"lint:fix": "markdownlint-cli2 \"**/*.md\" --fix; prettier --list-different --write .",
"write-translations": "docusaurus write-translations",
@@ -22,6 +23,7 @@
"@docusaurus/plugin-client-redirects": "^3.6.1",
"@docusaurus/plugin-content-blog": "^3.6.1",
"@docusaurus/preset-classic": "^3.6.1",
+ "@inkeep/cxkit-docusaurus": "^0.5.52",
"@mdx-js/react": "^3.1.0",
"autoprefixer": "^10.4.20",
"clsx": "^2.1.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3539e2b0..75704ea5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,6 +20,9 @@ importers:
'@docusaurus/preset-classic':
specifier: ^3.6.1
version: 3.6.1(@algolia/client-search@5.14.2)(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
+ '@inkeep/cxkit-docusaurus':
+ specifier: ^0.5.52
+ version: 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mdx-js/react':
specifier: ^3.1.0
version: 3.1.0(@types/react@18.3.12)(react@18.3.1)
@@ -989,12 +992,54 @@ packages:
resolution: {integrity: sha512-nS3WCvepwrnBEgSG5vQu40XG95lC9Jeh/odV5u5IhU1eQFEGDst9xBi6IK5yZdsGvbuaXBZLZtOqWYtuuFa/rQ==}
engines: {node: '>=18.0'}
+ '@floating-ui/core@1.6.9':
+ resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
+
+ '@floating-ui/dom@1.6.13':
+ resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
+
+ '@floating-ui/react-dom@2.1.2':
+ resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.9':
+ resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
+
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+ '@inkeep/cxkit-color-mode@0.5.52':
+ resolution: {integrity: sha512-Mm9ax+2yP+T4F9ICP2eQqqpnm1BaiVUbmuhOF3oNOEQVR8X9sENeSU6X6JIJnFKtVSXYb/AMRe1U4/c5wJzvww==}
+
+ '@inkeep/cxkit-docusaurus@0.5.52':
+ resolution: {integrity: sha512-Mv89214Gt0qe2djAHKpzCu1SQlpQ+dj4tqSFKNO4w5f54qRdLgaQ4Av1LFC2d3PRV1rp4KA6XNjiNC/z2PrP2w==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@inkeep/cxkit-primitives@0.5.52':
+ resolution: {integrity: sha512-xq5ZGC8RX9qhelIbAvRM3EN7cFuwjYUERsoH6cwgyjtk5PnN3HoChlxuA18x1v9mqp8Bv3/lu4Bz0TDNUdiSxQ==}
+ peerDependencies:
+ react: '>=17.0.0'
+ react-dom: '>=17.0.0'
+
+ '@inkeep/cxkit-react@0.5.52':
+ resolution: {integrity: sha512-kNa+cvjH/JrWHVTh9DcYTgX/J6J4h2tyOh7FvK41zvbdKuAOarzQGWJMLvmAsDm4Z4tmPe104Yvm3nrmsrfTOA==}
+
+ '@inkeep/cxkit-styled@0.5.52':
+ resolution: {integrity: sha512-QLtJJ+/ufNG3PqrSMfwHSKWwOhnB4i0qOhsrNiAyNcOtQ5fMZdaAlShAjHDH2ye68sfw2tsyEBxXgZuxHji9dw==}
+
+ '@inkeep/cxkit-theme@0.5.52':
+ resolution: {integrity: sha512-2MWJc+J2n1d4gWkB3A+g4ZSmWxvi/nqxAgEOquiDDWWTrTWCEI8uk8MsWubtCBa73aEOa/tMTKiGYGjbdSCpgw==}
+
+ '@inkeep/cxkit-types@0.5.52':
+ resolution: {integrity: sha512-2AwsCpeB37wU8I+uhMsP2wFu/8goodgTvqL/V/QIaTGDBw62E1qsA6kjt+5V7rzkLzR658aSUOtL9D1G9zc31Q==}
+
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -1071,6 +1116,466 @@ packages:
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+ '@radix-ui/number@1.1.0':
+ resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==}
+
+ '@radix-ui/primitive@1.1.1':
+ resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==}
+
+ '@radix-ui/react-arrow@1.1.1':
+ resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-arrow@1.1.2':
+ resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-avatar@1.1.2':
+ resolution: {integrity: sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-checkbox@1.1.3':
+ resolution: {integrity: sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.1':
+ resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.2':
+ resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.1':
+ resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.1':
+ resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-direction@1.1.0':
+ resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.3':
+ resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.5':
+ resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.1':
+ resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.2':
+ resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-hover-card@1.1.6':
+ resolution: {integrity: sha512-E4ozl35jq0VRlrdc4dhHrNSV0JqBb4Jy73WAhBEK7JoYnQ83ED5r0Rb/XdVKw89ReAJN38N492BAPBZQ57VmqQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-popover@1.1.6':
+ resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.1':
+ resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.2.2':
+ resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.3':
+ resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.4':
+ resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.2':
+ resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.1':
+ resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.2':
+ resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.1':
+ resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-scroll-area@1.2.2':
+ resolution: {integrity: sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-select@2.1.6':
+ resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.1':
+ resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.2':
+ resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-tabs@1.1.2':
+ resolution: {integrity: sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.1.6':
+ resolution: {integrity: sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-previous@1.1.0':
+ resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.0':
+ resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.0':
+ resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.1.1':
+ resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.1.2':
+ resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/rect@1.1.0':
+ resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+
'@sideway/address@4.1.5':
resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
@@ -1200,6 +1705,9 @@ packages:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
+ '@tanem/svg-injector@10.1.68':
+ resolution: {integrity: sha512-UkJajeR44u73ujtr5GVSbIlELDWD/mzjqWe54YMK61ljKxFcJoPd9RBSaO7xj02ISCWUqJW99GjrS+sVF0UnrA==}
+
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
@@ -1291,12 +1799,18 @@ packages:
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+ '@types/node-fetch@2.6.12':
+ resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
+
'@types/node-forge@1.3.11':
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
+ '@types/node@18.19.86':
+ resolution: {integrity: sha512-fifKayi175wLyKyc5qUfyENhQ1dCNI1UNjp653d8kuYcPQN5JhX3dGuP/XmvPTg/xRBn1VTLpbmi+H/Mr7tLfQ==}
+
'@types/node@22.9.0':
resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==}
@@ -1309,6 +1823,9 @@ packages:
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
+ '@types/prop-types@15.7.14':
+ resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
+
'@types/qs@6.9.17':
resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==}
@@ -1417,6 +1934,19 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ '@zag-js/dom-query@1.8.2':
+ resolution: {integrity: sha512-bn6Pxga19PJzpDb+Oh326kn1sgVfO97mxRzRFqzrKz9NuANGlCblmv2NTYmhfppqE1nt9QyLLhyQ2BLbzwouLg==}
+
+ '@zag-js/focus-trap@1.8.2':
+ resolution: {integrity: sha512-GzKdicdiVjlOOsNzmmRAZVccs902PXnoyO+qkzXlIsr8+RPRgtPlZthIp6wtr4CJ2vLOMByvrEt7wCNSIoDzxA==}
+
+ '@zag-js/types@1.8.2':
+ resolution: {integrity: sha512-J+94HhFAPOBchNdGcmvqjB8nbQFgKHcqGoPl5vNTKlcoibN0yFjn4XFZoQU6uCf8sPhNg6NUNTkluR5YjybyJA==}
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -1442,6 +1972,10 @@ packages:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
engines: {node: '>= 10.0.0'}
+ agentkeepalive@4.6.0:
+ resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
+ engines: {node: '>= 8.0.0'}
+
aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
@@ -1482,6 +2016,9 @@ packages:
resolution: {integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==}
engines: {node: '>= 14.0.0'}
+ altcha-lib@1.2.0:
+ resolution: {integrity: sha512-S5WF8QLNRaM1hvK24XPhOLfu9is2EBCvH7+nv50sM5CaIdUCqQCd0WV/qm/ZZFGTdSoKLuDp+IapZxBLvC+SNg==}
+
ansi-align@3.0.1:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
@@ -1526,6 +2063,10 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
array-flatten@1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
@@ -1537,6 +2078,9 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
@@ -1641,6 +2185,10 @@ packages:
resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
engines: {node: '>=14.16'}
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -1716,6 +2264,9 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -1756,10 +2307,17 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+ colorjs.io@0.5.2:
+ resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
+
combine-promises@1.2.0:
resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
engines: {node: '>=10'}
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -2036,6 +2594,10 @@ packages:
resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
engines: {node: '>=10'}
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
depd@1.1.2:
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
engines: {node: '>= 0.6'}
@@ -2056,6 +2618,9 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
@@ -2135,6 +2700,10 @@ packages:
resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
engines: {node: '>=10'}
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
@@ -2189,6 +2758,10 @@ packages:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
engines: {node: '>= 0.4'}
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
@@ -2196,6 +2769,14 @@ packages:
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
esast-util-from-estree@2.0.0:
resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
@@ -2286,6 +2867,10 @@ packages:
resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
engines: {node: '>= 0.8'}
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
@@ -2407,14 +2992,25 @@ packages:
vue-template-compiler:
optional: true
+ form-data-encoder@1.7.2:
+ resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
+
form-data-encoder@2.1.4:
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
engines: {node: '>= 14.17'}
+ form-data@4.0.2:
+ resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
+ engines: {node: '>= 6'}
+
format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines: {node: '>=0.4.x'}
+ formdata-node@4.4.1:
+ resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
+ engines: {node: '>= 12.20'}
+
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -2456,9 +3052,21 @@ packages:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
get-own-enumerable-property-symbols@3.0.2:
resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -2516,6 +3124,10 @@ packages:
gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
got@12.6.1:
resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
engines: {node: '>=14.16'}
@@ -2552,6 +3164,14 @@ packages:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
has-yarn@3.0.0:
resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2617,6 +3237,9 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
+ html-url-attributes@3.0.1:
+ resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
+
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@@ -2676,6 +3299,12 @@ packages:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
+ humanize-ms@1.2.1:
+ resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+
+ humps@2.0.1:
+ resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -2859,6 +3488,10 @@ packages:
is-typedarray@1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
@@ -3074,6 +3707,10 @@ packages:
resolution: {integrity: sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==}
engines: {node: '>=18'}
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
mdast-util-directive@3.0.0:
resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
@@ -3145,6 +3782,10 @@ packages:
resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
engines: {node: '>= 4.0.0'}
+ merge-anything@5.1.7:
+ resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
+ engines: {node: '>=12.13'}
+
merge-descriptors@1.0.3:
resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
@@ -3391,10 +4032,23 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-domexception@1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+
node-emoji@2.1.3:
resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==}
engines: {node: '>=18'}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
node-forge@1.3.1:
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
engines: {node: '>= 6.13.0'}
@@ -3472,6 +4126,15 @@ packages:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
+ openai@4.78.1:
+ resolution: {integrity: sha512-drt0lHZBd2lMyORckOXFPQTmnGLWSLt8VK0W9BhOKWpMFBEoHMoz5gxMPmVq5icp+sOrsbMnsmZTVHUlKvD1Ow==}
+ hasBin: true
+ peerDependencies:
+ zod: ^3.23.8
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
opener@1.5.2:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
@@ -3600,6 +4263,9 @@ packages:
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
engines: {node: '>=12'}
+ path@0.12.7:
+ resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -3908,6 +4574,11 @@ packages:
peerDependencies:
react: '>=16.0.0'
+ prism-react-renderer@2.4.1:
+ resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==}
+ peerDependencies:
+ react: '>=16.0.0'
+
prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
@@ -3915,6 +4586,10 @@ packages:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -4015,6 +4690,17 @@ packages:
peerDependencies:
react: ^16.6.0 || ^17.0.0 || ^18.0.0
+ react-hook-form@7.54.2:
+ resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18 || ^19
+
+ react-icons@5.4.0:
+ resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==}
+ peerDependencies:
+ react: '*'
+
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -4031,6 +4717,12 @@ packages:
react-loadable: '*'
webpack: '>=4.41.1 || 5.x'
+ react-markdown@9.0.3:
+ resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==}
+ peerDependencies:
+ '@types/react': '>=18'
+ react: '>=18'
+
react-monaco-editor@0.55.0:
resolution: {integrity: sha512-GdEP0Q3Rn1dczfKEEyY08Nes5plWwIYU4sWRBQO0+jsQWQsKMHKCC6+hPRwR7G/4aA3V/iU9jSmWPzVJYMVFSQ==}
peerDependencies:
@@ -4038,6 +4730,26 @@ packages:
monaco-editor: ^0.44.0
react: '>=16 <= 18'
+ react-remove-scroll-bar@2.3.8:
+ resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.6.3:
+ resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react-router-config@5.1.1:
resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
peerDependencies:
@@ -4054,6 +4766,28 @@ packages:
peerDependencies:
react: '>=15'
+ react-style-singleton@2.2.3:
+ resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-svg@16.3.0:
+ resolution: {integrity: sha512-MvoQbITgkmpPJYwDTNdiUyoncJFfoa0D86WzoZuMQ9c/ORJURPR6rPMnXDsLOWDCAyXuV9nKZhQhGyP0HZ0MVQ==}
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ react-textarea-autosize@8.5.7:
+ resolution: {integrity: sha512-2MqJ3p0Jh69yt9ktFIaZmORHXw4c4bxSIhCeWiFwmJ9EYKgLmuNII3e9c9b2UO+ijl4StnpZdqpxNIhTdHvqtQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -4150,6 +4884,9 @@ packages:
remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
+ remark-gfm@4.0.1:
+ resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
+
remark-mdx@3.1.0:
resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
@@ -4508,6 +5245,9 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ tailwind-merge@2.6.0:
+ resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
+
tailwindcss@3.4.15:
resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==}
engines: {node: '>=14.0.0'}
@@ -4573,6 +5313,9 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -4612,6 +5355,9 @@ packages:
uc.micro@2.1.0:
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
@@ -4685,22 +5431,77 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- urijs@1.19.11:
- resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+ urijs@1.19.11:
+ resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+
+ url-loader@4.1.1:
+ resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ file-loader: '*'
+ webpack: ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ file-loader:
+ optional: true
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-composed-ref@1.4.0:
+ resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-isomorphic-layout-effect@1.2.0:
+ resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-latest@1.3.0:
+ resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
- url-loader@4.1.1:
- resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
- engines: {node: '>= 10.13.0'}
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ engines: {node: '>=10'}
peerDependencies:
- file-loader: '*'
- webpack: ^4.0.0 || ^5.0.0
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
- file-loader:
+ '@types/react':
optional: true
+ use-sync-external-store@1.5.0:
+ resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ util@0.10.4:
+ resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==}
+
utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
@@ -4742,6 +5543,13 @@ packages:
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
+ web-streams-polyfill@4.0.0-beta.3:
+ resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
+ engines: {node: '>= 14'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
webpack-bundle-analyzer@4.10.2:
resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==}
engines: {node: '>= 10.13.0'}
@@ -4802,6 +5610,9 @@ packages:
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
engines: {node: '>=0.8.0'}
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
@@ -6636,12 +7447,133 @@ snapshots:
- uglify-js
- webpack-cli
+ '@floating-ui/core@1.6.9':
+ dependencies:
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/dom@1.6.13':
+ dependencies:
+ '@floating-ui/core': 1.6.9
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.6.13
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@floating-ui/utils@0.2.9': {}
+
'@hapi/hoek@9.3.0': {}
'@hapi/topo@5.1.0':
dependencies:
'@hapi/hoek': 9.3.0
+ '@inkeep/cxkit-color-mode@0.5.52': {}
+
+ '@inkeep/cxkit-docusaurus@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-react': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ merge-anything: 5.1.7
+ path: 0.12.7
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-primitives@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-color-mode': 0.5.52
+ '@inkeep/cxkit-theme': 0.5.52
+ '@inkeep/cxkit-types': 0.5.52
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-avatar': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-checkbox': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-hover-card': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-scroll-area': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-select': 2.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-tabs': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip': 1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@zag-js/focus-trap': 1.8.2
+ altcha-lib: 1.2.0
+ aria-hidden: 1.2.4
+ dequal: 2.0.3
+ humps: 2.0.1
+ merge-anything: 5.1.7
+ openai: 4.78.1
+ prism-react-renderer: 2.4.1(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-hook-form: 7.54.2(react@18.3.1)
+ react-icons: 5.4.0(react@18.3.1)
+ react-markdown: 9.0.3(@types/react@18.3.12)(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ react-svg: 16.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-textarea-autosize: 8.5.7(@types/react@18.3.12)(react@18.3.1)
+ rehype-raw: 7.0.0
+ remark-gfm: 4.0.1
+ unist-util-visit: 5.0.0
+ use-sync-external-store: 1.5.0(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-react@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-styled': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - react
+ - react-dom
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-styled@0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@inkeep/cxkit-primitives': 0.5.52(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ merge-anything: 5.1.7
+ tailwind-merge: 2.6.0
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - encoding
+ - react
+ - react-dom
+ - supports-color
+ - zod
+
+ '@inkeep/cxkit-theme@0.5.52':
+ dependencies:
+ colorjs.io: 0.5.2
+
+ '@inkeep/cxkit-types@0.5.52': {}
+
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
@@ -6718,40 +7650,460 @@ snapshots:
- acorn
- supports-color
- '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)':
+ '@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@types/react': 18.3.12
+ react: 18.3.1
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pnpm/config.env-replace@1.1.0': {}
+
+ '@pnpm/network.ca-file@1.0.2':
+ dependencies:
+ graceful-fs: 4.2.10
+
+ '@pnpm/npm-conf@2.3.1':
+ dependencies:
+ '@pnpm/config.env-replace': 1.1.0
+ '@pnpm/network.ca-file': 1.0.2
+ config-chain: 1.1.13
+
+ '@polka/url@1.0.0-next.28': {}
+
+ '@radix-ui/number@1.1.0': {}
+
+ '@radix-ui/primitive@1.1.1': {}
+
+ '@radix-ui/react-arrow@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-arrow@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-avatar@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-checkbox@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-collection@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-collection@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dismissable-layer@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-dismissable-layer@1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-focus-scope@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-hover-card@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popover@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popper@1.2.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-popper@1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-portal@1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-portal@1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-presence@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-primitive@2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-primitive@2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-roving-focus@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-collection': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-scroll-area@1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.0
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-select@2.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.0
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-collection': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.2(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-slot@1.1.1(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-slot@1.1.2(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-tabs@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@types/mdx': 2.0.13
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
'@types/react': 18.3.12
+
+ '@radix-ui/react-tooltip@1.1.6(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.1
+ '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.3(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.1(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.scandir@2.1.5':
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.stat@2.0.5': {}
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@nodelib/fs.walk@1.2.8':
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pkgjs/parseargs@0.11.0':
- optional: true
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/config.env-replace@1.1.0': {}
+ '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/network.ca-file@1.0.2':
+ '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- graceful-fs: 4.2.10
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@pnpm/npm-conf@2.3.1':
+ '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)':
dependencies:
- '@pnpm/config.env-replace': 1.1.0
- '@pnpm/network.ca-file': 1.0.2
- config-chain: 1.1.13
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
- '@polka/url@1.0.0-next.28': {}
+ '@radix-ui/react-visually-hidden@1.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/react-visually-hidden@1.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ '@radix-ui/rect@1.1.0': {}
'@sideway/address@4.1.5':
dependencies:
@@ -6903,6 +8255,12 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
+ '@tanem/svg-injector@10.1.68':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ content-type: 1.0.5
+ tslib: 2.8.1
+
'@trysound/sax@0.2.0': {}
'@types/acorn@4.0.6':
@@ -7010,12 +8368,21 @@ snapshots:
'@types/ms@0.7.34': {}
+ '@types/node-fetch@2.6.12':
+ dependencies:
+ '@types/node': 22.9.0
+ form-data: 4.0.2
+
'@types/node-forge@1.3.11':
dependencies:
'@types/node': 22.9.0
'@types/node@17.0.45': {}
+ '@types/node@18.19.86':
+ dependencies:
+ undici-types: 5.26.5
+
'@types/node@22.9.0':
dependencies:
undici-types: 6.19.8
@@ -7026,6 +8393,8 @@ snapshots:
'@types/prop-types@15.7.13': {}
+ '@types/prop-types@15.7.14': {}
+
'@types/qs@6.9.17': {}
'@types/range-parser@1.2.7': {}
@@ -7175,6 +8544,22 @@ snapshots:
'@xtuc/long@4.2.2': {}
+ '@zag-js/dom-query@1.8.2':
+ dependencies:
+ '@zag-js/types': 1.8.2
+
+ '@zag-js/focus-trap@1.8.2':
+ dependencies:
+ '@zag-js/dom-query': 1.8.2
+
+ '@zag-js/types@1.8.2':
+ dependencies:
+ csstype: 3.1.3
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -7194,6 +8579,10 @@ snapshots:
address@1.2.2: {}
+ agentkeepalive@4.6.0:
+ dependencies:
+ humanize-ms: 1.2.1
+
aggregate-error@3.1.0:
dependencies:
clean-stack: 2.2.0
@@ -7265,6 +8654,8 @@ snapshots:
'@algolia/requester-fetch': 5.14.2
'@algolia/requester-node-http': 5.14.2
+ altcha-lib@1.2.0: {}
+
ansi-align@3.0.1:
dependencies:
string-width: 4.2.3
@@ -7300,12 +8691,18 @@ snapshots:
argparse@2.0.1: {}
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.8.1
+
array-flatten@1.1.1: {}
array-union@2.1.0: {}
astring@1.9.0: {}
+ asynckit@0.4.0: {}
+
at-least-node@1.0.0: {}
autoprefixer@10.4.20(postcss@8.4.49):
@@ -7447,6 +8844,11 @@ snapshots:
normalize-url: 8.0.1
responselike: 3.0.0
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -7531,6 +8933,10 @@ snapshots:
ci-info@3.9.0: {}
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -7565,8 +8971,14 @@ snapshots:
colorette@2.0.20: {}
+ colorjs.io@0.5.2: {}
+
combine-promises@1.2.0: {}
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
comma-separated-tokens@2.0.3: {}
commander@10.0.1: {}
@@ -7854,6 +9266,8 @@ snapshots:
rimraf: 3.0.2
slash: 3.0.0
+ delayed-stream@1.0.0: {}
+
depd@1.1.2: {}
depd@2.0.0: {}
@@ -7864,6 +9278,8 @@ snapshots:
destroy@1.2.0: {}
+ detect-node-es@1.1.0: {}
+
detect-node@2.1.0: {}
detect-port-alt@1.1.6:
@@ -7963,6 +9379,12 @@ snapshots:
dependencies:
is-obj: 2.0.0
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
duplexer@0.1.2: {}
eastasianwidth@0.2.0: {}
@@ -8002,10 +9424,23 @@ snapshots:
dependencies:
get-intrinsic: 1.2.4
+ es-define-property@1.0.1: {}
+
es-errors@1.3.0: {}
es-module-lexer@1.5.4: {}
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
esast-util-from-estree@2.0.0:
dependencies:
'@types/estree-jsx': 1.0.5
@@ -8095,6 +9530,8 @@ snapshots:
'@types/node': 22.9.0
require-like: 0.1.2
+ event-target-shim@5.0.1: {}
+
eventemitter3@4.0.7: {}
events@3.3.0: {}
@@ -8259,10 +9696,24 @@ snapshots:
typescript: 5.6.3
webpack: 5.96.1
+ form-data-encoder@1.7.2: {}
+
form-data-encoder@2.1.4: {}
+ form-data@4.0.2:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ mime-types: 2.1.35
+
format@0.2.2: {}
+ formdata-node@4.4.1:
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 4.0.0-beta.3
+
forwarded@0.2.0: {}
fraction.js@4.3.7: {}
@@ -8301,8 +9752,28 @@ snapshots:
has-symbols: 1.0.3
hasown: 2.0.2
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
get-own-enumerable-property-symbols@3.0.2: {}
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
get-stream@6.0.1: {}
github-slugger@1.5.0: {}
@@ -8381,6 +9852,8 @@ snapshots:
dependencies:
get-intrinsic: 1.2.4
+ gopd@1.2.0: {}
+
got@12.6.1:
dependencies:
'@sindresorhus/is': 5.6.0
@@ -8422,6 +9895,12 @@ snapshots:
has-symbols@1.0.3: {}
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.0.3
+
has-yarn@3.0.0: {}
hasown@2.0.2:
@@ -8570,6 +10049,8 @@ snapshots:
html-tags@3.3.1: {}
+ html-url-attributes@3.0.1: {}
+
html-void-elements@3.0.0: {}
html-webpack-plugin@5.6.3(webpack@5.96.1):
@@ -8644,6 +10125,12 @@ snapshots:
human-signals@2.1.0: {}
+ humanize-ms@1.2.1:
+ dependencies:
+ ms: 2.1.3
+
+ humps@2.0.1: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -8770,6 +10257,8 @@ snapshots:
is-typedarray@1.0.0: {}
+ is-what@4.1.16: {}
+
is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
@@ -8974,6 +10463,8 @@ snapshots:
markdown-it: 14.1.0
markdownlint-micromark: 0.1.12
+ math-intrinsics@1.1.0: {}
+
mdast-util-directive@3.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -9173,6 +10664,10 @@ snapshots:
dependencies:
fs-monkey: 1.0.6
+ merge-anything@5.1.7:
+ dependencies:
+ is-what: 4.1.16
+
merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
@@ -9563,6 +11058,8 @@ snapshots:
lower-case: 2.0.2
tslib: 2.8.1
+ node-domexception@1.0.0: {}
+
node-emoji@2.1.3:
dependencies:
'@sindresorhus/is': 4.6.0
@@ -9570,6 +11067,10 @@ snapshots:
emojilib: 2.4.0
skin-tone: 2.0.0
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
node-forge@1.3.1: {}
node-releases@2.0.18: {}
@@ -9633,6 +11134,18 @@ snapshots:
is-docker: 2.2.1
is-wsl: 2.2.0
+ openai@4.78.1:
+ dependencies:
+ '@types/node': 18.19.86
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.6.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
opener@1.5.2: {}
p-cancelable@3.0.0: {}
@@ -9757,6 +11270,11 @@ snapshots:
path-type@5.0.0: {}
+ path@0.12.7:
+ dependencies:
+ process: 0.11.10
+ util: 0.10.4
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -10033,10 +11551,18 @@ snapshots:
clsx: 2.1.1
react: 18.3.1
+ prism-react-renderer@2.4.1(react@18.3.1):
+ dependencies:
+ '@types/prismjs': 1.26.5
+ clsx: 2.1.1
+ react: 18.3.1
+
prismjs@1.29.0: {}
process-nextick-args@2.0.1: {}
+ process@0.11.10: {}
+
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -10170,6 +11696,14 @@ snapshots:
react-fast-compare: 3.2.2
shallowequal: 1.1.0
+ react-hook-form@7.54.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ react-icons@5.4.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
react-is@16.13.1: {}
react-json-view-lite@1.5.0(react@18.3.1):
@@ -10182,6 +11716,23 @@ snapshots:
react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
webpack: 5.96.1
+ react-markdown@9.0.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/react': 18.3.12
+ devlop: 1.1.0
+ hast-util-to-jsx-runtime: 2.3.2
+ html-url-attributes: 3.0.1
+ mdast-util-to-hast: 13.2.0
+ react: 18.3.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.1
+ unified: 11.0.5
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
react-monaco-editor@0.55.0(@types/react@18.3.12)(monaco-editor@0.44.0)(react@18.3.1):
dependencies:
'@types/react': 18.3.12
@@ -10189,6 +11740,25 @@ snapshots:
prop-types: 15.8.1
react: 18.3.1
+ react-remove-scroll-bar@2.3.8(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-remove-scroll@2.6.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.8(@types/react@18.3.12)(react@18.3.1)
+ react-style-singleton: 2.2.3(@types/react@18.3.12)(react@18.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@18.3.12)(react@18.3.1)
+ use-sidecar: 1.1.3(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.26.0
@@ -10219,6 +11789,32 @@ snapshots:
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
+ react-style-singleton@2.2.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ react-svg@16.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@tanem/svg-injector': 10.1.68
+ '@types/prop-types': 15.7.14
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-textarea-autosize@8.5.7(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.26.0
+ react: 18.3.1
+ use-composed-ref: 1.4.0(@types/react@18.3.12)(react@18.3.1)
+ use-latest: 1.3.0(@types/react@18.3.12)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -10375,6 +11971,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ remark-gfm@4.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-gfm: 3.0.0
+ micromark-extension-gfm: 3.0.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
remark-mdx@3.1.0:
dependencies:
mdast-util-mdx: 3.0.0
@@ -10792,6 +12399,8 @@ snapshots:
csso: 5.0.5
picocolors: 1.1.1
+ tailwind-merge@2.6.0: {}
+
tailwindcss@3.4.15:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -10863,6 +12472,8 @@ snapshots:
totalist@3.0.1: {}
+ tr46@0.0.3: {}
+
trim-lines@3.0.1: {}
trough@2.2.0: {}
@@ -10890,6 +12501,8 @@ snapshots:
uc.micro@2.1.0: {}
+ undici-types@5.26.5: {}
+
undici-types@6.19.8: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -10990,8 +12603,50 @@ snapshots:
optionalDependencies:
file-loader: 6.2.0(webpack@5.96.1)
+ use-callback-ref@1.3.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-composed-ref@1.4.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-isomorphic-layout-effect@1.2.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-latest@1.3.0(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.12)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sidecar@1.1.3(@types/react@18.3.12)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.3.12
+
+ use-sync-external-store@1.5.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
util-deprecate@1.0.2: {}
+ util@0.10.4:
+ dependencies:
+ inherits: 2.0.3
+
utila@0.4.0: {}
utility-types@3.11.0: {}
@@ -11030,6 +12685,10 @@ snapshots:
web-namespaces@2.0.1: {}
+ web-streams-polyfill@4.0.0-beta.3: {}
+
+ webidl-conversions@3.0.1: {}
+
webpack-bundle-analyzer@4.10.2:
dependencies:
'@discoveryjs/json-ext': 0.5.7
@@ -11161,6 +12820,11 @@ snapshots:
websocket-extensions@0.1.4: {}
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
which@1.3.1:
dependencies:
isexe: 2.0.0
diff --git a/sidebars.ts b/sidebars.ts
index 5f41290e..9d093311 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -29,13 +29,174 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"
const sidebars: SidebarsConfig = {
docsSidebar: [
{
- type: "autogenerated",
- dirName: ".",
+ type: "category",
+ collapsed: true,
+ label: "Get started with CodeRabbit",
+ items: ["overview/introduction", "getting-started/quickstart"],
},
{
- type: "link",
- label: "API Reference",
- href: "https://api.coderabbit.ai/api/swagger/",
+ type: "category",
+ collapsed: true,
+ label: "Add CodeRabbit to your repository",
+ items: [
+ "platforms/platforms",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Supported Git platforms",
+ items: [
+ "platforms/github-com",
+ "platforms/github-enterprise-server",
+ "platforms/gitlab-com",
+ "platforms/self-hosted-gitlab",
+ "platforms/azure-devops",
+ "platforms/bitbucket-cloud",
+ ],
+ },
+ "getting-started/adding-organizations",
+ "getting-started/upgrading-permissions",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Self-host CodeRabbit",
+ items: [
+ "self-hosted/github",
+ "self-hosted/gitlab",
+ "self-hosted/azure-devops",
+ "self-hosted/bitbucket",
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Configure CodeRabbit",
+ items: [
+ "getting-started/configure-coderabbit",
+ "integrations/knowledge-base",
+ "guides/review-instructions",
+ "tools/tools",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Review pull requests",
+ items: [
+ "guides/code-review-overview",
+ "guides/commands",
+ "guides/generate-improvements",
+ "guides/code-review-best-practices",
+ "guides/code-review-troubleshooting",
+ "guides/agent_chat",
+ {
+ type: "category",
+ collapsed: true,
+ label: "Analyze and improve your code",
+ items: [
+ "integrations/code-graph-analysis",
+ "finishing-touches/docstrings",
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Create and resolve issues",
+ items: [
+ "integrations/issue-integrations",
+ "guides/issue-chat",
+ "guides/issue-creation",
+ "guides/linked-issues",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Review local changes",
+ items: [
+ "guides/about-vscode",
+ "guides/install-vscode",
+ "guides/use-vscode",
+ "guides/config-vscode",
+ "guides/uninstall-vscode",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Generate reports",
+ items: [
+ "guides/reports-overview",
+ "guides/scheduled-reports",
+ "guides/ondemand-reports",
+ "guides/custom-reports",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Reference",
+ items: [
+ {
+ type: "link",
+ label: "CodeRabbit API",
+ href: "https://api.coderabbit.ai/api/swagger/",
+ },
+ "reference/review-commands",
+ {
+ type: "category",
+ label: "Supported tools",
+ collapsed: true,
+ items: [
+ "tools/list",
+ "tools/actionlint",
+ "tools/biome",
+ "tools/buf",
+ "tools/checkov",
+ "tools/circleci",
+ "tools/cppcheck",
+ "tools/detekt",
+ "tools/eslint",
+ "tools/gitleaks",
+ "tools/golangci-lint",
+ "tools/hadolint",
+ "tools/languagetool",
+ "tools/luacheck",
+ "tools/markdownlint",
+ "tools/oxlint",
+ "tools/phpstan",
+ "tools/pipeline-remediation",
+ "tools/pmd",
+ "tools/prisma-lint",
+ "tools/regal",
+ "tools/rubocop",
+ "tools/ruff",
+ "tools/semgrep",
+ "tools/shellcheck",
+ "tools/sqlfluff",
+ "tools/swiftlint",
+ "tools/yamllint",
+ ],
+ },
+ "reference/caching",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: true,
+ label: "Resources",
+ items: [
+ "getting-started/support",
+ "getting-started/subscription-management",
+ "overview/why-coderabbit",
+ "faq",
+ "early-access",
+ "future-development",
+ "changelog",
+ ],
},
],
}
diff --git a/src/css/custom.css b/src/css/custom.css
index 161e174a..4a77db0a 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -90,19 +90,6 @@ a[docid="docs"] > svg {
align-items: center;
}
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[docid="docs"] {
- display: none !important;
- }
-}
-
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[href="https://coderabbit.ai/blog"]
- {
- display: none;
- }
-}
-
[data-theme="light"] img[src$="#gh-dark-mode-only"],
[data-theme="dark"] img[src$="#gh-light-mode-only"] {
display: none;
@@ -157,19 +144,6 @@ a[docid="docs"] > svg {
align-items: center;
}
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[docid="docs"] {
- display: none !important;
- }
-}
-
-@media screen and (max-width: 480px) {
- a.navbar__item.navbar__link[href="https://coderabbit.ai/blog"]
- {
- display: none;
- }
-}
-
/* Light mode Discord icon */
/* .header-discord-link:before {
-webkit-filter: invert(100%);
@@ -263,39 +237,59 @@ a[docid="docs"] > svg {
}
/* Light mode specific styles */
-[data-theme="light"] {
- .navbar-icon-link::before {
- opacity: 0.7;
- }
+[data-theme="light"] .navbar-icon-link::before {
+ opacity: 0.7;
+}
- .navbar-icon-link:hover::before {
- opacity: 0.9;
- }
+[data-theme="light"] .navbar-icon-link:hover::before {
+ opacity: 0.9;
+}
- .discord-link::before {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23424242'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
- }
+[data-theme="light"] .discord-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23424242'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+}
- .github-link::before {
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23424242'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
- }
+[data-theme="light"] .github-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23424242'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
}
/* Dark mode specific styles */
-[data-theme="dark"] {
- .navbar-icon-link::before {
- opacity: 0.85;
- }
+[data-theme="dark"] .navbar-icon-link::before {
+ opacity: 0.85;
+}
+
+[data-theme="dark"] .navbar-icon-link:hover::before {
+ opacity: 1;
+}
+
+[data-theme="dark"] .discord-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23fff'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+}
+
+[data-theme="dark"] .github-link::before {
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
+}
- .navbar-icon-link:hover::before {
- opacity: 1;
+.center-image {
+ text-align: center;
+}
+
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href="/"] {
+ display: none;
}
+}
- .discord-link::before {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='%23fff'%3E%3Cpath d='M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z'/%3E%3C/svg%3E");
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href*="https://docs.coderabbit.ai"]
+ {
+ display: none;
}
+}
- .github-link::before {
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z'/%3E%3C/svg%3E");
+@media screen and (max-width: 480px) {
+ a.navbar__item.navbar__link[href*="https://coderabbit.ai/blog"]
+ {
+ display: none;
}
}
diff --git a/static/img/faq/add-repository.png b/static/img/faq/add-repository.png
new file mode 100644
index 00000000..e69c4a7c
Binary files /dev/null and b/static/img/faq/add-repository.png differ
diff --git a/static/img/faq/coderabbit-github-menu.png b/static/img/faq/coderabbit-github-menu.png
new file mode 100644
index 00000000..c599ca95
Binary files /dev/null and b/static/img/faq/coderabbit-github-menu.png differ
diff --git a/static/img/faq/github-app-settings.png b/static/img/faq/github-app-settings.png
new file mode 100644
index 00000000..ff120953
Binary files /dev/null and b/static/img/faq/github-app-settings.png differ
diff --git a/static/img/faq/gitlab-webhook.png b/static/img/faq/gitlab-webhook.png
new file mode 100644
index 00000000..a233f902
Binary files /dev/null and b/static/img/faq/gitlab-webhook.png differ
diff --git a/static/img/faq/seat-assignment.png b/static/img/faq/seat-assignment.png
new file mode 100644
index 00000000..073194be
Binary files /dev/null and b/static/img/faq/seat-assignment.png differ
diff --git a/static/img/faq/select-repos.png b/static/img/faq/select-repos.png
new file mode 100644
index 00000000..1c1222ff
Binary files /dev/null and b/static/img/faq/select-repos.png differ
diff --git a/static/img/getting-started/billing-history.png b/static/img/getting-started/billing-history.png
new file mode 100644
index 00000000..8fd36af6
Binary files /dev/null and b/static/img/getting-started/billing-history.png differ
diff --git a/static/img/getting-started/change-plan.png b/static/img/getting-started/change-plan.png
new file mode 100644
index 00000000..e41f00ce
Binary files /dev/null and b/static/img/getting-started/change-plan.png differ
diff --git a/static/img/getting-started/change-seats.png b/static/img/getting-started/change-seats.png
new file mode 100644
index 00000000..cc736ac5
Binary files /dev/null and b/static/img/getting-started/change-seats.png differ
diff --git a/static/img/getting-started/check-for-new-orgs.png b/static/img/getting-started/check-for-new-orgs.png
new file mode 100644
index 00000000..d0049686
Binary files /dev/null and b/static/img/getting-started/check-for-new-orgs.png differ
diff --git a/static/img/getting-started/download-invoice.png b/static/img/getting-started/download-invoice.png
new file mode 100644
index 00000000..5451693d
Binary files /dev/null and b/static/img/getting-started/download-invoice.png differ
diff --git a/static/img/getting-started/edit-subscription.png b/static/img/getting-started/edit-subscription.png
new file mode 100644
index 00000000..065d0cc2
Binary files /dev/null and b/static/img/getting-started/edit-subscription.png differ
diff --git a/static/img/getting-started/grant-permission.png b/static/img/getting-started/grant-permission.png
new file mode 100644
index 00000000..e9654574
Binary files /dev/null and b/static/img/getting-started/grant-permission.png differ
diff --git a/static/img/getting-started/manage-subscription.png b/static/img/getting-started/manage-subscription.png
new file mode 100644
index 00000000..1234acf9
Binary files /dev/null and b/static/img/getting-started/manage-subscription.png differ
diff --git a/static/img/getting-started/permission-warning.png b/static/img/getting-started/permission-warning.png
new file mode 100644
index 00000000..6283c930
Binary files /dev/null and b/static/img/getting-started/permission-warning.png differ
diff --git a/static/img/getting-started/quickstart-comment.png b/static/img/getting-started/quickstart-comment.png
new file mode 100644
index 00000000..9813172b
Binary files /dev/null and b/static/img/getting-started/quickstart-comment.png differ
diff --git a/static/img/getting-started/subscription-page.png b/static/img/getting-started/subscription-page.png
new file mode 100644
index 00000000..8fb90f96
Binary files /dev/null and b/static/img/getting-started/subscription-page.png differ
diff --git a/static/img/getting-started/updated-permissions.png b/static/img/getting-started/updated-permissions.png
new file mode 100644
index 00000000..37ef9038
Binary files /dev/null and b/static/img/getting-started/updated-permissions.png differ
diff --git a/static/img/guides/agentic-thought-chain.png b/static/img/guides/agentic-thought-chain.png
new file mode 100644
index 00000000..1fd49a55
Binary files /dev/null and b/static/img/guides/agentic-thought-chain.png differ
diff --git a/static/img/guides/chat-example.png b/static/img/guides/chat-example.png
new file mode 100644
index 00000000..3acb40e1
Binary files /dev/null and b/static/img/guides/chat-example.png differ
diff --git a/static/img/guides/chat-learnings-use.png b/static/img/guides/chat-learnings-use.png
new file mode 100644
index 00000000..f1b3a2f1
Binary files /dev/null and b/static/img/guides/chat-learnings-use.png differ
diff --git a/static/img/guides/chat-script-execution.png b/static/img/guides/chat-script-execution.png
new file mode 100644
index 00000000..4cd29f97
Binary files /dev/null and b/static/img/guides/chat-script-execution.png differ
diff --git a/static/img/guides/create-issue-agentic.png b/static/img/guides/create-issue-agentic.png
new file mode 100644
index 00000000..a7ad04ae
Binary files /dev/null and b/static/img/guides/create-issue-agentic.png differ
diff --git a/static/img/guides/create-issue-inline.png b/static/img/guides/create-issue-inline.png
new file mode 100644
index 00000000..873df82f
Binary files /dev/null and b/static/img/guides/create-issue-inline.png differ
diff --git a/static/img/guides/example-report-1.png b/static/img/guides/example-report-1.png
new file mode 100644
index 00000000..d88931a5
Binary files /dev/null and b/static/img/guides/example-report-1.png differ
diff --git a/static/img/guides/example-report-2.png b/static/img/guides/example-report-2.png
new file mode 100644
index 00000000..98a54896
Binary files /dev/null and b/static/img/guides/example-report-2.png differ
diff --git a/static/img/guides/feature-planning.png b/static/img/guides/feature-planning.png
new file mode 100644
index 00000000..017d3e4b
Binary files /dev/null and b/static/img/guides/feature-planning.png differ
diff --git a/static/img/guides/gitlab-issue-chat.png b/static/img/guides/gitlab-issue-chat.png
new file mode 100644
index 00000000..0b6a1f69
Binary files /dev/null and b/static/img/guides/gitlab-issue-chat.png differ
diff --git a/static/img/guides/high-level-docs.png b/static/img/guides/high-level-docs.png
new file mode 100644
index 00000000..702c5dee
Binary files /dev/null and b/static/img/guides/high-level-docs.png differ
diff --git a/static/img/guides/linked-issue.png b/static/img/guides/linked-issue.png
new file mode 100644
index 00000000..ba585890
Binary files /dev/null and b/static/img/guides/linked-issue.png differ
diff --git a/static/img/guides/marketing-posts.png b/static/img/guides/marketing-posts.png
new file mode 100644
index 00000000..ce607fd4
Binary files /dev/null and b/static/img/guides/marketing-posts.png differ
diff --git a/static/img/guides/open-source-support.png b/static/img/guides/open-source-support.png
new file mode 100644
index 00000000..14c35530
Binary files /dev/null and b/static/img/guides/open-source-support.png differ
diff --git a/static/img/integrations/azure-access-token.png b/static/img/integrations/azure-access-token.png
index 9ce2b44b..2b3111b1 100644
Binary files a/static/img/integrations/azure-access-token.png and b/static/img/integrations/azure-access-token.png differ
diff --git a/static/img/integrations/bitbucket-app-password-modal.png b/static/img/integrations/bitbucket-app-password-modal.png
new file mode 100644
index 00000000..fd6c556b
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-modal.png differ
diff --git a/static/img/integrations/bitbucket-app-password-page.png b/static/img/integrations/bitbucket-app-password-page.png
new file mode 100644
index 00000000..c9e25cbe
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-page.png differ
diff --git a/static/img/integrations/bitbucket-app-password-permissions.png b/static/img/integrations/bitbucket-app-password-permissions.png
new file mode 100644
index 00000000..7e27e6af
Binary files /dev/null and b/static/img/integrations/bitbucket-app-password-permissions.png differ
diff --git a/static/img/integrations/bitbucket-webhook.png b/static/img/integrations/bitbucket-webhook.png
new file mode 100644
index 00000000..687c9b78
Binary files /dev/null and b/static/img/integrations/bitbucket-webhook.png differ
diff --git a/static/img/integrations/login-self-hosted-github.png b/static/img/integrations/login-self-hosted-github.png
index 99f511c6..35e76ed1 100644
Binary files a/static/img/integrations/login-self-hosted-github.png and b/static/img/integrations/login-self-hosted-github.png differ
diff --git a/static/img/integrations/logo.png b/static/img/integrations/logo.png
new file mode 100644
index 00000000..18eb4911
Binary files /dev/null and b/static/img/integrations/logo.png differ
diff --git a/static/img/integrations/self-hosted-github-host-url.png b/static/img/integrations/self-hosted-github-host-url.png
index b8224720..2cb6d671 100644
Binary files a/static/img/integrations/self-hosted-github-host-url.png and b/static/img/integrations/self-hosted-github-host-url.png differ
diff --git a/static/img/tools/az-devops-pipeline.png b/static/img/tools/az-devops-pipeline.png
new file mode 100644
index 00000000..b06dafab
Binary files /dev/null and b/static/img/tools/az-devops-pipeline.png differ
diff --git a/static/img/tools/circle-cicd.png b/static/img/tools/circle-cicd.png
new file mode 100644
index 00000000..9af6cf95
Binary files /dev/null and b/static/img/tools/circle-cicd.png differ
diff --git a/static/img/tools/docker-build-cicd.png b/static/img/tools/docker-build-cicd.png
new file mode 100644
index 00000000..01e6ed58
Binary files /dev/null and b/static/img/tools/docker-build-cicd.png differ
diff --git a/static/img/tools/gitlab-advanced-security.png b/static/img/tools/gitlab-advanced-security.png
new file mode 100644
index 00000000..94dc3d75
Binary files /dev/null and b/static/img/tools/gitlab-advanced-security.png differ
diff --git a/static/img/tools/gitlab-cicd.png b/static/img/tools/gitlab-cicd.png
new file mode 100644
index 00000000..0f9c029f
Binary files /dev/null and b/static/img/tools/gitlab-cicd.png differ
diff --git a/static/img/tools/java-cicd.png b/static/img/tools/java-cicd.png
new file mode 100644
index 00000000..b90ec904
Binary files /dev/null and b/static/img/tools/java-cicd.png differ
diff --git a/static/img/tools/kubernetes-cicd.png b/static/img/tools/kubernetes-cicd.png
new file mode 100644
index 00000000..3b8beb53
Binary files /dev/null and b/static/img/tools/kubernetes-cicd.png differ
diff --git a/static/img/tools/npm-cicd.png b/static/img/tools/npm-cicd.png
new file mode 100644
index 00000000..f0402362
Binary files /dev/null and b/static/img/tools/npm-cicd.png differ
diff --git a/static/img/tools/python-cicd.png b/static/img/tools/python-cicd.png
new file mode 100644
index 00000000..cab40924
Binary files /dev/null and b/static/img/tools/python-cicd.png differ
diff --git a/static/img/tools/semgrep-cicd.png b/static/img/tools/semgrep-cicd.png
new file mode 100644
index 00000000..261cfb5e
Binary files /dev/null and b/static/img/tools/semgrep-cicd.png differ
diff --git a/static/img/tools/terraform-cicd.png b/static/img/tools/terraform-cicd.png
new file mode 100644
index 00000000..ede7a0c2
Binary files /dev/null and b/static/img/tools/terraform-cicd.png differ
diff --git a/static/schema/schema.v2.json b/static/schema/schema.v2.json
index 8f3cf89e..afee77cb 100644
--- a/static/schema/schema.v2.json
+++ b/static/schema/schema.v2.json
@@ -82,6 +82,8 @@
"zh",
"crh-UA",
"crh",
+ "cs-CZ",
+ "cs",
"nb",
"no",
"nl-NL",
@@ -91,7 +93,9 @@
"fa-IR",
"sv-SE",
"de-LU",
- "fr-FR"
+ "fr-FR",
+ "bg-BG",
+ "bg"
],
"default": "en-US",
"description": "Set the language for reviews by using the corresponding ISO language code."
@@ -136,6 +140,11 @@
"default": "@coderabbitai summary",
"description": "Placeholder in the PR/MR description that gets replaced with the high level summary."
},
+ "high_level_summary_in_walkthrough": {
+ "type": "boolean",
+ "default": false,
+ "description": "Include the high level summary in the walkthrough comment."
+ },
"auto_title_placeholder": {
"type": "string",
"default": "@coderabbitai",
@@ -156,6 +165,11 @@
"default": true,
"description": "Set the commit status to 'pending' when the review is in progress and 'success' when it is complete."
},
+ "fail_commit_status": {
+ "type": "boolean",
+ "default": false,
+ "description": "Set the commit status to 'failure' when the PR cannot be reviewed by CodeRabbit for any reason."
+ },
"collapse_walkthrough": {
"type": "boolean",
"default": false,
@@ -201,6 +215,11 @@
"default": true,
"description": "Suggest reviewers based on the changes in the pull request in the walkthrough."
},
+ "auto_assign_reviewers": {
+ "type": "boolean",
+ "default": false,
+ "description": "Automatically assign suggested reviewers to the pull request"
+ },
"poem": {
"type": "boolean",
"default": true,
@@ -233,7 +252,7 @@
"type": "string"
},
"default": [],
- "description": "Specify file patterns to exclude or include for a review. Accepts glob patterns. Example: !dist/**, src/**"
+ "description": "Specify file patterns to include or exclude in a review using glob patterns (e.g., !dist/**, src/**). These patterns also apply to 'git sparse-checkout', including specified patterns and ignoring excluded ones (starting with '!') when cloning the repository."
},
"path_instructions": {
"type": "array",
@@ -246,7 +265,7 @@
},
"instructions": {
"type": "string",
- "maxLength": 3000,
+ "maxLength": 20000,
"description": "Provides specific additional guidelines for code review based on file paths."
}
},
@@ -261,6 +280,11 @@
"default": true,
"description": "Abort the in-progress review if the pull request is closed or merged."
},
+ "disable_cache": {
+ "type": "boolean",
+ "default": false,
+ "description": "Disable caching of code and dependencies. This will force CodeRabbit to download the code and dependencies fresh from the repository each time."
+ },
"auto_review": {
"type": "object",
"properties": {
@@ -307,6 +331,39 @@
"additionalProperties": false,
"default": {}
},
+ "finishing_touches": {
+ "type": "object",
+ "properties": {
+ "docstrings": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Docstrings | Allow CodeRabbit to generate docstrings for PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Docstrings | Options for generating Docstrings for your PRs/MRs."
+ },
+ "unit_tests": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Unit Tests | Allow CodeRabbit to generate unit tests for PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Unit Tests | Options for generating unit tests for your PRs/MRs."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ },
"tools": {
"type": "object",
"properties": {
@@ -318,6 +375,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "List of rules directories."
},
"util_dirs": {
@@ -325,6 +383,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "List of utils directories."
},
"essential_rules": {
@@ -342,7 +401,8 @@
}
},
"additionalProperties": false,
- "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.31.1"
+ "default": {},
+ "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.38.1"
},
"shellcheck": {
"type": "object",
@@ -350,12 +410,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable ShellCheck | ShellCheck is a static analysis tool that finds bugs in your shell. | Enable shellcheck integration. | v0.10.0"
+ "description": "Enable ShellCheck | ShellCheck is a static analysis tool that finds bugs in your shell. | Enable ShellCheck integration. | v0.10.0"
}
},
"additionalProperties": false,
"default": {},
- "description": "Shellcheck is a static analysis tool that finds bugs in your shell scripts."
+ "description": "ShellCheck is a static analysis tool that finds bugs in your shell scripts."
},
"ruff": {
"type": "object",
@@ -363,7 +423,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable ruff integration. | v0.8.2"
+ "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable Ruff integration. | v0.11.9"
}
},
"additionalProperties": false,
@@ -376,12 +436,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Markdownlint | Markdownlint is a static analysis tool for Node.js with a library of rules to enforce standards and consistency for Markdown files. | Enable markdownlint integration. | v0.37.0"
+ "description": "Enable markdownlint | markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files. | Enable markdownlint integration. | v0.17.2"
}
},
"additionalProperties": false,
"default": {},
- "description": "Markdownlint is a static analysis tool to enforce standards and consistency for Markdown files."
+ "description": "markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files."
},
"github-checks": {
"type": "object",
@@ -393,7 +453,7 @@
},
"timeout_ms": {
"type": "number",
- "maximum": 300000,
+ "maximum": 900000,
"minimum": 0,
"default": 90000,
"description": "Time in milliseconds to wait for all GitHub Checks to conclude."
@@ -416,6 +476,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of rules to be enabled. The rule won't run unless 'level' is set to a level that activates the rule."
},
"disabled_rules": {
@@ -423,6 +484,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of rules to be disabled. Note: EN_UNPAIRED_BRACKETS, and EN_UNPAIRED_QUOTES are always disabled."
},
"enabled_categories": {
@@ -430,6 +492,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of categories to be enabled."
},
"disabled_categories": {
@@ -437,6 +500,7 @@
"items": {
"type": "string"
},
+ "default": [],
"description": "IDs of categories to be disabled. Note: TYPOS, TYPOGRAPHY, and CASING are always disabled."
},
"enabled_only": {
@@ -504,7 +568,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.0.3"
+ "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.1.15"
},
"level": {
"type": "string",
@@ -536,7 +600,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable golangci-lint | golangci-lint is a fast linters runner for Go. | Enable golangci-lint integration. | v1.62.2"
+ "description": "Enable golangci-lint | golangci-lint is a fast linters runner for Go. | Enable golangci-lint integration. | v1.64.8"
},
"config_file": {
"type": "string",
@@ -553,12 +617,12 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Yamllint | yamllint is a linter for YAML files. | Enable yamllint integration. | v1.35.1"
+ "description": "Enable YAMLlint | YAMLlint is a linter for YAML files. | Enable YAMLlint integration. | v1.37.1"
}
},
"additionalProperties": false,
"default": {},
- "description": "yamllint is a linter for YAML files."
+ "description": "YAMLlint is a linter for YAML files."
},
"gitleaks": {
"type": "object",
@@ -566,7 +630,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.21.2"
+ "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.26.0"
}
},
"additionalProperties": false,
@@ -592,11 +656,11 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Detekt | Detekt is a static code analysis tool for Kotlin files. | v1.23.7"
+ "description": "Enable detekt | detekt is a static code analysis tool for Kotlin files. | v1.23.8"
},
"config_file": {
"type": "string",
- "description": "Optional path to the Detekt configuration file relative to the repository."
+ "description": "Optional path to the detekt configuration file relative to the repository."
}
},
"additionalProperties": false,
@@ -622,7 +686,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Rubocop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.69.1"
+ "description": "Enable RuboCop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.75.5"
}
},
"additionalProperties": false,
@@ -635,7 +699,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.47.2"
+ "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.54.0"
}
},
"additionalProperties": false,
@@ -648,7 +712,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.29.2"
+ "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.33.1"
}
},
"additionalProperties": false,
@@ -661,7 +725,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Actionlint | is a static checker for GitHub Actions workflow files. | v1.7.4"
+ "description": "Enable actionlint | is a static checker for GitHub Actions workflow files. | v1.7.7"
}
},
"additionalProperties": false,
@@ -674,11 +738,11 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Pmd | PMD is an extensible multilanguage static code analyzer. It’s mainly concerned with Java. | v7.8.0"
+ "description": "Enable PMD | PMD is an extensible multilanguage static code analyzer. It’s mainly concerned with Java. | v7.13.0"
},
"config_file": {
"type": "string",
- "description": "Optional path to the Pmd configuration file relative to the repository."
+ "description": "Optional path to the PMD configuration file relative to the repository."
}
},
"additionalProperties": false,
@@ -691,7 +755,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.10-2"
+ "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.17.1"
}
},
"additionalProperties": false,
@@ -704,7 +768,7 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.99.0"
+ "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.122.0"
},
"config_file": {
"type": "string",
@@ -721,12 +785,129 @@
"enabled": {
"type": "boolean",
"default": true,
- "description": "Enable CircleCi | CircleCi tool is a static checker for CircleCi config files. | v0.1.31151"
+ "description": "Enable CircleCI | CircleCI tool is a static checker for CircleCI config files. | v0.1.31687"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "CircleCI tool is a static checker for CircleCI config files."
+ },
+ "clippy": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Clippy | Clippy is a collection of lints to catch common mistakes and improve your Rust code. | Enable Clippy integration."
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Clippy is a collection of lints to catch common mistakes and improve your Rust code."
+ },
+ "sqlfluff": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable SQLFluff | SQLFluff is an open source, dialect-flexible and configurable SQL linter. | v3.4.0"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "SQLFluff is an open source, dialect-flexible and configurable SQL linter."
+ },
+ "prismaLint": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Prisma Schema linting | Prisma Schema linting helps maintain consistent and error-free schema files | v0.10.1"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Prisma Schema linting to ensure schema file quality"
+ },
+ "pylint": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Pylint | Pylint is a Python static code analysis tool. | v3.3.7"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Pylint is a Python static code analysis tool."
+ },
+ "oxc": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable OXC | OXC is a JavaScript/TypeScript linter written in Rust. | v0.16.10"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "OXC is a JavaScript/TypeScript linter written in Rust."
+ },
+ "shopifyThemeCheck": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Shopify Theme Check | A linter for Shopify themes that helps you follow Shopify theme & Liquid best practices | cli 3.77.1 | theme 3.58.2"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Shopify Theme Check to ensure theme quality and best practices"
+ },
+ "luacheck": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Lua code linting | Luacheck helps maintain consistent and error-free Lua code | v1.2.0"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Configuration for Lua code linting to ensure code quality"
+ },
+ "brakeman": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable Brakeman | Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2"
+ }
+ },
+ "additionalProperties": false,
+ "default": {},
+ "description": "Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2"
+ },
+ "dotenvLint": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable dotenv-linter | dotenv-linter is a tool for checking and fixing .env files for problems and best practices | v3.3.0"
}
},
"additionalProperties": false,
"default": {},
- "description": "CircleCi tool is a static checker for CircleCi config files."
+ "description": "dotenv-linter is a tool for checking and fixing .env files for problems and best practices"
}
},
"additionalProperties": false,
@@ -745,6 +926,39 @@
"type": "boolean",
"default": true,
"description": "Enable the bot to reply automatically without requiring the user to tag it."
+ },
+ "integrations": {
+ "type": "object",
+ "properties": {
+ "jira": {
+ "type": "object",
+ "properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Jira | Enable the Jira integration for opening issues, etc. 'auto' disables the integration for public repositories."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ },
+ "linear": {
+ "type": "object",
+ "properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Linear | Enable the Linear integration for opening issues, etc. 'auto' disables the integration for public repositories."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
}
},
"additionalProperties": false,
@@ -756,7 +970,19 @@
"opt_out": {
"type": "boolean",
"default": false,
- "description": "Opt out | Opt out of all knowledge base features."
+ "description": "Opt Out | Disable all knowledge base features that require data retention. If you opt out after opting in, all of your existing knowledge base data will be removed from the system."
+ },
+ "web_search": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Web Search | Enable the web search integration."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
},
"learnings": {
"type": "object",
@@ -787,6 +1013,12 @@
"jira": {
"type": "object",
"properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Jira | Enable the Jira knowledge base integration. 'auto' disables the integration for public repositories."
+ },
"project_keys": {
"type": "array",
"items": {
@@ -802,6 +1034,12 @@
"linear": {
"type": "object",
"properties": {
+ "usage": {
+ "type": "string",
+ "enum": ["auto", "enabled", "disabled"],
+ "default": "auto",
+ "description": "Linear | Enable the Linear knowledge base integration. 'auto' disables the integration for public repositories."
+ },
"team_keys": {
"type": "array",
"items": {
@@ -830,9 +1068,174 @@
},
"additionalProperties": false,
"default": {}
+ },
+ "code_generation": {
+ "type": "object",
+ "properties": {
+ "docstrings": {
+ "type": "object",
+ "properties": {
+ "language": {
+ "type": "string",
+ "enum": [
+ "de",
+ "de-DE",
+ "de-AT",
+ "de-CH",
+ "en",
+ "en-US",
+ "en-AU",
+ "en-GB",
+ "en-CA",
+ "en-NZ",
+ "en-ZA",
+ "es",
+ "es-AR",
+ "fr",
+ "fr-CA",
+ "fr-CH",
+ "fr-BE",
+ "nl",
+ "nl-BE",
+ "pt-AO",
+ "pt",
+ "pt-BR",
+ "pt-MZ",
+ "pt-PT",
+ "ar",
+ "ast-ES",
+ "ast",
+ "be-BY",
+ "be",
+ "br-FR",
+ "br",
+ "ca-ES",
+ "ca",
+ "ca-ES-valencia",
+ "ca-ES-balear",
+ "da-DK",
+ "da",
+ "de-DE-x-simple-language",
+ "el-GR",
+ "el",
+ "eo",
+ "fa",
+ "ga-IE",
+ "ga",
+ "gl-ES",
+ "gl",
+ "it",
+ "ja-JP",
+ "ja",
+ "km-KH",
+ "km",
+ "ko-KR",
+ "ko",
+ "pl-PL",
+ "pl",
+ "ro-RO",
+ "ro",
+ "ru-RU",
+ "ru",
+ "sk-SK",
+ "sk",
+ "sl-SI",
+ "sl",
+ "sv",
+ "ta-IN",
+ "ta",
+ "tl-PH",
+ "tl",
+ "tr",
+ "uk-UA",
+ "uk",
+ "zh-CN",
+ "zh",
+ "crh-UA",
+ "crh",
+ "cs-CZ",
+ "cs",
+ "nb",
+ "no",
+ "nl-NL",
+ "de-DE-x-simple-language-DE",
+ "es-ES",
+ "it-IT",
+ "fa-IR",
+ "sv-SE",
+ "de-LU",
+ "fr-FR",
+ "bg-BG",
+ "bg"
+ ],
+ "default": "en-US",
+ "description": "Set the language for docstrings by using the corresponding ISO language code."
+ },
+ "path_instructions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "File path glob pattern. Example: **/*.js"
+ },
+ "instructions": {
+ "type": "string",
+ "maxLength": 20000,
+ "description": "Provides additional guidelines for docstring generation based on file paths."
+ }
+ },
+ "required": ["path", "instructions"],
+ "additionalProperties": false
+ },
+ "default": [],
+ "description": "Path Instructions | Provide additional guidelines for docstring generation based on file paths."
+ }
+ },
+ "additionalProperties": false,
+ "default": {
+ "path_instructions": []
+ },
+ "description": "Settings related to the generation of docstrings."
+ },
+ "unit_tests": {
+ "type": "object",
+ "properties": {
+ "path_instructions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "File path glob pattern. Example: **/*.js"
+ },
+ "instructions": {
+ "type": "string",
+ "maxLength": 20000,
+ "description": "Provides additional guidelines for unit test generation based on file paths."
+ }
+ },
+ "required": ["path", "instructions"],
+ "additionalProperties": false
+ },
+ "default": [],
+ "description": "Unit Test Generation | Provide additional guidelines for unit test generation based on file paths."
+ }
+ },
+ "additionalProperties": false,
+ "default": {
+ "path_instructions": []
+ },
+ "description": "Settings related to the generation of unit tests."
+ }
+ },
+ "additionalProperties": false,
+ "default": {}
}
},
- "additionalProperties": false
+ "additionalProperties": true
}
},
"$schema": "http://json-schema.org/draft-07/schema#"